war-room-checkpoint について
コマンド内の重要な判断点で可逆性を評価し、War Room による本格的な検討が必要かを判定するスキルです。他のコマンドから呼び出され、エスカレーション不要なら短い推奨を返します。
主な機能
- 015つの観点による可逆性評価
- 02プロファイルに応じた検討モード選択
- 03簡潔な推奨または War Room への移行
- 04構造化されたチェックポイント応答
- 05チェックポイントとセッションの監査記録
活用シーン
- 01課題の実行順序の評価
- 02PR レビューでの相反する指摘への対応
- 03アーキテクチャ判断の評価
- 04変更に検討が必要かの判定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill war-room-checkpointインストール後、Claude Code で/war-room-checkpointを入力して読み込まれたか確認します。
詳細
ウォールーム・チェックポイントスキル
コマンド内の判断ポイントで、ウォールームへのエスカレーションが必要かを判断する軽量なインライン評価です。
検証
リポジトリのルートから make attune-test を実行し、変更後もチェックポイントのロジックが機能することを検証してください。
目的
このスキルはユーザーが直接呼び出すものではありません。他のコマンド(例:/do-issue、/pr-review)によって、重要な判断ポイントで呼び出され、次の処理を行います。
- 現在のコンテキストの可逆性スコア(RS)を算出する
- 本格的なウォールームでの審議が必要かを判断する
- 簡易な推奨(エクスプレス)を返すか、本格的なウォールームにエスカレーションする
コマンドから呼び出すタイミング
| コマンド | トリガー条件 |
|---|---|
/do-issue | 3 件以上のイシュー、依存関係の競合、ファイルの重複 |
/pr-review | ブロッキングイシューが 3 件超、アーキテクチャの変更、ADR 違反 |
/architecture-review | ADR 違反、高い結合度、境界違反 |
/fix-pr | 大規模な変更範囲、レビュアーのフィードバックの競合 |
使用しない場合
| 状況 | 代わりに使用 |
|---|---|
| ユーザーが直接、審議を求めている | Skill(attune:war-room) |
| 判断を容易にやり直せる(RS が高い) | チェックポイントを設けずに進める |
| この判断についてパネルがすでに結論を出している | 先の判定 |
このスキルは、審議が必要かどうかを判断し、不要な場合は迅速に応答します。すべての判断でチェックポイントを設けるコマンドは、ほぼ毎回「そのまま進める」という回答を受け取るためにスコアリングのコストを支払い、すでに決着した判断を再チェックポイントすると、再び議論することになります。
呼び出しパターン
Skill(attune:war-room-checkpoint) with context:
- source_command: "{calling_command}"
- decision_needed: "{human_readable_question}"
- files_affected: [{list_of_files}]
- issues_involved: [{issue_numbers}] (if applicable)
- blocking_items: [{type, description}] (if applicable)
- conflict_description: "{summary}" (if applicable)
- profile: "default" | "startup" | "regulated" | "fast" | "cautious"
チェックポイントのフロー
ステップ 1:コンテキストの分析
提示されたコンテキストを分析し、次の情報を抽出します。
- 変更の範囲(影響を受けるファイル、モジュール、サービス)
- 影響を受ける関係者
- 競合の兆候
- 時間的制約を示す兆候
ステップ 2:可逆性の評価
5 つの次元からなるフレームワークを使用して RS を算出します。
| 次元 | 評価の質問 |
|---|---|
| 元に戻すコスト | この判断を元に戻すのはどれほど難しいですか? |
| 時間的な固定度 | これはすぐに確定しますか? |
| 影響範囲 | 影響を受けるコンポーネントや人はどれくらいいますか? |
| 情報の損失 | 将来の選択肢を狭めますか? |
| 評判への影響 | 外部から見えるものですか? |
各項目を 1~5 で採点し、RS = 合計 / 25 を算出します。
ステップ 3:モードの選択
プロファイルのしきい値を適用してモードを決定します。
if RS <= profile.express_ceiling:
mode = "express"
elif RS <= profile.lightweight_ceiling:
mode = "lightweight"
elif RS <= profile.full_council_ceiling:
mode = "full_council"
else:
mode = "delphi"
ステップ 4:応答の生成
エクスプレスモード(RS <= しきい値)
推奨をただちに返します。
response:
should_escalate: false
selected_mode: "express"
reversibility_score: {rs}
decision_type: "Type 2"
recommendation: "{quick_recommendation}"
rationale: "{brief_explanation}"
confidence: 0.9
requires_user_confirmation: false
エスカレーションモード(RS > しきい値)
本格的なウォールームを呼び出し、結果を返します。
response:
should_escalate: true
selected_mode: "{lightweight|full_council|delphi}"
reversibility_score: {rs}
decision_type: "{Type 1B|1A|1A+}"
war_room_session_id: "{session_id}"
orders: ["{order_1}", "{order_2}"]
rationale: "{war_room_rationale}"
confidence: {calculated_confidence}
requires_user_confirmation: {true_if_confidence_low}
信頼度の算出
エスカレーションする判断では、自動続行の信頼度を算出します。
confidence = 1.0
- 0.10 * dissenting_view_count
- 0.20 if voting_margin < 0.3
- 0.15 if RS > 0.80
- 0.10 if novel_domain
- 0.10 if compound_decision
+ 0.20 if unanimous (cap at 1.0)
requires_user_confirmation = (confidence <= 0.8)
プロファイルのしきい値
| プロファイル | エクスプレス | 軽量 | 全体会議 | 用途 |
|---|---|---|---|---|
| default | 0.40 | 0.60 | 0.80 | バランス型 |
| startup | 0.55 | 0.75 | 0.90 | スピード重視 |
| regulated | 0.25 | 0.45 | 0.65 | コンプライアンス |
| fast | 0.50 | 0.70 | 0.90 | スピード優先 |
| cautious | 0.30 | 0.50 | 0.70 | より慎重な対応 |
コマンド固有の調整
| コマンド | 調整 | 理由 |
|---|---|---|
| do-issue(3 件以上のイシュー) | -0.10 | 複数のイシューがあるとリスクが高まる |
| pr-review(厳格モード) | -0.15 | 厳格モードでは、より厳しい精査が必要 |
| architecture-review | -0.05 | アーキテクチャは本質的に重大な影響を伴う |
出力形式
呼び出し元コマンド向け
呼び出し元コマンドが処理できる構造化レスポンスを返します。
## Checkpoint Response
**Source**: {source_command}
**Decision**: {decision_needed}
### Assessment
- **RS**: {reversibility_score} ({decision_type})
- **Mode**: {selected_mode}
- **Escalated**: {yes|no}
### Recommendation
{recommendation_or_orders}
### Control Flow
- **Confidence**: {confidence}
- **Auto-continue**: {yes|no}
{user_prompt_if_needed}
統合に関する注意事項
呼び出し元コマンドで行うこと
- チェックポイントの応答にある
requires_user_confirmationを確認する - true の場合:確認プロンプトを表示して待機する
- false の場合:
ordersまたはrecommendationに従って続行する - チェックポイントを監査証跡に記録する
失敗時の処理
チェックポイントの呼び出しに失敗した場合:
- コンテキストとともに警告を記録する
- チェックポイントなしでコマンドの実行を続ける
- ユーザーのワークフローをブロックしない
監査証跡
チェックポイントは次の場所に記録されます。
~/.claude/memory-palace/strategeion/checkpoints/{date}/{checkpoint-id}.json
各ファイルには、次の項目を含む CheckpointEntry が記録されます。checkpoint_id、session_id、phase、
action、reversibility_score、dimensions、confidence、files_affected、および
requires_user_confirmation です。
ウォールームセッションが完了し、persist_session() が呼び出されると、次の場所に監査レポートが
自動的に書き込まれます。
~/.claude/memory-palace/strategeion/war-table/{session-id}/audit-report.json
レポートには、セッションのすべてのチェックポイント、専門家パネル、全会一致スコアを含む投票の 概要、エスカレーション履歴、最終決定とその理由、および Merkle-DAG の整合性検証ブロックが まとめられます。検証では、保存された値と照合して各ノードのハッシュを再計算するため、 審議内容への改ざんを検出できます。
プログラムからチェックポイントを照会したりレポートを生成したりするには、
scripts.war_room.audit_trail の AuditTrailManager を使用します。
from scripts.war_room.audit_trail import AuditTrailManager
manager = AuditTrailManager()
checkpoints = manager.get_checkpoints("war-room-20260303-100000")
audited = manager.list_audited_sessions()
例
例 1:RS が低い場合(簡易対応)
入力:
source_command: "do-issue"
decision_needed: "Execution order for issues #101, #102"
issues_involved: [101, 102]
files_affected: ["src/utils/helper.py", "tests/test_helper.py"]
評価:
- 可逆性コスト:1(コミットを取り消せます)
- 時間的制約:1(期限なし)
- 影響範囲:1(単一のユーティリティモジュール)
- 情報損失:1(すべての選択肢を保持)
- 評判への影響:1(内部)
RS:0.20(タイプ 2)
応答:
should_escalate: false
selected_mode: "express"
recommendation: "Execute in parallel - no dependencies detected"
confidence: 0.95
requires_user_confirmation: false
例 2:RS が高い場合(エスカレーション)
入力:
source_command: "pr-review"
decision_needed: "Review verdict for PR #456"
blocking_items:
- {type: "architecture", description: "New service without ADR"}
- {type: "breaking", description: "API contract change"}
- {type: "security", description: "Auth flow modification"}
- {type: "scope", description: "Unrelated payment refactor"}
files_affected: ["src/auth/", "src/api/", "src/payment/", "src/services/new/"]
評価:
- 可逆性コスト:4(複数のサービスに影響)
- 時間的制約:3(PR の期限によるプレッシャー)
- 影響範囲:4(複数のチームに影響)
- 情報損失:3(一部の選択肢が失われつつある)
- 評判への影響:2(内部レビュー)
RS:0.64(タイプ 1A)
応答:
should_escalate: true
selected_mode: "full_council"
war_room_session_id: "war-room-20260125-143025"
orders:
- "Split PR: auth changes separate from payment refactor"
- "Require ADR for new service before merge"
- "API change: add migration path, not blocking"
confidence: 0.75
requires_user_confirmation: true
関連スキル
Skill(attune:war-room)- ウォールームでの完全な審議Skill(attune:war-room)/modules/reversibility-assessment.md- RS フレームワーク
関連コマンド
/attune:war-room- 単独でのウォールーム呼び出し/do-issue- イシューの実装(このチェックポイントを使用)/pr-review- PR レビュー(このチェックポイントを使用)/architecture-review- アーキテクチャレビュー(このチェックポイントを使用)/fix-pr- PR の修正(このチェックポイントを使用)
完了条件
- 必須フィールドをすべて含む構造化されたチェックポイント応答が返されます。必須フィールドは、
reversibility_score(0.0~1.0)、selected_mode(express / lightweight / full_council / delphi)、should_escalate(ブール値)、およびrecommendationまたはordersです。 -
reversibility_scoreがプロファイルのしきい値を超える応答では、should_escalate: trueが設定され、応答を返す前にSkill(attune:war-room)を通じて完全なウォールームが開始されます。 -
confidenceが 0.8 以下の応答では、requires_user_confirmation: trueが設定され、自動で処理を続行するのではなく、 ユーザーに確認プロンプトが表示されます。 - チェックポイントは
~/.claude/memory-palace/strategeion/checkpoints/{date}/{checkpoint-id}.jsonに記録されます。この書き込みに 失敗した場合、呼び出し元のコマンドは処理を続行し、ワークフローを停止する代わりに警告を記録します。