複数の AI エージェントを並列実行する開発手法 - Claude Code と Git Worktree の活用
📝
ここから
## まとめ
まで全部 Claude が書いています。
はじめに
AI コーディングツールが急速に進歩する中、開発者の働き方も大きく変わろうとしています。特に注目すべきは、複数の AI エージェントを同時に動かして並列開発を行うという新しいアプローチです。
Anthropic が公開した Claude Code Best Practices では、複数の Claude インスタンスを並列で実行することで開発効率を劇的に向上させる手法が紹介されています。しかし、この手法を実践するには、従来の Git ワークフローでは限界があります。
そこで登場するのがGit worktreeです。この記事では、なぜ並列 AI コーディングに Git worktree が必要なのか、そしてそれを効率的に管理する方法について紹介します。
Claude Code Best Practices が示す Git Worktree の活用
Git Worktree の価値について原文では
Claude Code Best Practices では、Git worktree について以下のように説明されています:
"This approach shines for multiple independent tasks, offering a lighter-weight alternative to multiple checkouts. Git worktrees allow you to check out multiple branches from the same repository into separate directories. Each worktree has its own working directory with isolated files, while sharing the same Git history and reflog."
つまり、Git worktree は複数の独立したタスクに最適化されており、複数チェックアウトの軽量な代替手段として機能します。同じリポジトリから複数のブランチを別々のディレクトリにチェックアウトでき、各 worktree は独自の作業ディレクトリと分離されたファイルを持ちながら、同じ Git 履歴と reflog を共有します。
並列 Claude セッションの実現
さらに原文では、具体的な並列実行の効果について言及されています:
"Using git worktrees enables you to run multiple Claude sessions simultaneously on different parts of your project, each focused on its own independent task. For instance, you might have one Claude refactoring your authentication system while another builds a completely unrelated data visualization component."
これは、一つの Claude が認証システムをリファクタリングしている間に、別の Claude が全く関係のないデータ可視化コンポーネントを構築できるということを意味します。
なぜタスクが重複しない場合に効果的なのか
原文が強調するのは以下の点です:
"Since the tasks don't overlap, each Claude can work at full speed without waiting for the other's changes or dealing with merge conflicts"
タスクが重複しないため、各 Claude は他の変更を待ったりマージコンフリクトを処理したりすることなく、フルスピードで作業できるのです。
従来の Git ワークフローの限界
ブランチ切り替えによる制約
通常の Git ワークフローでは、以下の制約があります:
- 作業ディレクトリの競合: 複数の AI エージェントが同じディレクトリを同時使用不可
-
ブランチ切り替えのオーバーヘッド:
git stash
での変更退避が頻繁に必要 - 状態の混在: 異なるタスクの変更が同一ディレクトリで混在
- コンテキストスイッチのコスト: エディタ状態やビルドキャッシュのリセット
なぜ複数リポジトリクローンでは不十分なのか
複数のリポジトリをクローンする方法もありますが:
- ディスク使用量の増大
-
.git
ディレクトリの重複 - 複数リポジトリ間での同期の複雑さ
- 管理の煩雑さ
Git Worktree による解決
Git worktree は、同じリポジトリから複数のブランチを別々のディレクトリにチェックアウトできる機能です。
並列 AI コーディングに最適な理由
- 独立した作業環境: 各 AI エージェントが専用のディレクトリを持てる
-
共有リポジトリ:
.git
ディレクトリは共有、ディスク使用量を最小化 - ゼロコストな切り替え: ディレクトリ移動だけでブランチが切り替わる
- 真の並列処理: 物理的に同時作業が可能
実際の並列開発環境
~/worktrees/myapp/
├── main/ # メインブランチ
├── feature-auth/ # 認証機能(Claude インスタンス1)
├── feature-api/ # API設計(Claude インスタンス2)
└── bugfix-login/ # バグ修正(Claude インスタンス3)
各ディレクトリで独立した Claude Code インスタンスを起動し、真の並列開発を実現できます。
gwq ツール:Fuzzy Finder による直感的な管理
Git worktree は強力ですが、標準コマンドでの管理は煩雑です。この課題を解決するのがgwq
ツールです。
Fuzzy Finder が実現する直感的操作
gwq
の最大の特徴は、組み込みの Fuzzy Finderによる直感的な操作です:
# インタラクティブにブランチを選択してworktreeを作成
$ gwq add -i
# ↓ Fuzzy Finderが起動し、既存ブランチから選択可能
> feature/auth
feature/api
bugfix/login
main
# Fuzzy Finderでworktreeを選択して削除
$ gwq remove
# ↓ 削除対象をインタラクティブに選択
> feature/auth-component ~/worktrees/myapp/feature-auth
feature/api-design ~/worktrees/myapp/feature-api
bugfix/login-session ~/worktrees/myapp/bugfix-login
# パス取得も部分マッチで高速
$ cd $(gwq get auth) # 'auth'を含むworktreeを自動検索
基本的な使い方
# インストール
go install github.com/d-kuro/gwq/cmd/gwq@latest
# 現在のworktreeを確認
$ gwq list
BRANCH PATH
● main ~/ghq/github.com/user/myapp
# 新しいworktreeを作成
$ gwq add -b feature/auth
Created worktree for branch 'feature/auth'
並列 AI コーディングの実践
原文で推奨される手順
Claude Code Best Practices では、以下の手順が推奨されています:
-
Create worktrees:
git worktree add ../project-feature-a feature-a
-
Launch Claude in each worktree:
cd ../project-feature-a && claude
- Create additional worktrees as needed (repeat steps 1-2 in new terminal tabs)
実際の並列開発例
原文の例に従って、認証システムのリファクタリングとデータ可視化コンポーネントの開発を並列で行う場合:
# 認証システムリファクタリング用のworktree
git worktree add ../myapp-auth-refactor feature/auth-refactor
# データ可視化コンポーネント用のworktree
git worktree add ../myapp-data-viz feature/data-visualization
# 各worktreeでClaude Codeを起動
# ターミナル1
cd ../myapp-auth-refactor && claude
# ターミナル2
cd ../myapp-data-viz && claude
gwq による効率化
標準の Git コマンドでも実現できますが、gwq の Fuzzy Finder を使うことで、より効率的な操作が可能です:
# インタラクティブにworktreeを作成
gwq add -i
# Fuzzy Finderでworktreeを選択してアクセス
cd $(gwq get) # 全worktreeから選択
# 部分マッチで素早くアクセス
cd $(gwq get auth) # 'auth'を含むworktreeを検索
原文で推奨される運用のコツ
Claude Code Best Practices では、以下のような運用のコツも紹介されています:
- Use consistent naming conventions: 一貫した命名規則を使用
- Maintain one terminal tab per worktree: worktree ごとに 1 つのターミナルタブを維持
- Use separate IDE windows for different worktrees: 異なる worktree には別々の IDE ウィンドウを使用
-
Clean up when finished: 完了時のクリーンアップ:
git worktree remove ../project-feature-a
gwq が解決する課題
原文の手順でも並列開発は実現できますが、以下の課題があります:
-
パス管理の複雑さ:
../project-feature-a
のような相対パスの管理 - worktree の発見性: 作成した worktree の場所を覚えておく必要
- 一貫性のない命名: プロジェクトごとに異なる命名規則になりがち
- クリーンアップの煩雑さ: 手動でのパス指定が必要
Fuzzy Finder による直感的解決
gwq
の Fuzzy Finder は、これらの課題を解決します:
# 一貫した命名規則で自動作成
gwq add -b feature/auth-refactor
# → ~/worktrees/github.com/user/myapp/feature-auth-refactor
# Fuzzy Finderで直感的にアクセス
cd $(gwq get auth) # 'auth'を含むworktreeを自動検索
# Fuzzy Finderで安全に削除
gwq remove # 削除対象をインタラクティブに選択
グローバル worktree 管理
複数プロジェクトの worktree も一元管理できます:
# 全プロジェクトのworktreeを表示
$ gwq list -g
BRANCH PATH
app1:main ~/worktrees/github.com/user/app1/main
app1:feature/auth ~/worktrees/github.com/user/app1/feature-auth
app2:develop ~/worktrees/github.com/user/app2/develop
# グローバルモードでFuzzy Finder選択
cd $(gwq get -g app1:feature)
まとめ:AI コーディングの新時代
Claude Code Best Practices が示す並列 AI コーディングは、単なる開発手法の改善ではなく、開発における根本的なパラダイムシフトです。
得られるメリット
- 開発速度の飛躍的向上: 複数タスクの同時並行処理
- 品質の向上: 専門化されたエージェントによる高品質な実装
- スケーラビリティ: チーム規模に関係なく並列化が可能
- 直感的な操作: Fuzzy Finder による高速な worktree 切り替え
今後の展望
AI エージェントの能力向上とともに、この並列開発アプローチはますます重要になるでしょう。Git worktree とそれを効率的に管理するツールは、この新しい開発パラダイムを支える重要なインフラストラクチャです。
次のプロジェクトで、ぜひ並列 AI コーディングを試してみてください。きっと開発体験が大きく変わるはずです。
参考リンク:
Claude Code を使用した開発について
📝
ここから人力で書いています。
今回使用したのは Claude Max プランの $100 の方です。
レートリミットは多少引っ掛かりはしましたが気にならない程度でした。
最初にアイディアを設計書に落とし込むところだけ軽く確認しましたが、基本はあとは丸投げで Claude Code が全部書いてくれました。なので今回のツールの制作過程において Go のプログラムを読む機会はほぼなかったです。(コードの品質はあんまり気にしていなくて動いてくれたらよかった)
1 並列 3 時間程度の稼働で大体の機能が完成して、テストとドキュメントまで仕上がった状態にしてくれました。
基本は claude --dangerously-skip-permissions
でずっと自走させており、30 分以上とか動き続けてくれるので放ったらかしでよかったです。
最初に投げた雑プロンプト:
OSS の ghq https://github.com/x-motemen/ghq のような感じで fuzzy finder を使いつつ git の worktree を管理するための Go の cli ツールを開発したいです
OSS のツール名と機能設計書を作成してください
今まで Cline + Claude 3.7 とか Cline + Gemini 2.5 Pro を使って開発してきましたが、雑なプロンプトを投げた際に適切なタスクに切り出して実行していく力は Claude Code の体験が一番よかったです。
AI 丸投げ開発の可能性を感じる。
これで定額で済むのはめちゃくちゃお得ですね。(リファラルの宣伝)
Discussion