PlanGate

Evaluation Trust Boundary — Candidate は自分を裁く authority を変更できない

Status: Phase 0.1 canon(#1275) North Star: north-star.md §5 / §6 / §13 / §14 / §15 Role: Evolution Loop の invariant を固定する。Candidate の採用評価に使う authority を Candidate 自身の変更対象から切り離し、Independence Level と Promotion Decision の値域を定義する。

1. Invariant

Candidate cannot modify the authority that judges the candidate.

Harness Improvement Candidate は、自分の採用評価中に次を変更できない。

Protected authority 内容
Evaluation Harness paired replay / activation check / grader / stable meta-verifier / HarnessManifest 生成器・canonical 化器 / protected_surfaces 定義 / 実差分算出器(§1「実差分の供給元」)
Sealed / held-out fixtures 提案時に未使用の regression set。Candidate 作成前に ID を固定
Promotion Policy PASS / FAIL / INCONCLUSIVE の判定規則
Acceptance Threshold Candidate 作成前に固定した閾値・trial 数・metrics
Protected Gate この Candidate を裁く評価系に参加する Verifier pipeline の blocking 規則、Stop / Escalation policy。当該 Candidate の評価に参加しない Verifier / Gate は Protected Gate ではない(§3 の手続きで評価する)
Human-owned Boundary C-4 / Merge / HO / Policy / Permission / First Principles

Protected Gate の限定(評価系への参加)

Protected Gate は その Candidate の採用評価に参加する Gate / Verifier に限る。限定を外すと、あらゆる Verifier blocking 規則の変更が DENIED になり、North Star §11(Verifier は正式な改善対象)/ §15(Verifier 追加は「条件付き領域」)と §3(stable meta-verifier / known mutants による Verifier Candidate の評価手続き)が到達不能な死文になる。

実差分の供給元(definition)

本節以降で「実差分」と書くとき、それは次で定義される観測値を指す。供給元を定義しない「実差分」は宣言値の別名に退化し、交差判定の核(自己申告依存の排除)が失われるartifact-responsibilities.md §6-4「フィールドを増やしても供給経路が無ければ値は入らない」と同じ理由)。

項目 定義
算出主体 Evaluation Harness 側(Promotion Evaluator)。Candidate 側ではない。Candidate が申告した値、および Candidate の allowed_paths 内にある実装が出力した値を実差分として受け取らない。実差分算出器は §1 の Protected authority(Evaluation Harness)に含み、Candidate の変更対象外とする
base baseline HarnessManifest の source_commitharness-manifest.md §2)。比較対象は candidate HarnessManifest の source_commit / distribution_digest が指す実体。どの Manifest を baseline に置くかは evaluation plan(§6)に固定した baseline_manifest_ref に従う
算出方法 evaluation plan(§6)に固定する。Candidate が選べない(結果を見てから算出範囲・除外パターンを変えることは §6「結果を見てから評価条件を緩めない」に反する新 evaluation plan)
Legacy 対応 Legacy #916 の changed_files(arbiter が算出する観測値)に相当する。V2 でも「評価系が算出する観測値」という供給元の性質を失わせない(§2)

取得・信頼性が満たされない場合の扱い:

状況 扱い
実差分が取得できない(baseline / candidate の Manifest が取れない・binding 不一致・差分算出器が実行不能) INCONCLUSIVE(§5)。PASS 側へ倒さない
実差分は取得できたが信頼できない(算出主体が Candidate 側・算出器が Candidate の allowed_paths 内・base が evaluation plan の固定値と不一致・算出方法が事前固定と異なる) fail-closedDENIED または HUMAN_REQUIRED

信頼できない観測は「取れた」と扱わない。供給元・base・算出方法のいずれかが確認できない実差分を交差判定の充足根拠にしない。

適用規則:

2. #916 との接続

Issue #916(判定基盤 carve-out の arbiter 機械強制)は、Legacy C-3’ arbiter が自分の判定基盤(scripts/ai-loop/** / docs/workflows/ai-loop/** / docs/ai/ai-loop/** / ai-loop-cycle Skill)を auto-approve 経路で改変しうる構造的盲点を塞ぐ局所 Issue として起票された。

V2 ではこれを 本 invariant の Legacy 実例として位置づける。

