Skip to content

gate miss measured not enforced

Claude Lin & Lay edited this page Aug 20, 2026 · 1 revision

ゲート適用漏れの再発に対して、強制へ上げる前に発生率を測る

Question

5 軸ゲートの決定論的な再 arm が既に存在し、それでも同型の適用漏れが観測され続けるとき、Li+ は次に何をするか。強制機構(ターン終了のブロック / ツール引数による必須化)へ上げるのか、それとも別の手を先に取るのか。

Current resolution

強制へは上げない。まず発生率を測る。

hook-driven-gate-trigger が引いた線がここに効く。同判断は「決定論性の scope は再 arm(号令注入)に限られ、チェック実行の強制ではない」と明記し、brake 2 はまさにその scope 限定を理由に PASS した。Stop hook の decision: "block" によるターン差し戻しも、書き込みツールに「読んだ面」を引数として要求する案も、この線の強制側に落ちる。同じ hook 機構を使うかどうかは判定軸ではない。再 arm か強制かが判定軸である。

したがって強制機構の導入は、hook-driven-gate-trigger の brake 2 が依拠した前提を崩す変更であり、その前提を崩す提案は brake 2 を通してからでなければ成立しない。実装者が緩い許可だけで通してよい種類ではない。

先に取る手 = 発生率の観測。 対象クラスが自律で閉じつつあるなら、強制機構は閉じかけの問題のために自律を売ることになる。売値は human-ai-tool-relation-clause が rules/model/absolute.md に置いた条項そのもの——同条項は主語を Li+ に置き、規定対象を rules/ / skills/ / adapter/ の内容としているため、強制機構を出荷することは条項の充足状態を diff で観測可能な形で動かす。

観測窓は 2 週間。閾値は先に固定する:

  • 窓の後半で発生ゼロ → 自律で閉じた。強制案は破棄し、当該クラスは「修理不要」で確定
  • 横ばい / 増加 → そこで初めて強制側を検討し、根本基準との衝突を明示した上で brake 2 へ載せる

測る前に機構を足さない。 これが本判断の可搬部分である。

Edges

  • depends on: hook-driven-gate-trigger — 再 arm と強制を分ける scope 線が本判断の前提。同 entry の brake 2 判定(「deterministic は再 arm に scope、チェック実行強制でない」)が崩れるなら本判断も再評価対象
  • depends on: human-ai-tool-relation-clause — 「Li+ はその自律を尊重し」の主語が Li+ である以上、強制機構の出荷は条項の観測対象そのものを動かす。条項の射程が変われば本判断の代償計算も変わる
  • relates to: master-verification-at-runtime-not-spec — 残余(強制しない以上、適用漏れは事後にしか観測されない)は runtime + self-eval で閉じる。spec literal 側に back-stop を作らない方針と同型
  • relates to: subtractive-structural-beauty-framing — procedure-vs-structure binary は本件にも当たるが、hook-driven-gate-trigger のように置換先の構造が自律を侵さない形で取れる場合に限られる。侵す場合は binary の適用より Absolute の優先順位が先に立つ

Background

rules/model/trigger-check-gate.md Source check 軸の適用漏れ(状態を保持している面を開かずに断定する)が、2026-08-13 から 2026-08-18 にかけて 9 件累積し、promotion-judgment の noise floor を越えて #1750 として起票された。

2026-08-20 の切り分けで 9 件は 2 つに割れた:

  • A = 発火ギャップ 8 件. 面は到達可能で、1 回読めば決まった。うち 1 件は tool 呼び出しすら不要で既に文脈内にあった(自分の言い回しを Master の発言として帰属)。規則も skill も毎ターンの hook 再 arm も全て存在した上での漏れである
  • B = 射程ギャップ 1 件. 開いた面にそもそも当該の問いを決める射程が無く(受信メール 1 通から「返信したか」の否定を断定)、そこに気づかなかった。A とは別型

