duckbugio/flock
Autonomous AI dev-team bot
Flock – チャットで操作可能なAI駆動型ソフトウェア開発チーム
何であるか – Flockは自己完結型のサービスで、自前のサーバー上で Claude-Code を搭載した開発チームを運用できます。チャットアプリ(Telegram、VK、またはシンプルなテキスト専用「LO」インターフェース)を通じてチームとやり取りできます。1つのメッセージで、AIに新しい機能の計画、コード作成、テスト、レビュー、プルリクエストの開設を依頼できます。各チャットには独自の隔離されたワークスペースとGitブランチが割り当てられ、複数のユーザーが並行して独立したプロジェクトを実行可能です。
なぜ重要か – 多くのAIコードアシスタントは単一のプロンプトでスニペットを返すだけです。FlockはDocker内で実行される完全な開発パイプライン(プランナー → コーダー → テスター → レビュアー → アービター)を構築しており、Gitホストと連携し、CIの監視や成功時の自動マージも可能。すべての処理は自前のハードウェア上で実行され、Claude Pro/Maxのサブスクリプション(またはAnthropic APIキー)のみが必要で、トークン単位のコストは発生しません。
主な機能(READMEに記載)
| 機能 | 機能の内容 |
|---|---|
| チャット駆動の仕様 | チャットで機能の説明を記述;AIチームが具体的な計画とコードに変換します。 |
| 完全なCIパイプライン | ブランチが作成され、リポジトリのテスト/チェックコマンドが実行され、プルリクエストが開設され、緑色のビルドは自動マージ可能。 |
| 自律ループ | オプションのループにより、ボットが自身の作業を検証、目標の再評価(/goal)、スケジュールされたジョブの実行(/schedule)、CIステータスの監視(ENABLE_CI_WATCH)が可能。 |
| マルチプラットフォームアダプタ | TelegramとVK用の即時実行可能なDockerイメージ;任意のテキスト専用チャネル向けの軽量「LO」アダプタ。 |
| チャットごとの隔離 | 各チャットに独自のワークスペースディレクトリとブランチ(duck/<chatid>/<slug>)が割り当てられ、相互干渉を防ぎ、並行実行を可能にします。 |
| Gitホスト連携 | GitHub、GitLab、Giteaに対応(PAT経由);ボットはPRのレビューコメントをポーリングし、元のチャットにルーティングします。 |
| オプションの音声コマンド | 音声メッセージは(Mistral、OpenAI、またはローカル)音声認識され、チャットコマンドとして扱われます。 |
| Dockerのみのデプロイ | 事前にビルドされたイメージ(ghcr.io/duckbugio/flock-telegram、flock-vk)を使用することで、コンパイルやAnsible不要で迅速に開始可能。 |
| セキュリティ制御 | チャットごとのコスト制限、無限ループを中断する「アービター」サブエージェント、厳格なユーザー許可リスト。 |
クイックスタート(Telegram例)
# リポジトリをクローンし、Telegramアダプタへ移動
git clone https://github.com/duckbugio/flock
cd flock/adapters/telegram
# 例のenvファイルをコピーし、必要な4つの値を設定
cp .env.example .env # .envを編集 → BOT_TOKEN、BOT_USERNAME、ALLOWED_USERS、CLAUDE_CODE_OAUTH_TOKEN(または ANTHROPIC_API_KEY)を設定
# コンテナを起動(Docker Composeが事前にビルドされたイメージを取得)
docker compose up -d
コンテナが起動後、Telegramでボットにメッセージを送信し、ブランチ作成、テスト実行、プルリクエスト開設を観察してください。
内部の動作原理(概要)
- ユーザーのメッセージ – 機能の説明を記述。
- リードClaude – プランナーとして機能し、範囲を確認。
- サブエージェント –
planner → coder → tester → reviewer → arbiterはcore/agents/に定義されたClaude-Codeサブエージェント。 - ブランチとPR – コードは
duck/<chatid>/<slug>という名前のブランチにコミットされ、設定されたGitホストにプルリクエストが開設。 - フィードバックループ – レビューコメントはチャットにポーリングされ、アービターは承認、変更要求、または中止を実行可能。
- 自律オプション – プルリクエスト後の検証、目標評価、スケジュールジョブ、CI監視、オプションの自動マージは環境変数で切り替え可能。
一般的な利用例
- 機能開発 – プロダクトマネージャーがチャットで新しいエンドポイントを説明し、完全にテスト済みのPRを受け取る。
- バグ修正 – バグの説明を貼り付ける;AIチームが修正を作成し、リポジトリのテストスイートを実行し、プルリクエストを開設。
- 手間のかからないCI監視 – CI監視を有効化し、ビルドが失敗または成功した際にチャットに通知され、緑色のPRはオプションで自動マージ可能。
- スケジュールされたメンテナンス –
/scheduleを使って定期的なLint、依存関係のアップグレード、その他のルーティンタスクを実行。
インストールと運用ノート
- 前提条件 – Docker Compose、Claude Pro/Maxトークン(またはAnthropic APIキー)、書き込み権限を持つGitホストのPAT。
- 対応トランスポート – Telegram(事前ビルド済みイメージ)、VK(事前ビルド済みイメージ)、ローカルでビルド可能な汎用「LO」アダプタ。
- 環境設定 – 多くの設定は
.envに記述;必須キーはREADMEのテーブルに記載。オプション機能はENABLE_*フラグで切り替え可能。 - セキュリティ –
ALLOWED_USERS(またはVK同等)にリストされたユーザーのみがボットを呼び出せます;エージェントはコンテナ内で非rootユーザーとして実行され、ワークスペースディレクトリにサンドボックス化されています。 - 拡張性 – 新しいチャットプラットフォームを追加するには、コアエージェントを再利用する薄いアダプタを作成するだけでOK。リポジトリには設計ドキュメント(
docs/multi-transport-plan.md)が含まれています。
ライセンスと貢献
- ライセンス: MIT(
LICENSEを参照)。 - 貢献: 標準的なフォーク・ブランチ・PRワークフローに従ってください;リポジトリには
Taskfileがあり、Lint、テスト、ビルドが可能(task lint、task tests、task build)。 - セキュリティ報告:
SECURITY.mdを通じた非公開報告。
結論:FlockはClaude-Codeサブスクリプションを、完全に自動化され、チャット駆動の開発チームに変換します。自前のサーバー上で機能の計画、コード作成、テスト、レビュー、マージを実行でき、強力な隔離とオプションの自律制御を備えています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト