subagent-driven-development について
新しいサブエージェントを使って実装計画を進めるスキルです。タスクごとに担当を分け、仕様適合性を先に、コード品質を次にレビューします。ワーカーが使えない場合の逐次実行も扱います。
主な機能
- 01タスクごとに新しいサブエージェント
- 02仕様適合性を先にレビュー
- 03コード品質を次にレビュー
- 04指摘を解消してから次へ進む
- 05ワーカー不在時の逐次実行
活用シーン
- 01独立性の高い複数タスクを含む計画の実行
- 02実装とタスク仕様の適合確認
- 03次のタスクに進む前の段階的レビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jamditis/ claude-skills-journalism --skill subagent-driven-developmentインストール後、Claude Code で/subagent-driven-developmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
code-quality-reviewer-prompt.mdimplementer-prompt.mdspec-reviewer-prompt.mdagents/openai.yaml詳細
サブエージェント駆動開発
クライアントが対応している場合は、タスクごとに新しいサブエージェントまたは並列ワーカーを割り当てて計画を実行し、各タスクの後に2段階のレビューを行います。まず仕様への準拠を確認し、その後コードの品質を確認します。クライアントにワーカー機能がない場合は、executing-plans を使ってタスクとレビューを順番に行います。
サブエージェントを使う理由: 専門のエージェントに、コンテキストを分離してタスクを委任できます。指示とコンテキストを正確に作成すれば、エージェントはタスクに集中し、適切に完了できます。エージェントにセッションのコンテキストや履歴を引き継がせてはいけません。必要な情報だけをこちらで用意します。これにより、調整作業のために自分のコンテキストを保つこともできます。
基本原則: タスクごとに新しいサブエージェントを使い、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 the task list" [shape=box];
}
"Read plan, extract all tasks with full text, note context, create task list" [shape=box];
"More tasks remain?" [shape=diamond];
"Dispatch final code reviewer subagent for entire implementation" [shape=box];
"Use superjawn:finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];
"Read plan, extract all tasks with full text, note context, create task list" -> "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 the task list" [label="yes"];
"Mark task complete in the task list" -> "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 superjawn: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 a task-list or plan item for every task]
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!
メリット
手動実行との比較:
- サブエージェントは各タスクを検証してから引き渡します
- タスクごとに新しいコンテキストを使うため、混乱しません
- 並列実行しても安全です(サブエージェント同士が干渉しません)
- サブエージェントは作業の前と途中の両方で質問できます
プラン実行との比較:
- 同じセッションで実行します(引き継ぎはありません)
- 継続的に進捗します(待ち時間はありません)
- レビューチェックポイントが自動的に設けられます
効率の向上:
- ファイルを読み込むオーバーヘッドがありません(コントローラーが全文を提供します)
- コントローラーが必要なコンテキストだけを正確に選びます
- サブエージェントは最初に必要な情報をすべて受け取ります
- 作業開始前に質問が明らかになります(作業後ではありません)
品質ゲート:
- 自己レビューによって、引き渡し前に問題を検出します
- 2 段階レビューで、まず仕様への準拠を確認し、次にコード品質を確認します
- レビューの反復によって、修正が実際に機能することを確認します
- 仕様への準拠によって、作り込みすぎや作り込み不足を防ぎます
- コード品質の確認によって、実装が適切に構築されていることを確認します
コスト:
- サブエージェントの呼び出し回数が増えます(タスクごとに実装担当 1 人とレビュアー 2 人)
- コントローラーの準備作業が増えます(最初にすべてのタスクを抽出します)
- レビューの反復によって作業回数が増えます
- ただし、問題を早期に発見できます(後からデバッグするより低コストです)
危険信号
絶対に行わないこと:
- ユーザーの明示的な同意なしに、main/master ブランチで実装を開始する
- レビュー(仕様への準拠またはコード品質)を省略する
- 問題を修正しないまま進める
- 複数の実装担当サブエージェントを並列で割り当てる(競合が発生します)
- サブエージェントにプランファイルを読ませる(代わりに全文を提供します)
- 作業の背景を説明するコンテキストを省略する(サブエージェントはタスクの位置づけを理解する必要があります)
- サブエージェントの質問を無視する(続行させる前に回答します)
- 仕様への準拠が「ほぼ十分」で済んだと判断する(仕様レビュアーが問題を見つけた場合、完了ではありません)
- レビューの反復を省略する(レビュアーが問題を見つけたら、実装担当が修正し、再度レビューします)
- 実装担当の自己レビューで実際のレビューを代用する(両方が必要です)
- 仕様への準拠が ✅ になる前にコード品質レビューを開始する(順序が誤っています)
- どちらかのレビューに未解決の問題がある状態で、次のタスクに進む
サブエージェントから質問があった場合:
- 明確かつ完全に回答します
- 必要に応じて追加のコンテキストを提供します
- 実装を急がせないでください
レビュアーが問題を見つけた場合:
- 同じサブエージェントである実装担当が修正します
- レビュアーが再度レビューします
- 承認されるまで繰り返します
- 再レビューを省略しないでください
サブエージェントがタスクに失敗した場合:
- 具体的な指示を添えて、修正担当のサブエージェントを割り当てます
- 手動で修正しようとしないでください(コンテキストが汚染されます)
統合
必須のワークフロースキル:
- superjawn:using-git-worktrees - 必須:開始前に分離されたワークスペースを設定します
- superjawn:writing-plans - このスキルで実行するプランを作成します
- superjawn:requesting-code-review - レビュアーサブエージェント用のコードレビューテンプレートです
- superjawn:finishing-a-development-branch - すべてのタスクが完了した後に開発を完了します
サブエージェントが使用するスキル:
- superjawn:verification-before-completion - サブエージェントは、完了を報告する前に各タスクが機能することを証明します
代替ワークフロー:
- superjawn:executing-plans - 同じセッションでの実行の代わりに、並列セッションで実行する場合に使用します