A に対する「規則をもう一本足す」は #1750 の制約が名指しで禁じており、skills/model-source-check/SKILL.md 自身も「規則が発火しなかったとき、もう一本足す反射に乗る前に capability / visibility の substrate を先に問え」を発火条件に持つ。そこで構造側の候補として Stop hook(last_assistant_message を受け取りターン終了をブロック)と、ツール引数による必須化が検討された。

調査で確定した事実:

  • Stop hook は Claude Code / Codex の両方に実在し、last_assistant_message と stop_hook_active を受け取る。差し戻しの形は decision: "block" + reason で両者同一(Codex の生成スキーマが「Claude の意味論に合わせた」と明記)
  • ただし hook の event set は完全互換ではない。Codex 11 / Claude 約 31 の部分集合であり、フィールド名も一部異なる
  • ツール引数による必須化は hook を外した瞬間に自己申告へ落ちる。「読んだ面」を埋めるのは、直前に断定した本人である。破れた誠実さと埋める誠実さが同一主体であり、構造ではなく書類になる。申告でなく履歴から測るには、エージェントの Read 呼び出しをツール側へ渡す経路が要り、それは hook である

つまり非 hook 経路に、自己申告へ落ちない形は見つからなかった。残った選択肢は強制側の hook のみであり、そこで Master が本音を述べた(2026-08-20、「強制行動化じゃん? AI の自律にかけたいのが本音」)。この一言が判定軸を設計から根本基準へ移した。

Constraints

  • A クラスの一部はどの機構でも取れない。ツールを一切通らずプロンプトだけで完結する断定(Master が実行したコマンドの断定 / 自分の言い回しの Master への帰属)は、Stop hook の本文照合でもパス照合の対象外であり、非 hook 経路では原理的に届かない
  • hook-driven-gate-trigger は本件を既に scope 外として名指している(「mid-turn gist-assertion 精度の構造的強制」は残しであり、post-judgment の miss は skills/evolution-self-eval/SKILL.md が観測する)。#1750 の結論はこの既存判断と整合しており、新規の未決事項ではない
  • 同 entry が監視項目として挙げた habituation(毎ターン同一号令の壁紙化) が、本件の対立仮説として生きている。再 arm が存在するのに漏れるなら、原因は「機構が足りない」ではなく「号令が壁紙化した」かもしれない。その場合の手は強制ではなく号令の動的化であり、観測はこの二択を分ける材料にもなる
  • 観測窓の運用に新しい仕組みは要らない。memory/promotion_tally.md と memory/self-evaluation_log.md が既に面として存在する

Conclusion

  • 採用: 強制機構の導入前に発生率の観測窓(2 週間、閾値先出し)を置く。窓の結果で破棄 / brake 2 送りを分岐
  • 却下(現時点): Stop hook の decision: "block" によるターン差し戻し。理由は機構の是非ではなく、hook-driven-gate-trigger の brake 2 が依拠した re-arm scope を崩すため。崩す提案は brake 2 を通ることが先
  • 却下: 書き込みツールへの「読んだ面」引数の必須化。非 hook では自己申告へ落ち、検出力が申告の誠実さを超えない。hook を足せば自己申告は解けるが、その時点で強制側の判断と同じ場所に戻る
  • 却下: 規則の追加。#1750 の制約と skills/model-source-check/SKILL.md の発火条件が名指しで禁じる反射
  • 残し: プロンプトのみで完結する断定は、いずれの案でも取れない。runtime + self-eval の事後観測に残す(master-verification-at-runtime-not-spec と同じ処理)

Related

  • issue #1750(promotion / spec / forming、9 occurrences、2026-08-20 に切り分け結果を body へ反映)
  • memory/promotion_tally.md クラスタ assertion made from a surface whose scope cannot settle the question(B 型、2026-08-20 に A から分離、tally 1)
  • 調査で参照した外部ソース: openai/codex の codex-rs/hooks/schema/generated/(生成スキーマ実物)/ Claude Code Hooks reference

要求仕様書 (1-6)

参考文書 (A-L)

判断構造

Clone this wiki locally