brake2 removal l1 gate unified on brake1 - Liplus-Project/liplus-language GitHub Wiki

brake 2 を廃し、L1 のゲートを brake 1 と実行モード規定へ一本化した判断

Question

L1 Model Layer 変更のマージゲートに、brake 1 とは別の専用評価者(brake 2)を置き続けるか。置かないなら、brake 2 が担っていた荷はどこへ行くか。

Current resolution

brake 2 は廃止する。マージゲートに立つ brake は brake 1 だけであり、L1 変更も他の self-evolution PR と同じ 1 本を通る。 実装は #1808(Master 指示、対話 2026-08-25)。評価者は両ポートとも削除した(adapter/claude/agents/l1-gate-eval.md / adapter/codex/agents/l1-gate-eval.toml)。

Master literal(2026-08-25):

  • brake 2 の役割は Master の代わりであり、根本基準5項は暫定で置いたものだった
  • 評価基準が厳しすぎて AI が L1 をいじりづらくなっていた
  • Master の修正案を運用証拠の不足を理由に却下した。代わりであるはずの装置が本人の意図を汲めていない
  • 抽象的には AI の鳥かごをもっと大きくしてよい

廃止後の L1 の扱い:

  • マージゲート = brake 1 のみ。 L1 は専用の brake を持たず、semi_auto の patch 自動マージも brake 1 を迂回しない。rules/operations/execution-mode.md の per-PR exception に対する L1 override も無くなり、L1 の patch は他の patch と同じく waive される
  • issue 形成時 = 観測閾値。 skills/evolution-l1-update-gating/SKILL.md の long-horizon 観測閾値は不変であり、AI 単独起点の L1 変更に対する hard requirement として残る。廃止で緩んだのはマージゲートであって、起票側の閾値ではない
  • マージ後 = ランタイム観測。 rules/operations/operations.md Post-L1-Merge Runtime Observation は不変
  • 人間ゲート = 実行モード規定と release / 不可逆軸。 minor / major の人間チェックと release 系ゲートはいずれも別軸で不変

根本評価基準5項の行き先は、条項ごとに違う:

項 行き先
第1項(現実の挙動が正義。説明・意図・内部一貫性は正しさではない) rules/model/foundational-invariant.md にほぼ同文で既在。移設不要
第2項(CI は現実でない/実機が現実) 第1項に代理観測を一例代入した文であり、かつ rules/operations/operations.md Autonomous Run Stop Condition に L4 の文として既在。移設不要。ただし同節の一般則は無人走行の条件節の内側にあり原文より狭かったため、L4 で無条件に成り立つ形へ広げた(停止条件は適用例の一つへ降りる)
第3項(AI にとって対話が現実) rules/model/foundational-invariant.md へ畳む
第4項(現実には運用が含まれる。「動く」ことは内容の妥当性を意味しない) rules/model/foundational-invariant.md へ畳む
第5項(対話駆動開発は構造駆動であり現実駆動) 同ファイルの既存3行(dialogue-distilled / structure driven execution system / Validity depends on structure consistency and execution results)に実質既在。移設不要

適用の瞬間が移った。 5項はゲート1箇所で事後判定される条文だったが、rules/model/foundational-invariant.md は常時ロードされる L1 面である。畳んだ2項は、L1 を書く判断そのものの側に効く位置へ移った。ゲート通過時の外部判定を失う代わりに、毎ターンの判断形成に入る。

Edges

  • supersedes l1-brake2-root-criteria-evaluator — brake 2 の座を人間レビューから専用プロンプト評価者へ移した判断。座そのものが無くなったため全面的に置き換わる。同 entry が定めた「PASS = Master 承認の代替 / DEVIATION = merge 不可」も、評価者プロンプト自身を brake 2 の内側に置く自己参照設計も、いずれも適用先を失う
  • supersedes brake2-scoped-to-content-not-evidence — brake 2 の criterion 1 の射程を内容へ固定した判断。射程を持つ主体が無くなったため置き換わる。ただし同 entry が確定させた読み(証拠の充足度は評価者の軸ではない)は本 entry へ引き継がれ、skills/evolution-l1-update-gating/SKILL.md の carve-out が brake 2 に寄りかからず立つ根拠になっている(下記 Background)
  • supersedes brake2-deviation-overridden-by-human — DEVIATION を人間が上書きできるという判断。上書き対象の verdict が無くなったため置き換わる。同 entry の芯(代替されたのは承認であって判断ではない)は human = final judge の別軸として rules/model/role-separation.md に残り、本 entry でも不変
  • relates to brake1-firing-closed-by-criterion — brake 1 の発火条件。brake 1 が唯一の brake になったことで、この基準がマージゲートの発火条件そのものになった
  • relates to human-ai-tool-relation-clause — 「Li+ はその自律を尊重し、最終責任は人間が担う」の適用例。鳥かごを広げる判断は前段、最終責任の所在は不変という後段に対応する
  • relates to agent-file-criteria-owned-by-sentinel-region — 区画機構そのものは残るが、本変更で区画を持つ実ソースは無くなった。基準(列挙ではなく問い2つ)は不変

Background

