Skip to content

状態管理 ​

概要 ​

すべてのパイプライン状態は Go MCPサーバー(forge-state)を通じて管理され、47の型付きツールコールを公開しています。状態はワークスペースディレクトリ内の state.json に永続化されます。

ステートマシン ​

state.json の構造 ​

state.json の主要フィールド:

フィールド説明
specNameワークスペース名(例:20260320-fix-auth)
workspace.specs/{specName}/ のフルパス
status現在のステータス:initialized、in_progress、completed、failed、abandoned
currentPhaseアクティブなフェーズID(例:phase-3、checkpoint-a)
effort工数レベル:S、M、L(XSはサポート外)
flowTemplate選択されたテンプレート:light、standard、full
branchGitブランチ名
autoApproveブーリアン、--auto フラグで設定(デフォルト:false)
phasesフェーズレコードの配列(ステータス、タイムスタンプ、ログ)
tasksタスクレコードの配列(実装/レビューステータス)
revisionsアーティファクトごとのリビジョンカウンター
skippedPhasesフローテンプレートによりスキップされたフェーズ(例:["phase-4b", "checkpoint-b", "phase-7"])
phaseLogフェーズメトリクスの配列:{phase, tokens, duration_ms, model, timestamp}

MCPツールカテゴリ ​

Go MCPサーバーは8カテゴリにわたって 47の型付きツールコール を公開しています:

カテゴリツール数説明
ライフサイクル5パイプラインの初期化と進行(init、pipeline_init、pipeline_next_action など)
フェーズ管理6フェーズ遷移(phase_start、phase_complete、checkpoint、abandon など)
リビジョン制御4APPROVE/REVISEサイクル管理(revision_bump、inline_revision_bump など)
設定7ランタイム設定(set_effort、set_auto_approve、set_branch など)
タスク管理2タスクごとの追跡(task_init、task_update)
メトリクス & クエリ9状態クエリ、履歴検索、BM25パターンマッチング
分析3パイプライン統計とコスト予測
バリデーション & ユーティリティ8入力/アーティファクトバリデーション、AST分析、依存グラフ

完全なツールリファレンスは MCPツール を参照してください。

MCPハンドラーガード ​

MCPサーバーは以下のガードを決定論的に強制します(フック経由ではなく):

ガードツール条件
アーティファクト必須phase_complete期待されるアーティファクトファイルが欠落している場合ブロック
チェックポイント必須phase_completeawaiting_human ステータスが設定されていない場合ブロック
フェーズ順序phase_start前のフェーズが完了していない場合ブロック

Released under the MIT License.