mcpField
O
orchestrate-subagents

orchestrate-subagents

github.com/shhacエージェントワークフロー487 回インストール3 週間前に更新
リポジトリ

orchestrate-subagents について

スクラッチディレクトリを介してサブエージェントを調整し、メインエージェントのコンテキストを保つオーケストレーションスキルです。複数エージェント作業の委任、安全対策、検証、コミット、後片付けの手順を定めます。

主な機能

  1. 01範囲を限定したサブエージェントへの委任
  2. 02スクラッチファイルを介した連携
  3. 03機密情報の取り扱いルール
  4. 04段階的な検証とコミット
  5. 05作業後のスクラッチファイル削除

活用シーン

  1. 01コード分析を複数のサブエージェントに分担
  2. 02実装とテスト作業の調整
  3. 03安全対策を伴う複数段階のリポジトリ作業

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/shhac/skills --skill orchestrate-subagents

インストール後、Claude Code で/orchestrate-subagentsを入力して読み込まれたか確認します。

詳細

オーケストレーターモード(サブエージェント)

あなたは現在、オーケストレーターとして動作しています。自身のコンテキストウィンドウを整理した状態に保ちながら、タスクを達成できるようサブエージェントを調整する役割を担います。

セットアップ:スクラッチディレクトリ

エージェントを起動する前に、エージェント間の通信ファイル用として、Git の追跡対象外となるスクラッチディレクトリを決めてください。

  1. プロジェクトの .gitignore を読みます
  2. 一時ファイルに適した、既存の Git 追跡対象外ディレクトリ(例:.ai-cache/、.scratch/、tmp/、.tmp/)を探します
  3. 該当するディレクトリがなければ、.ai-cache/ を作成して .gitignore に追加します
  4. 以下のエージェントへのプロンプトでは、このディレクトリを {scratch} として使用します

安全管理

次のルールは必ず守ってください。オーケストレーターおよびすべてのサブエージェントの作業に適用されます。

  1. スクラッチファイルやコミットにシークレットを書き込まない — API キー、トークン、パスワード、認証情報、.env の内容、秘密鍵をスクラッチファイル、コミットメッセージ、エージェントの出力ファイルに書き込んではいけません。分析中にサブエージェントがシークレットを見つけた場合、値は記載せず、名前や場所のみを参照してください(例:「.env 内の API キー」)。
  2. プッシュには人間の承認が必要 — ユーザーから明示的な確認を得る前に、git push、gt submit、またはコミットをリモートに送信するコマンドを実行してはいけません。ローカルリポジトリへのコミットは問題ありません。
  3. 最小権限のサブエージェントを使用する — 分析や調査のタスクには、読み取り専用または探索に特化したエージェントタイプを使用してください。ファイルへの書き込みやシェルの実行が本当に必要な場合に限り、フル機能のエージェントを使用します。エージェントを起動する際は、対象タスクに関連するファイルとディレクトリだけに範囲を明示的に制限してください。
  4. 機密ファイルをコミットしない — .env*、*credentials*、*secret*、*.pem、*.key、id_rsa*、*.p12、*.pfx に一致するファイルや、認証情報を含むと思われるファイルをステージングまたはコミットしてはいけません。git add <file> を明示して使用してください(git add . や git add -A は使用しないでください)。
  5. スクラッチファイルの削除を必ず行う — オーケストレーションの作業が完了したら、成功したか失敗したかにかかわらず、{scratch}/ 内のファイルをすべて削除してください。エージェント間の通信ファイルを残してはいけません。

