code-subagents について
code-subagentsは、サブエージェントを使って実装作業を調整する開発者向けのスキルです。委任の条件を定め、依存関係に応じた逐次・並行実行と、完了したバッチ単位の一括レビューを案内します。
主な機能
- 01タスク委任の条件整理
- 02依存タスクの逐次実行
- 03独立タスクの並行実行
- 04ファイル範囲と担当の限定
- 05バッチごとの一括レビュー
- 06結果の統合と検証
活用シーン
- 01足場作成をサブエージェントに委任
- 02独立した作業項目の並行処理
- 03依存するコンポーネントの順次実装
- 04サブエージェントの変更をレビュー・統合
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ martinffx/ atelier --skill code-subagentsインストール後、Claude Code で/code-subagentsを入力して読み込まれたか確認します。
同梱ファイルreferences/batch-reviewer-prompt.mdreferences/implementor-prompt.md
詳細
実装サブエージェント
タスクごとに新しいサブエージェントを使用します。バッチの完了ごとに、まとめてレビューを1回行います。独立している場合は並列に、依存関係がある場合は順次実行します。
サブエージェントを使用するタイミング
使用する条件(すべて満たす必要があります):
- 設計が確定していること:計画または
design.mdで、そのファイルに含める内容(型、シグネチャ、スキーマ、契約、またはコピーする既存のパターン)がすでに指定されている - 作業項目に、明確な要件、担当ファイル、検証コマンドがある
- 他の進行中の作業とファイルや状態を共有しない
有力な候補は、新規ファイルの作成、スキャフォールディング、ボイラープレート、パターンに沿った編集です。 並列化するかどうかは別途判断します。以下の独立性チェックに合格した場合に限り、対象となる2つ以上の項目を同時に割り当てます。
使用しない場合:
- タスク間の結びつきが強い(同じファイルを編集する)
- タスクをまたいでシステム全体の状態を把握する必要がある
- 失敗に関連性がある(一方の修正で他方も解決する可能性がある)
- 問題がまだ明確に定義されていない探索的な作業
割り当てモード
順次(依存関係のあるタスク)
依存関係のあるタスクは、一度に1つずつ実行します。それぞれに新しいサブエージェントを割り当て、前のタスクのコンテキストが影響しないようにします。
Task 1 (Entity) → review → complete
Task 2 (Repository, depends on T1) → review → complete
Task 3 (Service, depends on T2) → review → complete
並列(独立したタスク)
独立したタスクは同時に割り当てます。問題領域ごとにエージェントを1つ割り当てます。
Task A (auth tests) ──→ review → complete
Task B (billing tests) ──→ review → complete ← concurrent
Task C (notification tests) ──→ review → complete
独立性チェック: タスクAの修正はタスクBに影響しますか? 同じファイルを編集しますか? 両方の答えが「いいえ」であれば、並列に割り当てます。
共有ツリーで並列作業を行う場合:
- 割り当て前に、各タスク専用のファイル一覧を指定する
- 実装者に変更のステージングやコミットをさせない
- 各タスクの前後で、未追跡ファイルを含む
git statusの内容全体を取得する - タスクのパスに限定したパッチを取得し、割り当てられたパス以外の変更を却下する
- ファイルの担当範囲が重複する場合、または分離できない場合は、タスクを順次実行する
エージェントの選定
割り当てるたびにエージェントを明示的に選定します(atelier-orchestrator の Delegation を参照)。実装者には設計の抜粋を提示し、設計上の判断をさせないようにします。機械的なファイル作成にはスキャフォールダーを使用してください。設計に左右される実装では、Atelier のエージェントから選ぶという唯一の例外として、ハーネスの汎用エージェントを使用できます。バッチレビュー担当者は、読み取り専用で批判的なレビューを行います。
プロンプトのテンプレート
サブエージェントを割り当てるときは、以下のテンプレートを使用します。いずれも実運用で検証済みです。独自に作らず、そのまま使用して変数を埋めてください。
- references/implementor-prompt.md — 実装者を割り当てます。セルフレビュー用チェックリストが含まれています。
- references/batch-reviewer-prompt.md — 完了した1つのバッチについて、計画とコード品質をまとめてレビューします。
プロンプト品質のルール
- 焦点を絞る — 1つのタスク、1つの問題領域にする
- 自己完結させる — 必要なコンテキストをすべてプロンプトに含める。作業項目の要件をすべて提示し、サブエージェントにコンテキストを探させない
- ファイルを具体的に指定する — 「関連ファイル」ではなく、正確なパスを指定する
- 出力を具体的に指定する — サブエージェントに何を返してもらうか明記する
- 制約を設ける — 触れてはならないものを明記する
よくある間違い
| 間違い | 修正例 |
|---|---|
| 「すべてのテストを修正する」 | 「user.test.ts の3件の失敗を修正する」 |
| コードベースのコンテキストがない | 関連するパターンと規約を貼り付ける |
| 制約がない | 「本番コードを変更しないでください」と明記するか、対象を特定のファイルに限定する |
| 出力の期待が曖昧 | 「返す内容:根本原因、実施した変更、テスト結果」 |
バッチレビュー
タスクごとに個別のレビューを行うのではなく、バッチが完了するたびに、まとめて1回レビューします。
新しいレビュアー1名に、以下を渡します。
- バッチ内の作業項目に関する要件一式
- 関連する制約
- 各タスクで取得した、パスを限定したパッチ
- 未追跡ファイルを含む、変更ファイルの完全な一覧
- 実装担当者の報告と検証結果
レビュアーは、要件への準拠とコード品質の両方を確認します。
- すべての要件と受け入れ基準が実装されている
- バッチが提示された制約に従っている
- 要求されていない作業や範囲外のファイルが含まれていない
- テストに意義があり、適切な境界がカバーされている
- 不必要に複雑化せず、既存のパターンに沿ったコードになっている
references/batch-reviewer-prompt.mdを記載どおりに使用します。
レビュアーが重大または重要な問題を見つけた場合は、それぞれの問題を該当する実装担当者に差し戻し、パスを限定したパッチを更新してから、バッチを再レビューします。軽微な問題は記録したうえで先に進めてもかまいません。
サブエージェントからの質問への対応
サブエージェントは、実装の前または途中に質問することがあります。これは、推測せずに考えている証拠なので、望ましいことです。
- 明確かつ十分に回答します
- 必要に応じて追加の背景情報を提供します
- 実装を急がせないでください
- 質問によって計画の不足が明らかになった場合、それは有益な気づきなので、記録します
結果の統合
サブエージェントが完了したら(特に並列に作業を割り当てた場合)、次の手順を実行します。
- 各サマリーを読む — 何が変更されたかを把握します
- タスクごとのパッチを取得する — 各タスク専用のファイルリストを使用します
- バッチをレビューする — 要件と品質をまとめて1回確認します
- テストスイート全体を実行する — すべての変更が連携して動作することを確認します
- コミットする — コーディネーターがレビュー済みのバッチを順番にコミットします
- 進捗管理を更新する — 呼び出し元が進捗管理を使用している場合に更新します
並列作業の結果に競合がある場合は、手作業で解決します。別のサブエージェントにマージを依頼しないでください。必要なコンテキストが多すぎるためです。
サブエージェントが失敗した場合
サブエージェントがタスクに失敗した場合:
- 手作業で修正しないでください — コンテキストが汚染されます
- 何が問題だったかを具体的に指示して、修正担当のサブエージェントを割り当てます
- 2回失敗した場合は作業を止め、人間にエスカレーションします。要件または制約の見直しが必要な可能性があります。