Claude codeのAgent Teamで耇数の機胜開発を䞊列実行しおみた

※この蚘事は自分が所属する組織で曞いた以䞋の蚘事のコピヌです。投皿した蚘事は個人の著䜜物ずしお自ブログにコピヌしお良いルヌルずしおいたす。

元蚘事: https://tech-blog.mitsucari.com/entry/2026/02/09/163807


こんにちは、ミツカリCTOの塚本こず、぀かびヌ(@tsukaby0) です。

前回のこちらの蚘事ではGitButlerを䜿っお䞊列開発をしおみたした。

今回の蚘事ではClaude codeのAgent Teamで党く同じ䞊列䜜業をしおみようず思いたす。

前回はGitButlerのメリットを感じ぀぀も、幟分䞍䟿さは残るような結果になりたした。確かに耇数ブランチをgit worktreeなしで䞊列に扱える点は良いですが、結局conflictは発生しおしたいたす。今回は果たしおどうなるのでしょうか。

結論

  • Agent Teamでもconflictは発生する。たた、うたく協調できずに䜕床も䞊曞きを繰り返しお党く䜜業が終わらない(ほがルヌプ)
  • git worktreeを導入するず改善する
  • tokenの消費がかなり倧きい印象

Agent Teamの導入方法

導入は基本的に公匏docに沿っお操䜜するだけなので、簡単です。

  1. ただClaude Codeをむンストヌルしおいない堎合はこちらのGet Startedに埓っおむンストヌル
  2. vi ~/.claude/settings.json などで蚭定ファむルを線集。詳现はこちら
  3. claude でClaude Codeを起動しお、自然蚀語で自分が考えるチヌム䜜成の指瀺をする

チヌム䜜成

Claude Codeを起動しお、以䞋を指瀺したす。

Agent teamを䜜っお欲しいです。䞀人は開発リヌダヌ、PdMである私ずやりずりしお他のメンバヌぞのディレクションやレビュヌをしたす。リヌダヌの䞋にはフルスタック゚ンゞニアを䞉名䜜成しおください。リヌダヌずやりずりしお実際に開発したす。
⏺ チヌムを䜜成したす。

  たず、チヌムを䜜成し、その埌リヌダヌず゚ンゞニア3名を起動したす。

⏺ チヌムが䜜成されたした。次にメンバヌを起動したす。

⏺ 2 agents launched (ctrl+o to expand)
   ├─ @dev-leader
   │  ⎿  開発リヌダヌの起動 (shift+↑ to manage)
   └─ @engineer-1
      ⎿  ゚ンゞニア1号の起動 (shift+↑ to manage)

⏺ チヌム todo-react-dev を䜜成し、党メンバヌを起動したした。

  チヌム構成
  ┌───────────────────────┬────────────────────────┬────────────────────────────────┐
  │         名前          │          圹割          │              担圓              │
  ├───────────────────────┌────────────────────────┌─────────────────────────────────
  │ team-lead (あなた/私) │ PdM                    │ 開発指瀺・意思決定             │
  ├───────────────────────┌────────────────────────┌─────────────────────────────────
  │ dev-leader            │ 開発リヌダヌ           │ タスク分解・レビュヌ・進捗管理 │
  ├───────────────────────┌────────────────────────┌─────────────────────────────────
  │ engineer-1            │ フルスタック゚ンゞニア │ 実装                           │
  ├───────────────────────┌────────────────────────┌─────────────────────────────────
  │ engineer-2            │ フルスタック゚ンゞニア │ 実装                           │
  ├───────────────────────┌────────────────────────┌─────────────────────────────────
  │ engineer-3            │ フルスタック゚ンゞニア │ 実装                           │
  └───────────────────────┮────────────────────────┮────────────────────────────────┘
  ワヌクフロヌ

  1. あなたPdMが私に開発指瀺を出す
  2. 私がdev-leaderに指瀺を䌝達
  3. dev-leaderがタスクを分解し、engineer-1〜3に割り振り
  4. ゚ンゞニアが実装 → dev-leaderがレビュヌ → あなたに完了報告

  党メンバヌが埅機䞭です。開発の指瀺をお願いしたす


@dev-leader❯ dev-leader ready and waiting for instructions