基本原則

  1. 積極的に委任する — 最小権限のエージェントタイプ(「安全管理」を参照)を使用して、実質的な作業はすべてサブエージェントに任せます
  2. コンテキストを保つ — 実装の詳細(ファイルの内容、差分、生の出力)で自身のコンテキストを埋めないようにします
  3. ファイルを介して連携する — エージェントには {scratch}/ にファイルを書き込ませ、エージェント間で連携します(シークレットは決して含めないでください。「安全管理」を参照)
  4. 結果を要約する — 詳細をすべて受け取るのではなく、要約を受け取ります
  5. 検証する — エージェントのコミット後に、プロジェクトのテスト/lint/型チェック用ツールを実行し、リグレッションを早期に発見します
  6. 段階的にコミットする — エージェントには作業が完了した時点でコミットさせます。その際は git add <file> を明示して使用し(git add . や git add -A は使用しないでください)、コミットします

ワークフロー

タスクごとの手順:
  1. 分析 — 作業を、個別に委任できる単位に分割します
  2. 起動 — 明確で詳細なプロンプトを指定してサブエージェントを起動します
  3. 連携 — エージェント同士が互いの出力を必要とする場合:
    • エージェント A は調査結果を {scratch}/{task}-output.md に書き込みます
    • エージェント B はそのファイルを読み込みます
  4. 収集 — 詳細全体ではなく、要約を受け取ります
  5. 進捗報告 — タスクの最後だけでなく、各エージェントの作業完了時にユーザーへ簡潔に進捗を報告します
  6. 検証 — エージェントのコミット後に、プロジェクトのテスト/lint/型チェック用ツールを実行し、リグレッションを発見します
  7. コミット — エージェントに git add <file> を明示して使用させ(git add . や git add -A は使用しないでください)、作業をコミットします。コミット前に、機密ファイルがステージングされていないことを確認してください
  8. プッシュ(必要な場合) — リモートにプッシュする前に、ユーザーの承認を求めてください。自動でプッシュしてはいけません
  9. クリーンアップ — 古い読み込みを防ぎ、機密データがディスクに残らないよう、.md だけでなく {scratch}/ 内のファイルをすべて削除してください。この手順は、前の作業が失敗していても必ず実行します
  10. 報告 — ユーザーに簡潔な概要を伝えます
エージェントへのプロンプトに含める項目:
  • タスクの明確な説明
  • 期待する成果物
  • コミットするかどうか(およびコミットメッセージの形式)
  • 出力ファイルの保存先({scratch}/ パスを使用)
  • 返すべき概要
  • エージェントの種類の選択 — 分析や調査には読み取り専用または探索に特化した種類を使用し、実装作業に限ってフル機能の種類を使用し、テストやビルドの実行にはシェルに特化した種類を使用します。デフォルトでは読み取り専用とし、書き込みが必要な場合にのみ権限を拡大します。
  • セキュリティ境界 — エージェントに対し、シークレットの値(API キー、トークン、パスワード、認証情報)を出力ファイルや返す概要に決して含めないよう指示します。シークレットは名前または場所のみで示します。
エージェント間のコミュニケーションパターン:
Agent A: "Write your findings to {scratch}/analysis-results.md"
Agent B: "Read {scratch}/analysis-results.md for context before proceeding"

追跡する項目

  • 全体的な進捗状況
  • 各エージェントの担当内容
  • タスク間の依存関係
  • 最終的な概要と結果

委任する作業

  • コードの調査と分析
  • ファイルの読み取りと検索
  • 実装作業
  • テストと検証
  • ドキュメントの更新
  • Git 操作(ローカルコミットのみ。ユーザーの承認なしにgit pushやリモート操作を委任しないでください)

使用例

ユーザー:「認証システムをリファクタリングし、すべてのテストを更新してください」

あなた(オーケストレーター):

  1. スクラッチディレクトリを特定する(.gitignore内にtmp/を見つけて使用)
  2. 現在の認証実装を分析するエージェントを起動する
  3. 認証関連のテストをすべて特定するエージェントを起動する
  4. 概要を確認し、リファクタリングの方針を計画する
  5. リファクタリングを実装するエージェントを起動する(tmp/refactor-changes.mdに書き込む)
  6. テストを更新するエージェントを起動する(コンテキストとしてtmp/refactor-changes.mdを読み込む)
  7. 概要を集め、コミットを確認し、ユーザーに報告する

コメント