subagent-driven-development について
subagent-driven-developmentは、タスクごとに新しいサブエージェントを割り当てて実装計画を進めるスキルです。作業を続ける前に、仕様適合性の確認とコード品質レビューを順に行います。
主な機能
- 01タスクごとに新しいサブエージェントを割り当て
- 02仕様適合性を先にレビュー
- 03続けてコード品質をレビュー
- 04レビュー指摘に応じて修正を反復
- 05タスクが停滞した場合の対応を定義
活用シーン
- 01タスク単位の実装計画の実行
- 02タスクごとのコンテキスト分離
- 03委任開発へのレビュー工程の導入
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lucianghinda/ superpowers-ruby --skill subagent-driven-developmentインストール後、Claude Code で/subagent-driven-developmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
code-quality-reviewer-prompt.mdimplementer-prompt.mdspec-reviewer-prompt.md詳細
サブエージェント駆動開発
タスクごとに新しいサブエージェントを割り当てて計画を実行し、各タスクの後に、仕様準拠レビュー、次にコード品質レビューの2段階でレビューします。
サブエージェントを使う理由: 専門エージェントに、分離されたコンテキストでタスクを委任します。指示とコンテキストを的確に作成することで、エージェントがタスクに集中し、成功できるようにします。セッションのコンテキストや履歴を引き継がせてはいけません。エージェントに必要な情報だけを用意します。これにより、調整作業に使う自分のコンテキストも維持できます。
基本原則: タスクごとに新しいサブエージェントを割り当て、仕様準拠、次に品質の2段階でレビューすることで、高品質かつ迅速に反復できます。
使用するタイミング
digraph when_to_use {
"Have implementation plan?" [shape=diamond];
"Tasks mostly independent?" [shape=diamond];
"Stay in this session?" [shape=diamond];
"subagent-driven-development" [shape=box];
"executing-plans" [shape=box];
"Manual execution or brainstorm first" [shape=box];
"Have implementation plan?" -> "Tasks mostly independent?" [label="yes"];
"Have implementation plan?" -> "Manual execution or brainstorm first" [label="no"];
"Tasks mostly independent?" -> "Stay in this session?" [label="yes"];
"Tasks mostly independent?" -> "Manual execution or brainstorm first" [label="no - tightly coupled"];
"Stay in this session?" -> "subagent-driven-development" [label="yes"];
"Stay in this session?" -> "executing-plans" [label="no - parallel session"];
}
計画の実行(並列セッション)との比較:
- 同じセッションで実行します(コンテキスト切り替えなし)
- タスクごとに新しいサブエージェントを割り当てます(コンテキストの汚染なし)
- 各タスクの後に2段階でレビューします。最初に仕様準拠、次にコード品質を確認します
- タスク間に人間が介在しないため、反復が速くなります
プロセス
digraph process {
rankdir=TB;
subgraph cluster_per_task {
label="Per Task";
"Dispatch implementer subagent (./implementer-prompt.md)" [shape=box];
"Implementer subagent asks questions?" [shape=diamond];
"Answer questions, provide context" [shape=box];
"Implementer subagent implements, tests, commits, self-reviews" [shape=box];
"Dispatch spec reviewer subagent (./spec-reviewer-prompt.md)" [shape=box];
"Spec reviewer subagent confirms code matches spec?" [shape=diamond];
"Implementer subagent fixes spec gaps" [shape=box];
"Dispatch code quality reviewer subagent (./code-quality-reviewer-prompt.md)" [shape=box];
"Code quality reviewer subagent approves?" [shape=diamond];
"Implementer subagent fixes quality issues" [shape=box];
"Mark task complete in TodoWrite" [shape=box];
}
"Read plan, extract all tasks with full text, note context, create TodoWrite" [shape=box];
"More tasks remain?" [shape=diamond];
"Dispatch final code reviewer subagent for entire implementation" [shape=box];
"Use superpowers-ruby:finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];
"Read plan, extract all tasks with full text, note context, create TodoWrite" -> "Dispatch implementer subagent (./implementer-prompt.md)";
"Dispatch implementer subagent (./implementer-prompt.md)" -> "Implementer subagent asks questions?";
"Implementer subagent asks questions?" -> "Answer questions, provide context" [label="yes"];
"Answer questions, provide context" -> "Dispatch implementer subagent (./implementer-prompt.md)";
"Implementer subagent asks questions?" -> "Implementer subagent implements, tests, commits, self-reviews" [label="no"];
"Implementer subagent implements, tests, commits, self-reviews" -> "Dispatch spec reviewer subagent (./spec-reviewer-prompt.md)";
"Dispatch spec reviewer subagent (./spec-reviewer-prompt.md)" -> "Spec reviewer subagent confirms code matches spec?";
"Spec reviewer subagent confirms code matches spec?" -> "Implementer subagent fixes spec gaps" [label="no"];
"Implementer subagent fixes spec gaps" -> "Dispatch spec reviewer subagent (./spec-reviewer-prompt.md)" [label="re-review"];
"Spec reviewer subagent confirms code matches spec?" -> "Dispatch code quality reviewer subagent (./code-quality-reviewer-prompt.md)" [label="yes"];
"Dispatch code quality reviewer subagent (./code-quality-reviewer-prompt.md)" -> "Code quality reviewer subagent approves?";
"Code quality reviewer subagent approves?" -> "Implementer subagent fixes quality issues" [label="no"];
"Implementer subagent fixes quality issues" -> "Dispatch code quality reviewer subagent (./code-quality-reviewer-prompt.md)" [label="re-review"];
"Code quality reviewer subagent approves?" -> "Mark task complete in TodoWrite" [label="yes"];
"Mark task complete in TodoWrite" -> "More tasks remain?";
"More tasks remain?" -> "Dispatch implementer subagent (./implementer-prompt.md)" [label="yes"];
"More tasks remain?" -> "Dispatch final code reviewer subagent for entire implementation" [label="no"];
"Dispatch final code reviewer subagent for entire implementation" -> "Use superpowers-ruby:finishing-a-development-branch";
}
モデルの選択
コストを抑え、速度を高めるため、各役割を担える範囲で最も性能の低いモデルを使用します。
機械的な実装タスク(独立した関数、明確な仕様、1〜2ファイル):高速で安価なモデルを使用します。計画が十分に明確であれば、ほとんどの実装タスクは機械的に進められます。
統合と判断を伴うタスク(複数ファイルの調整、パターン照合、デバッグ):標準モデルを使用します。
アーキテクチャ、設計、レビューのタスク: 利用可能な中で最も高性能なモデルを使用します。
タスクの複雑さを示す目安:
- 完全な仕様があり、変更対象が1〜2ファイル → 安価なモデル
- 統合上の懸念があり、変更対象が複数ファイル → 標準モデル
- 設計上の判断や、コードベース全体の幅広い理解が必要 → 最も高性能なモデル
実装担当者のステータスへの対応
実装担当のサブエージェントは、次の4つのステータスのいずれかを報告します。それぞれ適切に対応してください。
DONE: 仕様準拠レビューに進みます。
DONE_WITH_CONCERNS: 実装担当者は作業を完了しましたが、懸念点も報告しています。先に懸念点を確認してください。正確性や範囲に関する懸念であれば、レビューの前に対処します。「このファイルが大きくなってきています」のような所見であれば、記録してレビューに進みます。
NEEDS_CONTEXT: 実装担当者は、提供されていない情報を必要としています。不足しているコンテキストを提供し、再度割り当てます。
BLOCKED: 実装担当者はタスクを完了できません。阻害要因を評価してください。
- コンテキストの問題であれば、情報を追加して同じモデルに再度割り当てます
- より深い推論が必要なタスクであれば、より高性能なモデルに再度割り当てます
- タスクが大きすぎる場合は、より小さな単位に分割します
- 計画自体に問題がある場合は、人間にエスカレーションします
エスカレーションを無視したり、変更を加えずに同じモデルへ再試行させたりしてはいけません。実装担当者が行き詰まったと報告した場合は、何かを変える必要があります。
プロンプトのテンプレート
./implementer-prompt.md- 実装担当サブエージェントを割り当てます./spec-reviewer-prompt.md- 仕様準拠レビュアーのサブエージェントを割り当てます./code-quality-reviewer-prompt.md- コード品質レビュアーのサブエージェントを割り当てます
ワークフローの例
You: I'm using Subagent-Driven Development to execute this plan.
[Read plan file once: docs/superpowers/plans/feature-plan.md]
[Extract all 5 tasks with full text and context]
[Create TodoWrite with all tasks]
Task 1: Hook installation script
[Get Task 1 text and context (already extracted)]
[Dispatch implementation subagent with full task text + context]
Implementer: "Before I begin - should the hook be installed at user or system level?"
You: "User level (~/.config/superpowers/hooks/)"
Implementer: "Got it. Implementing now..."
[Later] Implementer:
- Implemented install-hook command
- Added tests, 5/5 passing
- Self-review: Found I missed --force flag, added it
- Committed
[Dispatch spec compliance reviewer]
Spec reviewer: ✅ Spec compliant - all requirements met, nothing extra
[Get git SHAs, dispatch code quality reviewer]
Code reviewer: Strengths: Good test coverage, clean. Issues: None. Approved.
[Mark Task 1 complete]
Task 2: Recovery modes
[Get Task 2 text and context (already extracted)]
[Dispatch implementation subagent with full task text + context]
Implementer: [No questions, proceeds]
Implementer:
- Added verify/repair modes
- 8/8 tests passing
- Self-review: All good
- Committed
[Dispatch spec compliance reviewer]
Spec reviewer: ❌ Issues:
- Missing: Progress reporting (spec says "report every 100 items")
- Extra: Added --json flag (not requested)
[Implementer fixes issues]
Implementer: Removed --json flag, added progress reporting
[Spec reviewer reviews again]
Spec reviewer: ✅ Spec compliant now
[Dispatch code quality reviewer]
Code reviewer: Strengths: Solid. Issues (Important): Magic number (100)
[Implementer fixes]
Implementer: Extracted PROGRESS_INTERVAL constant
[Code reviewer reviews again]
Code reviewer: ✅ Approved
[Mark Task 2 complete]
...
[After all tasks]
[Dispatch final code-reviewer]
Final reviewer: All requirements met, ready to merge
Done!
利点
手動実行との比較:
- サブエージェントは自然に TDD に従います
- タスクごとに新しいコンテキストを使用します(混乱がありません)
- 並列実行しても安全です(サブエージェント同士が干渉しません)
- サブエージェントは作業の前と作業中の両方で質問できます
プランの実行との比較:
- 同じセッション内で実行します(引き継ぎがありません)
- 継続的に進行します(待ち時間がありません)
- レビューチェックポイントが自動的に設けられます
効率の向上:
- ファイルを読み込むオーバーヘッドがありません(コントローラーが全文を提供します)
- コントローラーが必要なコンテキストを正確に選別します
- サブエージェントは最初から必要な情報をすべて受け取ります
- 作業開始前に質問が提示されます(作業開始後ではありません)
品質ゲート:
- セルフレビューで引き継ぎ前に問題を検出できます
- 2 段階レビュー:仕様への準拠、その後にコード品質を確認します
- レビューループによって修正が実際に機能することを確認します
- 仕様への準拠によって、作り込みすぎや作り込み不足を防ぎます
- コード品質の確認によって、実装の品質を確保します
コスト:
- サブエージェントの呼び出し回数が増えます(タスクごとに実装担当 1 人とレビュー担当 2 人)
- コントローラーの事前作業が増えます(すべてのタスクを事前に抽出します)
- レビューループによって反復回数が増えます
- ただし、問題を早期に発見できます(後からデバッグするより低コストです)
注意事項
以下は絶対に行わないでください:
- ユーザーの明示的な同意なしに、main/master ブランチで実装を開始する
- レビュー(仕様への準拠またはコード品質)を省略する
- 問題を修正せずに先へ進む
- 複数の実装担当サブエージェントを並列でディスパッチする(競合が発生します)
- サブエージェントにプランファイルを読ませる(代わりに全文を提供してください)
- 状況を把握するためのコンテキスト説明を省略する(サブエージェントはタスクの位置づけを理解する必要があります)
- サブエージェントからの質問を無視する(先へ進ませる前に回答してください)
- 仕様への準拠について「ほぼ十分」で受け入れる(仕様レビュアーが問題を指摘した場合、完了ではありません)
- レビューループを省略する(レビュアーが問題を指摘した場合、実装担当が修正し、再度レビューを受けてください)
- 実際のレビューの代わりに、実装担当によるセルフレビューだけで済ませる(両方が必要です)
- 仕様への準拠が ✅ になる前に、コード品質レビューを開始する(順序が誤っています)
- どちらかのレビューに未解決の問題がある状態で、次のタスクへ進む
サブエージェントから質問された場合:
- 明確かつ完全に回答してください
- 必要に応じて追加のコンテキストを提供してください
- 実装を急がせないでください
レビュアーが問題を指摘した場合:
- 実装担当(同じサブエージェント)が修正します
- レビュアーが再度レビューします
- 承認されるまで繰り返します
- 再レビューを省略しないでください
サブエージェントがタスクに失敗した場合:
- 具体的な指示を添えて、修正担当のサブエージェントをディスパッチします
- 手作業で修正しようとしないでください(コンテキストが汚染されます)
連携
必須のワークフロースキル:
- superpowers-ruby:using-git-worktrees - 必須:開始前に分離されたワークスペースを設定します
- superpowers-ruby:writing-plans - このスキルで実行するプランを作成します
- superpowers-ruby:requesting-code-review - レビュー担当サブエージェント向けのコードレビューテンプレートです
- superpowers-ruby:finishing-a-development-branch - すべてのタスク完了後に開発を完了します
サブエージェントが使用するスキル:
- superpowers-ruby:test-driven-development - サブエージェントは各タスクで TDD に従います
代替ワークフロー:
- superpowers-ruby:executing-plans - 同じセッション内での実行の代わりに、並列セッションで使用します