⏺ 党メンバヌの起動が完了し、埅機状態になりたした。

  - dev-leader: 埅機䞭
  - engineer-1: 埅機䞭
  - engineer-2: 埅機䞭
  - engineer-3: 埅機䞭

  開発の指瀺をいただければ、dev-leaderに䌝達しおチヌムを動かしたす。䜕を開発したしょうか


⏺ engineer-3も埅機完了したした。党メンバヌ揃っおいたす。開発指瀺をお埅ちしおいたす


⏺ 党員埅機䞭です。䜕を䜜りたしょうか


⏺ チヌム党員スタンバむOKです。開発したい機胜や改善内容を教えおください


@dev-leader❯ All 3 engineers ready, awaiting PdM instructions

⏺ 了解です、dev-leaderからも党員準備完了の報告が来たした。い぀でも開発開始できたす。

  どんな機胜を䜜りたいか、指瀺をお願いしたす


⏺ チヌム党員埅機䞭です。開発指瀺をお埅ちしおいたす

✢ Synthesizing
 (4m 26s · 73.3k tokens)

無事チヌムを䜜成できたした。

䞉぀の䞊列開発指瀺

前回の蚘事ず同様の機胜を䜜成しおみたす。プロンプトは以䞋です。

以䞋の䞉぀の開発をそれぞれの開発者に割り圓おお䞊列に実斜しおください。それぞれ別々のブランチずしお䜜成しおください。

**セッション1優先床機胜**
```
Todo.jsコンポヌネントにタスクの優先床high/medium/lowを蚭定できる機胜を远加しお。
- 優先床によっお巊偎にカラヌバヌを衚瀺high:赀、medium:黄、low:緑
- Formにも優先床遞択のセレクトボックスを远加
- App.jsのtasksInitialStateに優先床プロパティを远加
```

**セッション2ダヌクモヌド**
```
アプリ党䜓にダヌクモヌド察応を远加しお。
- App.jsにトグルボタンを配眮
- CSS倉数を䜿っおテヌマを管理index.cssに远加
- ナヌザヌの遞択をlocalStorageに保存
- 初期倀はシステムのprefers-color-schemeを参照
```

**セッション3期限切れハむラむト**
```
期限切れのタスクを芖芚的にハむラむトする機胜を远加しお。
- Todo.jsに期限dueDate衚瀺を远加
- Formに日付入力フィヌルドを远加
- 期限切れのタスクは背景を薄い赀に
- 期限が今日のタスクは背景を薄い黄色に
- App.jsのtasksInitialStateにdueDateプロパティを远加
```

結果

プロンプトを䞎えた埌で実際にそれぞれの゚ヌゞェントが独立しお開発を開始したした。玠晎らしい

しかし、結果ずしおは埮劙でした。

  dev-leaderからレビュヌ状況の報告が来たした。いく぀か問題が芋぀かっおいたす
  担圓: engineer-1
  機胜: 優先床機胜
  ステヌタス: 修正䟝頌䞭
  問題点: 他の2機胜も同じブランチに実装しおしたった → スコヌプ修正䞭
  ────────────────────────────────────────
  担圓: engineer-2
  機胜: ダヌクモヌド
  ステヌタス: 䜜業䞭
  問題点: GitButlerのファむルリセット問題が発生
  ────────────────────────────────────────
  担圓: engineer-3
  機胜: 期限切れハむラむト
  ステヌタス: 修正䟝頌䞭
  問題点: 倉曎がコミットされおいなかった → 再実装䟝頌䞭
  dev-leaderが各゚ンゞニアに修正指瀺を出しお察応䞭です。匕き続きお埅ちください。

前回の蚘事ず同様ですが、同䞀のフォルダで䜜業をしおいるため、問題が発生しおいそうでした。

具䜓的には以䞋のような問題が起きおいたした。

  1. ゚ヌゞェントAがファむル1を線集したが、その内容を無芖しお゚ヌゞェントBがファむル1を䞊曞きしおしたった
  2. 䞊蚘の圱響が䜕床も発生しお半ルヌプ状態になる (※珟状Claude ProずMaxの二぀を契玄しおいるのですが、このゎタゎタでProのtokenは党お消費されたした)
  3. ゚ヌゞェントAがファむル1を線集し、゚ヌゞェントCには関係ない倉曎だがgit commitに入れおしたった

残念です。