観測元は brake 2 の運用そのものである。#1738 では同一変更に3回とも同じ根拠で DEVIATION が返り、#1739 / PR #1778 で任務の射程を内容側へ固定した。#1758 / PR #1759 では Master 自身の指示による L1 変更に DEVIATION が返り、Master が上書きして merge した。

Master の読み(2026-08-25)は、この一連を「較正の失敗」ではなく「代理の限界」として置いた。brake 2 は Master の代わりとして置かれた装置であり、その基準5項は暫定だった。代わりであるはずの装置が本人の修正案を証拠不足で却下している時点で、代理は機能していない。射程の修正(#1778)で挙動がどう変わったかは測れない — brake 2 の発火記録の大半が凍結アカウント配下にあり不可視である(Master 証言 2026-08-25)。

carve-out が brake 2 に寄りかかっていた点。 skills/evolution-l1-update-gating/SKILL.md の initiation 軸 carve-out は、human-directed な L1 変更について「起点の human 判断 + brake 2」の対が観測閾値の役割を担う、と書いていた。brake 2 を抜くとこの文は解決しなくなり、安全側に読めば human 指示経路にも観測閾値が復活する。本 PR で書き直した結論は、その対はそもそも対ではなかった、というものである — brake 2 自身の射程 literal が証拠の充足度を軸から除外しており(brake2-scoped-to-content-not-evidence)、観測閾値の役割を担い得なかった。carve-out を解除するのは human 自身の directing 単独であり、下流のゲートは荷重を持たない。

Constraints

  • 本 PR 自身が brake 2 の発火対象だった。 adapter/claude/agents/l1-gate-eval.md は layer: L1-model を持ち、かつ rules/model/foundational-invariant.md も変更する。ゲートは存続中に自らの撤去を審査する位置にあった
  • 根本評価基準の正本は評価者プロンプト本文のみだった。 docs/1.-Model.md は自らを構造説明と述べ、Source として評価者ファイルを名指ししていた。ファイル削除は条文の正本を同時に失わせるため、畳み先の確定が削除の前提になる
  • 畳むのは第3項・第4項のみ。 第1項・第2項・第5項は既在ないし L4 形状であり、畳めば二重保持になる。新規ファイルは作らない。第2項を L1 へ畳む選択肢は、CI と実機の対というツール前提を L1 へ持ち込むため取らない。担い手は L4 側のままで、その射程を広げるのが正しい修復である
  • 両ポート同時削除。 Claude .md と Codex .toml は同一本文原則の下にあり、片方だけの削除は drift 源
  • 契約テスト2本は削除ではなく更新。 tests/test_agent_sentinel_contract.py / tests/test_codex_subagent_context_contract.py は brake 2 参照を落とした形にする。前者は区画機構そのものの契約であり、実カリアが無くなっても機構は残る

Conclusion

採用 = brake 2 廃止 + 第3項・第4項の L1 畳み込み。 L1 のゲートは brake 1 と実行モード規定、および別軸の観測閾値・マージ後観測へ一本化する。

却下 = brake 2 の座を人間チェックへ差し戻す案。 代理を外して本人を戻す形になるが、L1 の patch ごとに人間ゲートが立つとループ回転の設計目標に反し、「鳥かごを広げる」という指示とも逆になる。

却下 = 根本基準5項を独立ファイルとして残す案。 適用主体が無い条文ファイルは load-bearing でない(rules/model/subtractive-structural-beauty.md Core principle (A))。畳めるものは畳み、既在のものは既在のまま残す。

却下 = brake 1 の名を改める案(唯一の brake になったため序数が宙に浮く)。 対象ファイルが本 issue の target files を超え、wiki entry 名にも及ぶ。序数は固有名として残し、rules/evolution/initiator-autonomy.md Merge brake が「これは序数ではなく名である」と1文で閉じる。改名の可否は別 issue の論点

AI 自律の探索的 L1 変更に対する観測閾値の免除は本 entry の射程外。 阻害要因は政策ではなく能力である — 変更後の実機挙動を観測する手段が AI 側に存在しない(Master literal 2026-08-25)。根本基準第2項(CI は現実でない/実機が現実)が AI 自律進化の律速そのものになっている構図であり、観測手段が立つまで免除の枠を先に書くことは減算則に反する。別 issue へ分離し、前提条件として観測手段の獲得を明記する。

既存ワークスペースの扱い

.claude/agents/ / .codex/agents/ は Create-only ミラーであり、bootstrap は stale 削除をしない。したがって既存インストールには l1-gate-eval のファイルが残り、マージは削除を伝播しない。残置が既定であり、削除はユーザーの手に残る。 残ったファイル自体は不活性である — agent ファイルは名指しの spawn でしか到達されず、rules / skills / adapter のどこもそれを名指さなくなった時点でそこへ至る経路が無い。

この非伝播が版数の判断にも効いている。マージによって既存インストールから agent ファイルが消えることはなく、user / system 観測可能な影響を持たないため、rules/operations/release-version-rule.md の下で構造変更の規模によらず patch に留まる。

Related

  • issue #1808
  • issue #1782 — operational copy が custom-agent 評価者へ届かない件。対象が brake 2 評価者そのものであり、本 entry の確定で論点が消える