mcpField
S
subagent-driven-development

subagent-driven-development

github.com/lucianghindaエージェントワークフロー42540 回インストール1 日前に更新
リポジトリ

subagent-driven-development について

subagent-driven-developmentは、タスクごとに新しいサブエージェントを割り当てて実装計画を進めるスキルです。作業を続ける前に、仕様適合性の確認とコード品質レビューを順に行います。

主な機能

  1. 01タスクごとに新しいサブエージェントを割り当て
  2. 02仕様適合性を先にレビュー
  3. 03続けてコード品質をレビュー
  4. 04レビュー指摘に応じて修正を反復
  5. 05タスクが停滞した場合の対応を定義

活用シーン

  1. 01タスク単位の実装計画の実行
  2. 02タスクごとのコンテキスト分離
  3. 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.md
implementer-prompt.md
spec-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: 実装担当者はタスクを完了できません。阻害要因を評価してください。

  1. コンテキストの問題であれば、情報を追加して同じモデルに再度割り当てます
  2. より深い推論が必要なタスクであれば、より高性能なモデルに再度割り当てます
  3. タスクが大きすぎる場合は、より小さな単位に分割します
  4. 計画自体に問題がある場合は、人間にエスカレーションします

エスカレーションを無視したり、変更を加えずに同じモデルへ再試行させたりしてはいけません。実装担当者が行き詰まったと報告した場合は、何かを変える必要があります。

プロンプトのテンプレート

  • ./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 - 同じセッション内での実行の代わりに、並列セッションで使用します

コメント