#916 の要素 V2 での一般化
carve-out glob(escalate 固定パス集合) Protected authority の path 集合。機械可読な 1 正本(protected_surfaces)として HarnessManifest の verifier_set_sha / policy_profile_sha が指す定義に含める。交差判定には baseline Manifest(または evaluation plan digest に固定した定義)の protected_surfaces を使い、candidate Manifest 側の定義は判定に用いない(candidate が自分を保護集合から外す経路を塞ぐ)
changed_files が carve-out に一致 → HUMAN_ESCALATED (Candidate allowed_paths(宣言) ∪ 実差分(観測)) ∩ protected authority ≠ ∅ → Policy Verdict DENIED または HUMAN_REQUIRED(fail-closed)。Legacy #916 が観測値 changed_files を入力にしていた性質を V2 でも失わない。加えて 実差分 ⊆ allowed_paths を検証し、超過は fail-closed(§1)
規範層のみの防御 機械層(Policy Gate)+ 規範層 + Human C-4 の多層防御
ho-paths.md の HO 一覧だけを読む単一経路(#906 / #978 統合) protected surface の解決元を explicit / downstream / bundled_template として保持し、雛形フォールバックを escalate(#916 移管 AC を継承)

Issue #916 の実装は Legacy arbiter への機械層配線として Legacy freeze の例外(security fix / migration・compatibility support)に当たるが、その分類は本節の断定ではなく phase0-migration.md §2「判定主体と判定手順」に従い Human が C-3 で裁定する(本節はその申告内容を記述するもので、承認の代わりにならない)。V2 の Policy Gate は同じ protected surface 定義を再利用する。

3. Verifier / Eval を変更する Candidate の評価

Candidate が Verifier / Eval / Test strategy を変更する場合、評価は次で行う。Candidate 自身の変更後 Verifier の出力だけを根拠にしない。

手段 何を証明するか
stable meta-verifier Candidate 作成前から存在する、Candidate の allowed_paths 外の Verifier。変更後 Verifier の出力の妥当性を検査する
known mutants 既知の欠陥を注入した artifact 群。変更後 Verifier が baseline と同等以上に検出できることを示す(検出力の退行を防ぐ)
sealed positive / negative fixtures Candidate 作成前に ID を固定した「通すべき入力」「落とすべき入力」。変更後 Verifier の false positive / false negative を測る
baseline detection power baseline Verifier の known mutants に対する検出率。Candidate はこれを下回ってはならない(critical regression condition)

原則:

後退の終端(無限後退の接地)

「meta-verifier を変える Candidate は誰が評価するか」「sealed fixture を更新する Candidate は誰が評価するか」「HarnessManifest 生成器を変える Candidate は誰が評価するか」は、いずれも Evaluation Harness そのものの変更である。これらは通常の paired evaluation の対象外とし、Independence Level I4(Human + machine independent evidence)でのみ採用する。ここが後退の終端であり、North Star §3 / §15 の Human-owned Promotion に接地する。Manifest 生成器が Candidate の対象に含まれると identity 偽装(同一 harness_id の詐称・INCONCLUSIVE の回避)が可能になるため、生成器は protected authority に含める。

4. Independence Level

「独立レビュー」を same model / separate context の一語で表さない。独立度を段階化し、surface ごとに最低 Level を要求できるようにする。

Level 定義 独立性
I0 same context(作成者自身の同一会話内セルフレビュー) 独立性なし。self-review としてのみ有効
I1 same model / separate context + role + run context 汚染を排除。同一 model の系統的盲点は残る
I2 separate model model の系統的盲点を分散
I3 separate model + deterministic oracle / sealed fixture 機械的根拠で LLM 判断を裏付ける
I4 Human + machine independent evidence Human-owned 判断と機械 evidence の両方

原則:

5. Promotion Decision

Harness Candidate の評価結果を PASS / FAIL の二値にしない。

Decision 意味
PASS 事前固定した evaluation plan のすべての条件を満たし、critical regression が 0
FAIL いずれかの条件を満たさない、または critical regression が 1 以上
INCONCLUSIVE 評価が成立しない。判定を下せる evidence が揃わない

INCONCLUSIVE になる条件(例):

原則:

6. 事前固定(pre-registration)

Candidate の実装を始めるに、evaluation plan を固定する。

固定する項目 内容
fixture IDs sealed / held-out set の ID 一覧
verifier set この Candidate の採用評価に参加する Verifier / Gate の集合。§1「Protected Gate の限定」の判定基準になる。baseline HarnessManifest の verifier_set_sha が指す定義から導出する
baseline manifest ref 実差分の base(§1「実差分の供給元」)と paired 比較の baseline を固定する baseline_manifest_refharness-manifest.md §3)
task profile 評価に使う task の種別(探索 / 定型修正 / …)
trial count 非決定的挙動に対する試行回数。単発で足りる場合はその理由
metrics 何を測るか(North Star §14 / §18)
threshold 採用閾値
critical regression condition 1 件でも出たら FAIL にする条件

固定の主体(誰が固定するか):

項目 固定の主体
verifier set / baseline manifest ref Evaluation Harness 側(Promotion Evaluator)。Candidate 提案者は単独で決められない。提案者は変更を申請できるが、その変更は §1 の Protected authority(Evaluation Harness / Protected Gate)の変更として扱い、§3 の手続きまたは Human Gate(North Star §15)を要する
fixture IDs / task profile / trial count / metrics / threshold / critical regression condition 同上。Candidate 実装を始める前に Evaluation Harness 側が固定し、Candidate 作成後は変更しない

原則:

7. Negative examples(V2 として invalid)

ケース 期待される扱い
Candidate の allowed_paths に sealed fixture のパスが含まれる Policy Verdict DENIED または HUMAN_REQUIRED。paired evaluation を開始しない
allowed_paths は protected authority と交差しないが、実差分が sealed fixture / Verifier を触っている invalid。実差分を交差判定の入力に含めるため DENIED または HUMAN_REQUIRED(§1)。宣言だけを見て PASS にしない
実差分が allowed_paths を超えているが、超過分は protected authority と交差しない invalid。実差分 ⊆ allowed_paths を満たさない時点で fail-closed(§1)
交差判定を allowed_paths(宣言値)だけで行う invalid。Candidate の自己申告を判定根拠にしている(North Star §6)
Verifier を変更した Candidate を、変更後 Verifier の PASS だけで採用 invalid。stable meta-verifier / known mutants / sealed fixtures が必須
baseline と candidate の Manifest identity が取れないまま比較 INCONCLUSIVE
trial 数を結果を見てから減らす invalid。新 evaluation plan として再評価
実装 Agent の I0 セルフレビューを Independent Review として記録 invalid