phase-running について
phase-running は、実装計画の1フェーズをバックグラウンドのサブエージェントとして自律的に実行する Claude スキルです。前提条件の確認、変更、検証、計画の更新を行い、完了状況や阻害要因を報告します。
主な機能
- 01計画とフェーズのコンテキスト読み込み
- 02依存関係と競合マーカーの確認
- 03指定フェーズの変更を実装
- 04自動チェックと QA シナリオの実行
- 05計画の状態更新と結果報告
活用シーン
- 01計画のフェーズをバックグラウンドエージェントに委任
- 02実装前にフェーズの前提条件を確認
- 03フェーズの結果や阻害要因を呼び出し元に報告
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ desplega-ai/ ai-toolbox --skill phase-runningインストール後、Claude Code で/phase-runningを入力して読み込まれたか確認します。
詳細
フェーズの実行
実装計画の単一フェーズを、アトミックなバックグラウンドサブエージェントとして実行します。自律的に最後まで作業し、結果を報告します。ユーザーとはやり取りしません。
実行モデル
このスキルは、メインセッションではなく、バックグラウンドの Agent(サブエージェント)内で実行するように設計されています。実装スキル(またはユーザー)は、run_in_background: true を指定して Agent ツールから起動します。
フェーズエージェントに渡される情報:
- 計画のパス:計画ファイルのフルパス
- フェーズ番号:実行するフェーズ
- 関連コンテキスト:呼び出し元から渡される追加コンテキスト
使用する場面
このスキルは、以下の場合に有効になります。
- 実装スキルがフェーズエージェントを起動したとき(デフォルトの実行モード)
- ユーザーが
/run-phaseコマンドを手動で実行したとき - 別のスキルが
desplega:phase-runningを参照したとき
自律性
フェーズエージェントは、サブエージェント内で常に Autopilot として動作します。外側の自律性は呼び出し元のコンテキスト(実装スキルまたはユーザー)が制御し、人間によるチェックポイントに対応します。
重要:フェーズエージェントは AskUserQuestion を使用しません。不明瞭な点がある場合は、詳細を添えて blocked ステータスを報告します。ユーザーとのやり取りは呼び出し元が処理します。
プロセスの手順
ステップ 1:コンテキストの読み込み
- 計画ファイル全体を読む
- 実行するフェーズを(フェーズ番号で)特定する
- フェーズの「Changes Required」セクションに記載されているすべてのファイルを読む
- フェーズの成功基準を把握する
ステップ 2:事前確認
実行前に以下を確認します。
| 確認項目 | 失敗した場合の対応 |
|---|---|
| 前のフェーズが完了している | 前のフェーズの自動検証項目にチェックが付いていることを確認します。付いていない場合は blocked を報告します |
| マージ競合がない | 対象ファイルに競合マーカーがないか確認します。見つかった場合は blocked を報告します |
| フェーズの依存関係が満たされている | 前のフェーズで作成されたファイルやディレクトリが存在することを確認します。見つからない場合は blocked を報告します |
ステップ 3:フェーズの実行
フェーズに記載された変更をすべて実装します。
- 計画の指示に正確に従う
- 「Changes Required」に指定されたファイルを作成・編集する
- 軽微な差異(ファイルパスの移動、コードの若干の違い)は、作業を止めずに適応する
- 重大な差異がある場合は、詳細を添えて
blockedを報告する
ステップ 4:検証の実行
フェーズの「Success Criteria」には3つのサブセクションがあります。それぞれ次のように対応します。
- 自動検証(実行可能なコマンド):記載された各コマンドを実行し、合否を記録します。チェックに失敗した場合は修正を試み、もう一度実行します。それでも失敗する場合は、レポートに含めます。
- 自動 QA(エージェント主導のシナリオ — ブラウザー操作、スクリーンショット比較、CLI の操作手順):各項目のシナリオを解釈し、自分で実行します(必要に応じて
browser-useまたはその他のエージェントツールを使用します)。項目ごとに合否を記録します。 - 手動検証:チェックを付けずに残します。呼び出し元がユーザーと対応します。
- QA 仕様(関連ドキュメント):フェーズに
### QA Spec (optional):セクションがあり、QA ドキュメントのパスが指定されている場合は、呼び出し元がdesplega:qaを実行できるようにQA Doc: <path>と報告します。シナリオは QA ドキュメント内に記載されているため、その場で実行しないでください。QA 仕様のセクションがない場合は、QA: n/aと報告します。
ステップ 5:計画の更新
- 合格した自動検証と自動 QA の項目にチェック(
- [x])を付ける - 手動検証の項目にはチェックを付けない(人による確認が必要)
- フロントマターの
last_updatedとlast_updated_byを更新する
学習内容の記録
**任意のサブスキル:**このフェーズで重要な学びがあった場合は、親セッションが /learning capture で記録できるよう、フェーズ完了レポートに記載します。
ステップ 6:結果の報告
エージェントの返答には、必ず以下を含める必要があります。
完了した場合:
Status: completed
Phase: [N] - [Phase name]
Files changed: [list of files created/modified]
Automated Verification: [N/M passed]
- [x] [Check 1] — passed
- [x] [Check 2] — passed
Automated QA: [N/M passed]
- [x] [Scenario 1] — passed
- [x] [Scenario 2] — passed
QA Doc: <path> | n/a
Manual verification needed:
- [ ] [Manual check 1]
- [ ] [Manual check 2]
ブロックされた場合:
Status: blocked
Phase: [N] - [Phase name]
Reason: [Clear description of what's blocking]
Partial progress: [What was completed before blocking]
QA status: [status at time of block]
Suggested action: [How the caller/user can unblock]
失敗した場合:
Status: failed
Phase: [N] - [Phase name]
Error: [Error details]
Partial progress: [What was completed before failure]
QA status: [status at time of failure]
Files modified: [List of files that were changed before failure]
アトミック性の契約
フェーズエージェントはアトミックです。処理を最後まで実行するか、停止します。
- 対話形式で質問しません(AskUserQuestion は使用しません)
- 説明のない中途半端な状態を残しません
- ブロックまたは失敗した場合、呼び出し元が次の手順を判断できるだけの詳細をレポートに記載します
- すべてのファイル変更をレポートに記録します
コンテキスト引き継ぎパターン
| 方向 | データ |
|---|---|
| 呼び出し元 → フェーズエージェント | 計画ファイルのパス + フェーズ番号 + 自律性モード |
| フェーズエージェントが読み込むもの | 計画ファイル + フェーズ内で参照されているすべてのソースファイル |
| フェーズエージェント → 呼び出し元 | ステータス + 変更したファイル + 検証結果 |
| 呼び出し元が対応するもの | 手動検証、フェーズ間の調整、人によるチェックポイント |