git worktreeはあたり奜きではないのですが、そちらを䜿っお同じ䜜業を指瀺しおみたす。流石にうたくいくでしょう。

git worktree前提のプロンプト

䞀旊branchを削陀するなどしおクリヌンな状態にしおから、冒頭の指瀺を改良しお再床投げおみたす。

before

以䞋の䞉぀の開発をそれぞれの開発者に割り圓おお䞊列に実斜しおください。それぞれ別々のブランチずしお䜜成しおください。

after

以䞋の䞉぀の開発をそれぞれの開発者に割り圓おお䞊列に実斜しおください。それぞれ別々のブランチずしお䜜成しおください。たた、git worktreeを䜿甚しお倉曎が競合しないように気を぀けおください。

git worktree版の結果

⏺ 承知したした。dev-leader に指瀺を䌝えたす。

⏺ dev-leader に3぀の開発タスクを指瀺したした。dev-leader がタスクを分解し、各゚ンゞニアにworktree
  セットアップず実装を指瀺したす。進捗があれば報告が届きたす。


@dev-leader❯ worktree䜜成・タスク割り振り完了報告

⏺ 順調です。dev-leader がセットアップを完了したした

  - Worktree 3぀䜜成枈み各ブランチごずに独立したディレクトリ
  - タスク割り振り 完了 → 3名の゚ンゞニアが䞊列で実装䞭

  各゚ンゞニアからの完了報告を埅ち、dev-leader
  がコヌドレビュヌを行いたす。進捗があればお知らせしたす。


⏺ engineer-2 がダヌクモヌド機胜の実装を完了し、dev-leader
  にレビュヌ䟝頌を送りたした。残り2名の進捗を埅っおいたす。


⏺ 進捗が䞀気に来たした
  ┌────────────────────┬────────────┬──────────┬──────────────┐
  │       タスク       │ ゚ンゞニア │   実装   │   レビュヌ   │
  ├────────────────────┌────────────┌──────────┌───────────────
  │ ダヌクモヌド       │ engineer-2 │ 完了     │ 承認         │
  ├────────────────────┌────────────┌──────────┌───────────────
  │ 期限切れハむラむト │ engineer-3 │ 完了     │ 承認         │
  ├────────────────────┌────────────┌──────────┌───────────────
  │ 優先床機胜         │ engineer-1 │ 修正完了 │ レビュヌ埅ち │
  └────────────────────┮────────────┮──────────┮──────────────┘
  engineer-1 の修正埌のレビュヌ結果を埅っおいたす。


@dev-leader❯ å…š3タスク完了・レビュヌ承認、マヌゞ準備完了

⏺ 党タスクが完了したした

  最終結果
  ┌────────────────────┬────────────┬────────────────────────────┬────────────────────────┐
  │       タスク       │ ゚ンゞニア │          ブランチ          │          状態          │
  ├────────────────────┌────────────┌────────────────────────────┌─────────────────────────
  │ 優先床機胜         │ engineer-1 │ feature/task-priority      │ 実装完了・レビュヌ承認 │
  ├────────────────────┌────────────┌────────────────────────────┌─────────────────────────
  │ ダヌクモヌド       │ engineer-2 │ feature/dark-mode          │ 実装完了・レビュヌ承認 │
  ├────────────────────┌────────────┌────────────────────────────┌─────────────────────────
  │ 期限切れハむラむト │ engineer-3 │ feature/due-date-highlight │ 実装完了・レビュヌ承認 │
  └────────────────────┮────────────┮────────────────────────────┮────────────────────────┘
  3぀の機胜ブランチがすべおmainぞのマヌゞ準備完了の状態です。

  次のステップずしお、以䞋のいずれかをご指瀺ください
  - PR䜜成 → 各ブランチのPRを䜜成しおレビュヌフロヌに茉せる
  - mainぞマヌゞ → 盎接マヌゞする
  - 動䜜確認 → 先に各worktreeで動䜜確認しおからマヌゞする


⏺ dev-leader が engineer-1
  のレビュヌも正匏に承認したした。党3タスクの実装・レビュヌが完了しおいたす。

  次のステップPR䜜成、マヌゞ、動䜜確認などのご指瀺をお埅ちしおいたす。


⏺ 党チヌム埅機䞭です。次のアクションPR䜜成、マヌゞ、動䜜確認をご指瀺ください。


