PlanGate

PlanGate フロー接続 — サブエージェント委譲プロトコル

Status: Specification(v1) 親: #710 サブエージェント委譲プロトコルをPlanGate運用に組み込む 対応子 Issue: #715 PlanGateフローへサブエージェント委譲プロトコルを接続する 関連(同ディレクトリ): README.md(正本入口・全体像、#711)/ outcome-contract.md(OUTCOME 契約、#712)/ dispatch-template.md(派遣プロンプト必須8要素、#713)/ behavior-norms.md(行動規範、#714)/ examples.md(サンプル、#716)

0. 位置づけ(一行の棲み分け)

本ファイルは 「PlanGate の Plan → Review → Approval → Execution の、どのタイミングでサブエージェントへ委譲するか」 を定義する接続層である。派遣プロンプトの中身は dispatch-template.md、報告契約は outcome-contract.md、行動規範は behavior-norms.md が正本を持つ(本ファイルで二重定義しない)。承認境界(C-3 / C-4 ゲート、親子 PBI Gate の AS-1〜5 / ChildExecAllowed / ParentDone)は本ファイルが変更・緩和する対象ではなく.claude/rules/orchestrator-mode.md の正本にすべて従う。本プロトコルは既存フローへの 拡張 であり、置換ではない(#710 方針 / #711 決定と一致)。

1. 対象フロー × PlanGate 既存フェーズ 対応表

docs/workflows/README.md の WF-00〜WF-07 と PlanGate の ABCD 呼称(docs/pages/reference/glossary.md が対応表の正本)を用いて、#715 が挙げる 5 つの対象フローを既存フェーズへ接続する。

# 対象フロー(#715) 接続先フェーズ 委譲時に使うテンプレート 併用する既存 Skill
1 Plan 作成時の追加調査 WF-01 Context Bootstrap → WF-02 Requirement Expansion(ABCD: A → B) 4-A 調査エージェント向け requirement-gap-scan / context-load
2 Plan レビュー時の別視点レビュー C-1 セルフレビュー / C-2 外部AIレビュー(計画品質ゲート、WF 外) dispatch-template.md 4-C「レビュー/監査/真因調査エージェント向け」(review=true plan-quality-check / plan-quality-reviewer / acceptance-criteria-build
3 Approval 前のリスク監査 C-3 直前(人間レビュー前、計画承認ゲート) 4-C(review=true risk-assessment
4 Execution 中の限定実装 D: Agent 実行(TDD)/ WF-04 Build & Refine 4-B 実装エージェント向け plugin/plangate/skills/subagent-dispatchdispatch/task-NNN-brief.md とファイル授受を併用)
5 Failure / partial 時の追指示 上記 1〜4 のどのフェーズでも発生しうる(フェーズ非依存) dispatch-template.md 4-D「同一サブエージェントへの追指示」

表の「接続先フェーズ」はあくまで委譲の契機であり、C-1〜C-4 の判定主体・判定基準そのものは変更しない。例えば #2/#3 でサブエージェントが review=true で指摘を返しても、C-3 の APPROVE / CONDITIONAL / REJECT を決めるのは人間である(working-context.md C-3 ゲート正本のまま)。

2. 委譲判断基準

2.1 Iron Law(codex-multi-agent からの継承)

今すぐ主担当(オーケストレータ)が自分でやるべき作業は委譲しない.claude/skills/codex-multi-agent Iron Law)

委譲は目的ではなく手段である。独立して進められる具体的なタスクがない限り分割しない。

2.2 委譲する / しないケース(#715 委譲判断基準案の転記)

委譲する 委譲しない
真因調査 単純な文言修正
設計レビュー 明確な1ファイル変更
リスク列挙 既に判断済みの軽微な作業
複数観点レビュー オーケストレータが即答できる小さな確認
長文 SSOT の照合  
既存調査結果の独立確認  
実装前の影響範囲確認  

安全側の判定: 該当が曖昧な場合は「委譲しない」側に倒す(委譲そのものを目的化しない。#715 注意点)。委譲により品質向上・観点分離・並列調査の効果が見込める場合に限定する。

2.3 Agent 単発 vs Workflow 化(#710 方針 5)

Agent 単発ではハードなコスト上限を強制できない(ソフト上限のみ)前提で使い分ける。

状況 選択
小〜中規模タスク(表 1 の #1〜#3、単発の調査・レビュー・監査) Agent 単発 + ソフト上限dispatch-template.md 要素6 の「ソフト上限」欄)
長期調査・多段処理(複数フェーズにまたがる継続タスク) Workflow 化docs/workflows/0N_*.md として phase 定義。単発 Agent への丸投げにしない)
ハード予算(トークン上限・ステップ上限を機構として強制したい) budget.remaining() 相当の仕組みを持つ Workflow 側に載せる(Agent 単発では実現しない。将来拡張、本 PBI 範囲外)

3. オーケストレータの責務(実作業をなぞらない)

オーケストレータの責務定義・完全な受け入れ確認チェックリストは README.md §3 と outcome-contract.md §6 が正本(本ファイルで二重定義しない)。要旨のみ再掲する。

4. SendMessage 追指示 vs 新規 spawn の使い分け

issue #715 のやること「SendMessage で同一サブエージェントへ追指示する条件」「新規 spawn すべき条件」を以下で定義する。

4.1 SendMessage 追指示を選ぶ条件(同一サブエージェント継続)

dispatch-template.md の 4-D テンプレートを用い、前回の完了状態の要約を省略しない(暗黙の継続を前提にしない)。

4.2 新規 spawn を選ぶ条件(別セッションで再委譲)

4.3 判定に迷った場合

新規 spawn 側に倒す(コンテキスト汚染や視点固定化のリスクを、追指示の効率より優先する)。

5. 既存承認ゲート・既存フローとの整合(矛盾しない確認 / #710・#715 受け入れ条件)

6. HO への接続(本ファイルは非HO)

本ファイル自体は docs/ 配下の非 Hardening Override(HO)ファイルであり、直接作成・編集できる。一方、.claude/rules/orchestrator-mode.md / .claude/rules/responsibility-classes.md / CLAUDE.md / AGENTS.md への 本プロトコルへの参照導線追加は HO パスへの変更に該当するため、AI が直接編集せず scripts/apply-subagent-delegation-wiring.sh(非HO・--dry-run 既定の apply スクリプト)に隔離し、Human が確認・適用する(ho-change-workflow.md 標準フロー準拠)。

7. 参照