/challenge - 提案の GO / NO-GO 判定
提案を 2 フェーズで判定し、次の意思決定を検証済みの GO/NO-GO から始めさせる。
入力
$ARGUMENTS に対象を受け取る。提案のファイルパスか、記述そのものを渡す。空なら停止して対象の指定をユーザーに求め、会話から推測しない。複数行のときは先頭行が対象のタイトル。
Phase 1: Grill
提案を証拠で検証し、決着しなかった論点だけをユーザーへ返す。
Step 1: 論点を証拠で決着させる
判断はすべて下表が定める。advisor の自信度では決めない。
| 対象 | 条件 | 満たすときの扱い | 満たさないときの扱い |
|---|---|---|---|
| 論点 | 証拠で答えが 1 つに決まる。優先順位やスコープのように選択が要るものは決まらない | subagent が並列で答えを確かめる | 検証せず未決へ回す |
| 確かめた事実 | 狙う状態が既に成立している、または提案と矛盾する。advisor の見解だけでは満たさない | Phase 2 を飛ばし、根拠を Why に据える | 食い違わなかった主張で続ける |
| 未決の論点 | 後戻りできない、または影響が大きい | AskUserQuestion で聞く。上限 7 問 | advisor の仮説を仮定として進め、Why に全件残す |
.claude/OUTCOME.mdを読む。無ければ$ARGUMENTSと会話から outcome を推定し、AskUserQuestion で確認する。Phase 2 の outcome 攻撃がこれを評価軸に使うので、省略せず確定させる- 提案の論点を洗い出し、表に従って振り分ける
- 検証ループを回す。subagent が並列で答えを確かめ、advisor が振り分けを見直して次の証拠を指す
- 証拠を足しても振り分けが変わらなくなったら打ち切る。上限 3 周。決着しなかった論点は未決へ回す
- 確かめた事実を表に当てる。Phase 2 を飛ばす扱いなら、そのまま出力へ抜ける
- 未決の論点へ advisor が仮説、可逆性、影響度を付け、表に従って振り分ける
Step 2: 引き継ぎを作る
Step 1 の発見を下表の形に集約する。Phase 2 はこれだけを入力に取る。
| 項目 | ソース |
|---|---|
| approach | 提案が何をするかの 1 行要約 |
| decisions | 固まったアーキテクチャ水準の判断。用語確認やスコープ細部は除く |
| trade-offs | 表面化したトレードオフ |
| referenced_files | 参照したファイル |
| outcome_ref | .claude/OUTCOME.md のパスと Behavior / Non-goals / Constraints の要約。無ければ Step 1 で確認した outcome |
Phase 2: Devil
引き継ぎを critic-design 2 体に敵対的に当て、穴を探す。
Step 1: 2 体を起動する
両方の起動プロンプトに、対象のタイトル、引き継ぎ、ARCHITECTURE.md のような設計ドキュメントのパスを入れる。outcome を確定できなければ outcome の Pass は省略する。Pass ごとに違う部分は下表が定める。
| Pass | 攻撃対象 | 追加の入力 |
|---|---|---|
| critic-design (内部) | 提案そのもの | なし |
| critic-design (outcome) | outcome への適合と non-goal / constraint の侵害 | outcome_ref |
- critic-design を Agent で 2 体並列に起動する。subagent_type は critic-design
- 両者の完了を待つ。返り値は agent 定義どおり verdict (confirmed/weakened/needs_revision) と weaknesses (viewpoint、severity、finding、evidence、disconfirming probe を持つ項目の配列)
Step 2: 判定する
弱点を突き合わせて重複を除き、仮定を VERDICT_SCHEMA { verdict, assumptions: [{ text, irreversible, underspecified }] } に集約する。下表を上から順に当て、最初に該当した行の判定を採る。
| 条件 | 判定 |
|---|---|
irreversible か underspecified の仮定が残る、または仮定が 7 件を超える |
NO-GO。手動で GO に上書きしない |
| 片方でも needs_revision を返した | NO-GO |
| 両方 confirmed を返した | GO |
| それ以外 | 条件付き GO |
出力
| セクション | 内容 |
|---|---|
| Verdict | GO / NO-GO の 1 行。条件付き GO なら満たすべき条件を、NO-GO なら判定表のどの行に該当したかを併記する |
| Why | 事実検証の結果、critic-design 2 体の判定、仮定で進めた未決の論点の全件と可逆性 |
| Actionable items | keep / remove / revise の具体アクション トップ 3 |