execute-plan について
execute-planは、承認済みの計画を範囲、順序、検証要件に沿って実行するスキルです。計画に進捗や決定事項を記録し、曖昧さや阻害要因があれば停止して、最終確認用の完了レポートを作成します。
主な機能
- 01計画と関連する情報の読み込み
- 02フェーズ順の実行
- 03計画内で進捗と決定を記録
- 04フェーズ基準に沿った検証
- 05曖昧さや阻害要因で停止
- 06完了レポートの作成
活用シーン
- 01承認済みの複数フェーズ計画の実施
- 02実行中の検証と決定事項の追跡
- 03要件や範囲が不明な場合の実行停止
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ buiducnhat/ cobrew --skill execute-planインストール後、Claude Code で/execute-planを入力して読み込まれたか確認します。
同梱ファイルreferences/execution-report-template.md
詳細
計画の実行
概要
事前承認済みの計画を、スコープ、順序、検証を厳守して実行します。計画は実行中の進捗、調査結果、決定事項、成果を記録する生きたドキュメントとして扱います。
入力の例:execute-plan docs/.plans/YYMMDD-HHmm-<plan-slug>/SUMMARY.md
実行中に計画を再設計してはいけません。曖昧な点や障害が生じた場合は、作業を中断して確認してください。
ワークフロー
ステップ 1:初期化
-
計画を特定する
- 計画のパスが存在し、読み取り可能であることを確認します。
- ディレクトリが指定されている場合は、その中にある
SUMMARY.mdを探します。
-
実行コンテキストを読み込む
- 計画に関連するプロジェクトのコンテキストのみを読み込みます。
docs/SUMMARY.mdが存在する場合は、最初に読みます。- タスクに関連する詳細ドキュメントのみを読み込みます。
- 実装規約については、
Code Standardドキュメントを優先します。 - ドキュメントがコードやユーザーの意図と矛盾する場合は、広範な変更を行う前に、利用可能な入力や質問をもとに判断します。
- 計画のフェーズファイル、コンテキスト/オリエンテーションのメモ、依存関係、受け入れ基準、冪等性/復旧に関するメモ、決定ログ、未解決の質問を確認します。
- 古い計画に生きた計画に必要なセクション(
Progress、Surprises & Discoveries、Decision Log、Outcomes & Retrospective)がない場合、計画の内容が明確であれば、実行前にこれらのセクションを追加します。
- 計画に関連するプロジェクトのコンテキストのみを読み込みます。
-
実行モードを選択する(明示的なルール)
- デフォルトのモード:Batch
- 次のいずれかに該当する場合は、Interactive を使用します。
- リスクの高い変更(認証、決済、移行、セキュリティ上重要なロジック)
- 取り消せない操作(データ移行、破壊的なスクリプト)
- 受け入れ基準が不明確
- ユーザーがチェックポイントを明示的に要求している
- モードが不明確な場合は、一度だけ確認し、ユーザーの選択に従って進めます。
-
次の未完了フェーズを見つける
- 最初の
[ ]フェーズ - 該当するものがなければ、最初の
[-]フェーズ - 未完了または進行中のフェーズが残っていない場合は、最終検証に進みます。
- 最初の
-
計画の重要な整合性を確認する
- 各フェーズに次の内容があることを確認します。
- 明確な目標
- 対象ファイル
- 検証コマンド
- 観測可能な受け入れ基準
- 明示されたフェーズの検証内容と終了基準から推測できる場合は、観測可能な受け入れ基準が欠けていても、実行前にフェーズへ追加します。
- 重要な詳細が欠けている、または矛盾している場合は、作業を中断して確認を求めます。
- 各フェーズに次の内容があることを確認します。
ステップ 2:フェーズごとのループを実行する
各フェーズを順番に実行します。
-
完了済みのフェーズをスキップする
- ステータスが
[x]の場合は、次のフェーズに進みます。
- ステータスが
-
進行中にする
- 変更を加える前に、フェーズのステータスを
[-]に更新します。 SUMMARY.mdに、フェーズの開始を説明するタイムスタンプ付きのProgressエントリーを追加します。
- 変更を加える前に、フェーズのステータスを
-
厳密に実行する
- そのフェーズで定義されたタスクのみを実装します。
- 承認なしにスコープを拡大しないでください。
- フェーズの要件を満たす最小限のコードを記述します。推測に基づく機能、単一用途のコードに対する抽象化、起こり得ないシナリオへのエラー処理は追加しないでください。以下の シンプルさ優先 と 外科的な変更 のルールを参照してください。
- 実装中に重大な想定外の事実が判明した場合は、
SUMMARY.mdのSurprises & Discoveriesに記録します。 - スコープ内に留まるために判断が必要な場合は、続行する前に判断とその理由を
Decision Logに記録します。
-
フェーズを検証する
- 計画に記載された、そのフェーズ固有の検証コマンドを実行します。
- 最低限、変更したファイルに関連するテストやチェックを実行します。
- 簡潔な検証結果を
SUMMARY.mdのProgressまたはフェーズで指定された証跡の記録先に記録します。
-
失敗に対処する
- 検証に失敗した場合:
- フェーズのスコープ内で、対象を絞った修正を試みます。
- 検証を再実行します。
- それでも失敗する場合、または根本原因がスコープ外にある場合は、停止してブロッカーを報告します。
- 検証に失敗した場合:
-
完了にする
- 検証に合格した後に限り、フェーズのステータスを
[x]に更新します。 - 検証結果と、そのフェーズで変更したファイルを記載したタイムスタンプ付きの
Progressエントリーを追加します。
- 検証に合格した後に限り、フェーズのステータスを
-
進捗を報告する
- 対話モード: 報告し、次のフェーズに進む前に確認を待ちます。
- バッチモード: 簡潔に報告し、直ちに続行します。
ステップ 3:最終検証
すべてのフェーズが完了した後:
-
プロジェクト全体の検証
- 全体のリント/型チェック一式を実行します。
- 関連するすべてのテスト(または計画で求められている場合はテスト一式)を実行します。
- 該当する場合はビルド検証を実行します。
-
安定化
- 実行中に発生したリグレッションを修正します。
- すべてのチェックに合格するか、ブロックされるまで、失敗したチェックを再実行します。
-
手動検証の確認
- ユーザーによる手動 QA が必要な場合は、明示的に依頼して一時停止します。
Verifiedで承認- または、次の反復に向けたフィードバックを提供
- ユーザーによる手動 QA が必要な場合は、明示的に依頼して一時停止します。
-
成果を更新する
- 最終結果、検証の概要、承認済みの逸脱、フォローアップを含め、
SUMMARY.mdのOutcomes & Retrospectiveを完成させます。
- 最終結果、検証の概要、承認済みの逸脱、フォローアップを含め、
ステップ 4:完了時の成果物
-
ドキュメントを同期する
- 動作/アーキテクチャ/コードベースの想定が変わった場合は、
docsの成果物を更新します。
- 動作/アーキテクチャ/コードベースの想定が変わった場合は、
-
実行レポートを作成する
- ファイル:
docs/.plans/YYMMDD-HHmm-<plan-slug>/EXECUTION-REPORT.md - 以下の必須セクションをすべて含めます。
- ファイル:
-
最終確認に備える
- ユーザーの最終確認前にアーカイブしてはいけません。ユーザーが
Need verifyを選択することがあり、その場合は同じ計画パスを使って実行を続ける必要があります。
- ユーザーの最終確認前にアーカイブしてはいけません。ユーザーが
ステップ 5:最終確認ゲート
完了時の成果物が整った後、入力/質問ツールを使って、次の選択肢をこのとおりに提示し、ユーザーに最終確認を求めます。
Confirm: End sessionNeed verify
選択された内容に応じて、次のように対応します。
-
Confirm: End session- 計画フォルダーを
docs/.plans/archived/にアーカイブします。 - 次のとおり通知します:
Execution complete. Report archived at docs/.plans/archived/YYMMDD-HHmm-<plan-slug>/EXECUTION-REPORT.md. - 実行セッションを終了します。
- 計画フォルダーを
-
Need verify- ユーザーから検証のフィードバック/詳細を受け取ります。
- アーカイブはしません。
- フィードバックに対応する実行ループを続け、その後、必要に応じて検証と完了手順を再実行します。
実行レポートの標準
EXECUTION-REPORT.md は次のテンプレートを使用する必要があります:references/execution-report-template.md
ルール
- プロジェクトの規約を尊重する:
docs/および関連するプロジェクトドキュメントに従います。 - 計画を厳守する:範囲を黙って変更しません。
- ブロッカーが発生したら停止する:依存関係の不足、指示の矛盾、または原因不明の失敗がある場合は停止します。
- 推測しない:不明な点があれば確認を求めます。
- 完了前に検証する:チェックに合格するまでは、フェーズを完了としません。
- 計画を常に最新に保つ:実行の進行に合わせて、進捗、発見事項、決定事項、結果を
SUMMARY.mdに更新します。重要な実行状態をチャット履歴だけに頼らないでください。 - 冪等性:安全に再実行できる操作を優先します。
- シンプルさを優先する:フェーズの完了条件を満たす最小限のコードを実装します。計画にない機能は追加しません。1回しか使わないコードに抽象化を導入しません。要求されていない設定機能は追加しません。200行書いて50行で済むなら、書き直します。
- 変更は必要最小限にする:フェーズに必要な箇所だけを変更します。隣接するコード、コメント、書式を「改善」しません。問題のないコードをリファクタリングしません。別の方法を好む場合でも、既存のスタイルに合わせます。変更によって使われなくなったインポート、変数、関数だけを削除します。計画で求められていない限り、既存の未使用コードは削除しません。変更したすべての行がフェーズのタスクに紐づくようにします。
- 成果物は、現在のセッションと同じ言語で作成します。