ワンクリックで
orchestrate-workflow
Feature の開発フロー全体のオーケストレーション手順。Board を使ったエージェント呼び出し・Gate 評価・状態遷移の具体的手順を定義する。オーケストレーターがワークフロー実行時に参照するスキル。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Feature の開発フロー全体のオーケストレーション手順。Board を使ったエージェント呼び出し・Gate 評価・状態遷移の具体的手順を定義する。オーケストレーターがワークフロー実行時に参照するスキル。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
要求分析・影響分析を並列実行し、実行計画を策定する。Feature の計画フェーズを単独で実行したいときに使用する。
既存プロジェクトへ .github/ を移植した際に、プロジェクト全体の評価(構造解析・テスト状況・コード品質・ドキュメント・DevOps)を実施する。assessor エージェントまたは /assess プロンプトから参照される。
エージェントのモデルを変更する(個別・一括・デフォルトに戻す)。エージェントのモデル変更が必要なときに使用する。
新規プロジェクトに .github/ を導入した際の初期設定を行う。settings.json の作成とプロジェクト固有値の設定を対話的にガイドする。
Board の作成・読み込み・状態遷移・Gate 評価・history 追記・アーカイブを手順化する。オーケストレーターが Board 操作時に参照するスキル。
現在の変更に対してコードレビューを実行する。変更のレビューが必要なときに使用する。
| name | orchestrate-workflow |
| description | Feature の開発フロー全体のオーケストレーション手順。Board を使ったエージェント呼び出し・Gate 評価・状態遷移の具体的手順を定義する。オーケストレーターがワークフロー実行時に参照するスキル。 |
rules/development-workflow.mdskills/manage-board/SKILL.mdrules/workflow-state.mdrules/gate-profiles.json各フェーズで使用する task ツールの agent_type を以下に定義する:
| フェーズ | カスタムエージェント | agent_type | 理由 |
|---|---|---|---|
| 要求分析 | analyst | analyst | 読み取り専用。impact-analyst と並列実行可 |
| 影響分析 | impact-analyst | impact-analyst | 読み取り専用。analyst と並列実行可 |
| 構造評価 | architect | architect | 構造的分析に完全なツールが必要 |
| 計画策定 | planner | planner | analyst + impact-analyst の結果を統合して計画 |
| 実装 | developer | developer | ファイル編集が必要 |
| テストケース設計 | test-designer | test-designer | 読み取り専用。要求ベースでテスト仕様を導出 |
| テスト検証 | test-verifier | test-verifier | 実装者と独立した第三者検証 |
| コードレビュー | reviewer | code-review | 差分検出に特化した軽量エージェント |
| ドキュメント | writer | writer | ファイル編集が必要 |
| 事前調査 | — | explore | 高速・並列安全な読み取り専用調査 |
| ビルド・テスト実行 | — | task | コマンド実行特化(成功/失敗のみ) |
exploreとtaskはカスタムエージェントではなく、ビルトインエージェントタイプ。 事前調査の並列化やテスト実行の非同期化に活用する。 analyst, impact-analyst, test-designer, test-verifier は読み取り専用のため並列実行が安全。
task ツールでエージェントを呼び出す際、model パラメータを明示的に指定する。
.github/settings.json の agents セクションを読むagents.<agent-name>.modelagents.modeltask ツール呼び出し時に model パラメータとして渡す# settings.json で agents.model = "claude-sonnet-4.6" の場合:
task(agent_type="developer", model="claude-sonnet-4.6", prompt="...")
# settings.json で agents.architect.model = "claude-opus-4.6" の個別設定がある場合:
task(agent_type="architect", model="claude-opus-4.6", prompt="...")
Why:
.agent.mdの frontmattermodelはエージェント定義側の宣言だが、 CLI のtaskツールはmodelパラメータが明示指定されていない場合、 ビルトインのデフォルトモデルを使用する可能性がある。 オーケストレーターがsettings.jsonから解決して渡すことで確実にモデルが適用される。
CLI では rules/ が自動ロードされないため、各フェーズ開始前に必要なルールを view で読み込む。
| フェーズ | 必要ルール |
|---|---|
| 全フェーズ共通 | rules/workflow-state.md, rules/gate-profiles.json |
| Feature 開始 | rules/branch-naming.md, rules/worktree-layout.md |
| 要求分析 | rules/development-workflow.md(Maturity 判断用) |
| 影響分析 | rules/development-workflow.md, rules/worktree-layout.md |
| 計画策定 | rules/development-workflow.md |
| 実装 | rules/commit-message.md |
| テストケース設計 | — (instructions/test.instructions.md は applyTo で自動適用) |
| テスト検証 | — (gate-profiles.json の test_gate を参照) |
| レビュー | — (reviewer エージェント仕様内に観点が定義済み) |
| PR 提出 | rules/merge-policy.md, rules/error-handling.md |
| クリーンアップ | rules/issue-tracker-workflow.md(Issue トラッカー利用時のみ) |
オーケストレーターはフェーズ開始前に該当ルールを
viewし、サブエージェントのプロンプトに要点を埋め込む。 サブエージェント自身がルールをviewする必要はない(プロンプトに含まれるため)。
各フェーズで並列化可能な操作を定義する。
PARALLEL:
- explore: 既存ブランチ・worktree の確認
- explore: 類似 Feature の過去セッション検索(session_store)
SEQUENTIAL:
- Board 初期化 + SQL テーブル作成
PARALLEL(分析フェーズ — 両エージェントとも読み取り専用で並列安全):
- analyst エージェント呼び出し(要求の構造化・AC/EC 策定)
- impact-analyst エージェント呼び出し(依存グラフ・リスク評価)
※ 両エージェント内部でも explore を並列活用
SEQUENTIAL:
- 両結果を Board artifacts に書き込み → analysis_gate 評価
コンテキスト分離の効果: analyst は「何が必要か」に集中し、impact-analyst は「どこに影響するか」に集中。 互いのコンテキストに引きずられないため、より正確な分析が可能。
SEQUENTIAL:
- architect エージェント呼び出し(条件付き — design_gate.required に従い escalation.required を評価)
- planner エージェント呼び出し(analyst + impact-analyst + architect の結果を入力)
PARALLEL(実装とテスト設計は独立に実行可能):
- developer エージェント(実装)
- test-designer エージェント(要求ベースのテストケース設計 — 読み取り専用)
※ test-designer は requirements を入力とするため、実装を待たずに設計可能
SEQUENTIAL:
- developer がテストコード実装(test-designer の仕様に基づく)
設計意図: test-designer は実装コードを見ずに要求からテストを設計する。 これにより実装バイアスのないテストケースが得られる。 developer は実装完了後に test-designer の仕様を受け取り、テストコードを書く。
PARALLEL(test-verifier 内部での並列):
- task: テストスイート全体の実行
- explore: テストコードと test_design の照合
- explore: カバレッジレポートの分析
SEQUENTIAL:
- test-verifier エージェント呼び出し(結果の統合・verdict 判定)
コンテキスト分離の効果: developer が書いたテストを、developer とは別のコンテキストで検証。 人間のQAチームと同様、「実装者 ≠ 検証者」の原則をLLMにも適用。
PARALLEL(レビュー準備):
- explore: 変更差分のコンテキスト収集
- explore: 関連するコーディング規約の確認
SEQUENTIAL:
- reviewer エージェント呼び出し(code-review タイプ)
SEQUENTIAL:
- writer エージェント呼び出し
- submit-pull-request スキル実行
- cleanup-worktree スキル実行
オーケストレーターは Board JSON 操作と同時に SQL テーブルを更新する。
テーブル定義と詳細手順は skills/manage-board/SKILL.md の「SQL によるセッション内 Board ミラー」を参照。
1. Board を確認する(SQL: SELECT * FROM board_state)
2. 次の Gate を特定(SQL: SELECT name FROM gates WHERE status = 'not_reached' LIMIT 1)
3. Gate 条件を gate-profiles.json から取得する
4. エージェントを呼び出す
5. Board JSON + SQL の artifacts/gates を更新する
6. SQL バリデーションクエリで整合性検証
7. completed に到達するまで繰り返す
各フェーズの実行前に、オーケストレーターは以下の安全チェックを行う。 これは旧 Hooks が自動実行していた保護機能を、手続きとして明示化したものである。
# 現在のブランチを確認
git branch --show-current
Board JSON を編集した後は、skills/manage-board/SKILL.md の「書き込み後バリデーション」セクションに従い検証を実行する。
1. Board を確認する(view で Board JSON を読み取り、SQL にロードする)
2. 現在の flow_state と gate_profile を確認する(SQL: SELECT * FROM board_state)
3. 次の Gate 条件を gate-profiles.json から取得する(SQL: SELECT name FROM gates WHERE status = 'not_reached' LIMIT 1)
4. Gate が required: false なら skip、required: true なら該当エージェントを呼び出す
5. エージェントの出力を Board の artifacts に書き込む(JSON + SQL 同時更新)
6. **Board 整合性検証**を実行する(SQL バリデーションクエリ)
7. Gate を評価し、gates.<name>.status を更新する(JSON + SQL 同時更新)
8. 通過 → flow_state を遷移、history に記録(JSON + SQL 同時更新)
9. 不通過 → 前の状態にループバック、history に記録
10. completed に到達するまで 2-9 を繰り返す
Board 操作の詳細手順は
skills/manage-board/SKILL.mdを参照。
コンテキストウィンドウが圧迫された場合、LLM はコンパクション(要約)を行う。 Board の状態が失われないよう、以下の手順に従う:
view で再読み込みし、SQL テーブルを再構築すれば、直前の状態を完全に復元できるWhy: 旧 pre_compact Hook が Board 状態をコンパクション前に additionalContext に保全していた。 How: Board をファイルに即座に永続化し、SQL ミラーを維持することで、コンパクション後も view + SQL 再ロードで復帰可能にする。
エージェントは worktree 内の相対パスを解決できない場合がある。 Board コンテキストの伝達はプロンプトへの直接埋め込みを基本とする。
view で Board JSON を読み取るtask ツールのプロンプトに直接記載する:## Board コンテキスト
- feature_id: <feature_id>
- maturity: <maturity>
- flow_state: <flow_state>
- cycle: <cycle>
- gate_profile: <gate_profile>
### 関連 Artifacts
<呼び出すエージェントに関連する artifacts のサマリを記載>
### Board ファイルパス(詳細参照用)
絶対パス: <worktree の絶対パス>/.copilot/boards/<feature-id>/board.json
相対パス: .copilot/boards/<feature-id>/board.json
view するWhy: 検証で判明 — エージェントは worktree 内の相対パスを解決できない。 How: Board 内容をプロンプトに直接埋め込むことで、パス解決に依存せず確実に伝達する。 絶対パスも併記することで、詳細参照が必要な場合のフォールバックを提供する。
start-feature スキルに従い、ブランチ・worktree を準備するprovider ≠ "none")は Issue も作成するrules/branch-naming.md に従うrules/worktree-layout.md に従う.copilot/boards/<feature-id>/board.json を初期化
feature_id: ブランチ名から導出maturity: ユーザーに確認(デフォルト: experimental)flow_state: initializedcycle: 1gate_profile: maturity と同値$schema: 省略推奨(記載する場合は ../../.github/board.schema.json)skills/manage-board/SKILL.md を参照skills/manage-board/SKILL.md の SQL テーブル定義に従い、Board 状態を SQL にロードする既存の Board がある場合はサイクルを進める:
cycle をインクリメントflow_state を initialized にリセットgates を全て not_reached にリセットartifacts と history は保持(前サイクルのコンテキストとして参照可能)artifacts.requirements に FR/NFR/AC/EC を構造化 JSON で書き込むartifacts.impact_analysis に影響ファイル・依存グラフ・リスク評価を書き込むaffected_files には変更対象・移動元・移動先・参照更新先を漏れなく列挙する並列実行の根拠: analyst は「何が必要か(What)」、impact-analyst は「どこに影響するか(Where)」を分析。 互いに独立した観点であり、同一コンテキストで行う必要がない。 別コンテキストで実行することで、各分析の深さと正確性が向上する。
Gate: analysis_gate — gate-profiles.json の required 値に従う
gate-profiles.json の design_gate.required を確認し、エスカレーション要否を判定する:
design_gate.required の値 | 動作 |
|---|---|
true | 常に architect を呼び出す(release-ready) |
"on_escalation" | artifacts.impact_analysis.escalation.required == true の場合のみ architect を呼び出す。stable プロファイルでは affected_files >= 2 も発動条件 |
false | architect をスキップし、Phase 4 に進む(experimental) |
architect を呼び出す場合:
architect エージェント(agent_type: general-purpose)に構造評価を依頼するartifacts.requirements + impact-analyst の artifacts.impact_analysisartifacts.architecture_decision に結果を書き込むarchitect をスキップする場合:
artifacts.architecture_decision を null に設定するGate: design_gate — gate-profiles.json の required 値と escalation_condition に従う
planner エージェントに実行計画の策定を依頼する(analyst + impact-analyst + architect の結果を入力に含む)artifacts.execution_plan に結果を書き込むGate: plan_gate — gate-profiles.json の required 値に従う
developer エージェントに実装を依頼する(逐次、ファイル編集あり)test-designer エージェントにテストケース設計を依頼する
artifacts.requirements の AC/EC からテスト仕様を導出artifacts.implementation に変更ファイル一覧と実装概要を書き込むartifacts.test_design にテストケース仕様を書き込むinstructions/ 配下のコーディング規約に従うrules/commit-message.md に従う分離の効果: test-designer は実装コードを見ずに要求からテストを設計する。 developer は test-designer の仕様に基づいてテストコードを書く。 「実装者が自分に都合の良いテストだけ書く」問題を構造的に防止する。
Gate: implementation_gate(全 Maturity で必須)
test-verifier エージェントにテスト検証を依頼する(developer とは独立したコンテキスト)settings.json の project.test.command を使用するtask ビルトインエージェントで非同期実行可能artifacts.test_verification に検証結果と verdict を書き込むコンテキスト分離の効果: developer(実装者)とは異なるコンテキストで検証することで、 人間の品質保証と同様の「実装者 ≠ 検証者」の客観性を実現する。
Gate: test_gate — gate-profiles.json の required / pass_rate / coverage_min / regression_required に従う
explore エージェントを並列で起動し、変更差分のコンテキストと関連規約を収集するreviewer エージェントにレビューを依頼する(code-review agent_type を使用)artifacts.review_findings にレビュー結果を追記するreview_gate.checks に基づくGate: review_gate — gate-profiles.json の required / checks に従う
fix_required → flow_state を implementing に戻すdeveloper に reviewer の fix_instruction を渡して修正を依頼lgtm で approved に遷移fail → flow_state を implementing に戻すdeveloper に test-verifier のフィードバック(missing TC、quality_issues)を渡して修正を依頼conditional_pass → planner に許容判断を委ねるwriter エージェントにドキュメント更新を依頼するartifacts.documentation に更新ファイル一覧を書き込むGate: documentation_gate — gate-profiles.json の required 値に従う
| 変更種別 | 更新対象 |
|---|---|
| 新機能追加 | instructions + 該当 skills + copilot-instructions.md |
| 既存機能の改善 | 該当 skills + rules(影響がある場合) |
| アーキテクチャ変更 | instructions + copilot-instructions.md + docs/architecture/ |
| 新規モジュール追加 | docs/architecture/module-map.md + 関連 ADR |
| バグ修正のみ | 原則不要(挙動が変わる場合は該当ファイルを更新) |
submit-pull-request スキルに従い、コミット → プッシュ → PR 作成 → マージgit merge --no-ff を実施するrules/merge-policy.md に従うresolve-conflict スキルで解消merge-nested-branch スキルでサブ → 親 → main の順序マージrules/error-handling.md に従いリカバリGate: submit_gate(全 Maturity で必須)
cleanup-worktree スキルに従い、worktree・ブランチを整理するrules/issue-tracker-workflow.md に従い Done に更新boards/_archived/<feature-id>/ に移動する(または maturity が上がる場合はそのまま保持)skills/manage-board/SKILL.md セクション 9 参照)Gate のスキップ・失敗時の具体的な Board 操作手順は
skills/manage-board/SKILL.mdセクション 4 を参照。submit_gateがblockedの場合はapprovedで作業を終了し、クリーンアップに進む。
1. Feature 開始 & Board 作成 → maturity: sandbox
2. 影響分析 → [analysis_gate]
3. 構造評価(on_escalation) → [design_gate]
4. 計画策定 → [plan_gate]
5. 実装 → [implementation_gate]
6. テスト → [test_gate]
7. コードレビュー → [review_gate] → approved
── ここで終了 ──
8. クリーンアップ(Board 破棄) → worktree・ブランチ削除
submit_gate.required が "blocked" の場合、Gate を blocked 状態にするapproved 状態に到達した時点で作業を終了と見なすsubmitting / completed には遷移しないsandbox の作業完了後:
_archived/ に移動せず、削除する(board_destroyed アクション)settings.json 等への一時的変更は worktree と共に消滅する詳細手順は
skills/manage-board/SKILL.mdセクション 9 を参照。