背景
複数のリポジトリにまたがる複雑なタスクをclaude codeに任せたいな〜という場面が発生している。
単純に全部クローンしたり、git workspaceで一箇所に集めて「ほら頑張ってくれ!」とやるのも手ではある。でもそういう複雑なタスクはコンテキストが足りなくなってうまくいかないことが多い気がする。上限にあたってauto compactionされたり、それも相まって細かいところを忘れがちだったり。
問題の整理
複数リポジトリでの作業では以下のような問題が出てくる:
- コンテキスト制限: 関連ファイルを全部読み込むとすぐにトークン上限に達してしまう
- 依存関係の把握: どのリポジトリがどのリポジトリに依存しているかの把握が困難
- 作業の優先順位: どこから手をつけるべきかの判断が難しい
- 整合性の担保: 変更した内容が他のリポジトリに影響しないかの確認
サブエージェントとスキルの組み合わせ
そこで考えたのが、サブエージェントとスキルを組み合わせた仕組み。具体的には以下のようなアプローチを試してみた:
https://github.com/sters/complex-ai-workspace
このアイデアの核心は、タスクを適切に分解して、それぞれのサブタスクを専門のエージェントに割り当てること。
具体的にはこうやって動く:
- complex-ai-workspaceリポジトリでclaude codeを起動
/start-working {todo}- 初期セットアップをする
- repositoriesに対応するリポジトリがなければcloneする
- workspaceディレクトリにタスク用のディレクトリを作成する
- タスク用ディレクトリの中にgit workspaceでコピーを作る
- READMEとかTODOを書き出す
- サブエージェントを起動して、リポジトリごとのTODOを進めていく
- 初期セットアップをする
/review-workspace-changes- 各リポジトリの差分を、ローカルでレビュー
- サブエージェントがやってくれる
実際にやってみて
うまくいっているような気もする。Opus君だからかもしれない。
「1つのリポジトリなんだけど、巨大タスクになっていて分割して並列して進めたいな〜〜」みたいなケースもサポートできるようにしたいなと思った。複数リポジトリ扱うときより、このケースのほうが多い気がする。今はチケット分割して各チケットを進めて、のようにやっているけれど、デカいまま分割並列して進められるならそれで良くね?と思ってきた。