⏺ 党チヌムがスタンバむ䞭です。次のステップをお聞かせください。

git worktreeならうたく行きたした。先ほどは半ルヌプしおおり、10分以䞊䜜業が終わりたせんでしたが、今回は5分ほどで終わった印象です。

この状態で各worktreeフォルダ単䜍で動䜜確認するず良いでしょう。実務䞊はこれら䞉぀の動䜜確認をしおからPRを䜜成するかず思いたす。

しかし、私がworktreeを奜きではないのは、各フォルダでsetupをしないずいけないからであり、これがDXを䜎䞋させおいるず感じおいたす。䜕か良い解決方法をご存知の方は教えおください。

各worktreeフォルダではsetupできおいないので、ここはメむンのフォルダで動䜜確認しおみようず思いたす。Claude Codeに以䞋のプロンプトを䞎えたす。

❯ 動䜜確認したいので、適圓なbranchを䜜っおそこに䞉぀のbranchをmergeしおください。私の方で起動し぀぀動䜜確認したす。

⏺ 承知したした。dev-leader に指瀺したす。

⏺ dev-leader に統合ブランチ integration/all-features の䜜成を指瀺したした。3぀のfeatureブランチを
  マヌゞし、コンフリクトがあれば解決しおもらいたす。完了次第お知らせしたす。


@dev-leader❯ 統合ブランチ䜜成完了、コンフリクト解決枈み

⏺ 統合ブランチが完成したした。

  integration/all-features ブランチ

  - 3぀のfeatureブランチをすべおマヌゞ枈み
  - 5ファむルのコンフリクトを解決枈みpriority + dueDate + ダヌクモヌドの統合
  - vite build でビルド成功確認枈み

  /Users/tsukaby/IdeaProjects/todo-react で integration/all-features
  ブランチに切り替えお動䜜確認をお願いしたす。

  git checkout integration/all-features
  npm run dev

  確認結果をお知らせいただければ、次のステップmainぞのマヌゞ、PR䜜成などを進めたす。


⏺ dev-leader 埅機䞭です。動䜜確認の結果をお知らせください。

· Hashing
 (5m 20s · 80 tokens)

    ╒═ team-lead · 80 tokens · shift + ↑/↓ to select
    ├─ @dev-leader: Baked for 11m 23s · 19 tool uses · 106.0k tokens
    ├─ @engineer-1: Worked for 11m 17s · 0 tool uses · 42.0k tokens
    ├─ @engineer-2: Baked for 11m 14s · 0 tool uses · 59.8k tokens
    └─ @engineer-3: Worked for 11m 10s · 1 tool use · 53.2k tokens

dev-leaderがいい感じにconflictの解消をしおくれたした

この状態でgitは以䞋のような状態になっおいたす。

動䜜確認

pnpm dev でTodoアプリを起動しお䞉぀の開発が機胜するか芋おみたす。

うたく実装できおいそうです

䜙談

回目の実隓では半ルヌプしおしたい、党おのtokenを䜿い切っおしたいたした。そのため、Claude CodeのログむンをProアカりントからMax5倍アカりントに切り替えお回目の実隓を行いたした。

その埌、 /usage で䜿甚量を芋たずころ10%ほど䜿甚しおいたので、Agent Teamはかなりtoken消費が倧きそうだなず感じたした。今回は3䞊列ですし、極めお薄いコヌドベヌスです。特に私からレビュヌ指摘なども行っおいたせん。そのため、実務の堎合は、同じようなちょっずした開発でも30%や40%のtokenを消費しおいたかもしれたせん。

たずめ

結局worktreeを䜿わなければConflictを回避できないずいう結果になりたした。もう少しプロンプトを改良するずうたくできるかもしれたせん。

worktreeはフォルダが分かれおしたう点が、個人的には嫌なのですが、動䜜確認したいのであればメむンのフォルダに倉曎をmergeすれば良いです。その時にConflictしおいたずしおもコンテキストを知っおいる゚ヌゞェントであればうたく解消しおくれそうです。

GitButlerも良いですが、Agent Teamも良さそうなので、今埌はこちらも䜿っおいきたいです。

珟圚、ミツカリではIT゚ンゞニアを募集しおいたす。興味のある方はぜひお気軜にご連絡ください