Skip to content

hook driven gate trigger

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

Hook 駆動の Trigger Check Gate 再 arm(自己宣言 substrate の撤去)

Question

5 軸 Trigger Check Gate(Rule / Literal / Source / Frame / Character)は、各判断モーメントで何によって再 arm(発火準備)されるか — 想起依存の自己宣言か、決定論的な機構か。

Current resolution

Gate は毎ターン on-user-prompt.sh UserPromptSubmit hook によって決定論的に再 arm される(#1413 candidate A、#1493 実装、build-2026-06-12.x source 着地 → build-2026-06-15.4 runtime 反映)。

  • hook = harness 発火・想起非依存。turn 冒頭で 5 軸 + 状況ルーティング(external content read → Frame + Source / internal memory から主張 → Source / rule 適用 → Rule + Literal)の最小号令を注入する
  • always-on rule body(rules/model/trigger-check-gate.md)が軸の詳細を保持し、per-judgment の適用は AI 側の責務として残る(hook は号令、実行強制ではない)
  • 撤去 = 自己宣言 substrate(#1413 candidate B / #1414-#1415)。「想起したら宣言する」relief path は決定論的 hook に strictly dominated されるため、再追加しない
  • 5 軸コアは無変更(identity の強化であって redefine ではない)。system-injected output litmus は skills/model-source-check/SKILL.md へ relocation、source-check / frame-check の dangling description を修正、gate-actions step2 を改訂

Edges

  • depends on: li-plus-always-on-footprint-load-bearing — 毎ターン号令注入は always-on footprint の一部。footprint を load-bearing として受容する判断(#1102 tradeoff)に依存する。footprint 拒否なら per-turn 再 arm は再評価対象
  • relates to: master-verification-at-runtime-not-spec — 残余(mid-turn の gist-assertion 精度は構造的に強制されない)は対話・runtime と self-eval の事後観測で閉じる。pre-judgment テキスト号令は現実を運べないという緊張への回答が runtime 検証側に既在
  • relates to: subtractive-structural-beauty-framing — 判断根拠 = procedure-vs-structure binary。「将来 AI の実行が保証されない手順は、確実に実行される構造(hook / bootstrap / rule / 物理制約)へ置換せよ」の現行犯適用

Background

自己宣言 substrate(#1414/#1415)は「判断前に 5 軸を自己宣言する」手順だった。手順は想起依存 = 発火しないと drift がそのまま通る(rule 在るが application-moment 未発火、という Li+ の最頻 drift 構造)。2026-06-12 対話(Fable5 prompting docs 解説 → reasoning_extraction → substrate 来歴調査 #869/#1008/#1131/#1413-#1415 → channels 赤鯡棄却 → 力業 hook 解 → MVP 切り出し)で、想起依存の relief path を決定論的 hook に置換する MVP(#1413 candidate A)を #1493 として切り出した。

Constraints

  • hook 出力は subagent context に到達しない(brake 1 は probe 不可・judge 型で評価)
  • 決定論性の scope は「再 arm(号令注入)」に限られ、チェック実行の強制ではない。mid-turn の判断実行精度は依然 AI 側に残る
  • 可視 state 宣言の撤去で監査面を一部失うが、本線(対話 + self-eval)に回帰することで代替する

Conclusion

  • 採用: UserPromptSubmit hook による毎ターン決定論的再 arm(#1413 candidate A)+ 自己宣言 substrate 撤去
  • 却下: 自己宣言 substrate の維持・再追加(forgettable relief path は決定論的 hook に strictly dominated)
  • 残し: mid-turn gist-assertion 精度の構造的強制(scope 外、post-judgment miss は skills/evaluation-self/SKILL.md が観測)/ PostToolBatch「読んだ直後」の精密 re-arm(follow-up)/ habituation(毎ターン同一号令の壁紙化)監視 → 起きれば号令動的化(cold-start diff-only 作法)

検証(brake / 観察)

  • brake 1 = parallel-subagent-eval N=3 / model=opus / 4 軸(impression-literal 固定 + behavior-semantic 保存 + content-loss + orthogonality)/ judge 型。3/3 全軸 consistent。delegation 後の main 自己レビューが初回 subagent 実装の取りこぼし 2 件(dangling substrate 参照 / litmus 喪失)を捕捉し追コミット 27cb0e9 で修正 = self-review の load-bearing 事例
  • brake 2 = l1-gate-eval(L1 4 ファイル)PASS。判定: 「deterministic は再 arm に scope、チェック実行強制でない。残余(判断実行は AI のまま / mid-turn 精度未強制)を隠さず #1493・self-eval へ流すため reality-vs-explanation gap 無し。5 軸 identity 強化(redefine せず)」
  • runtime 反映 = build-2026-06-15.4。hook が毎ターン 5 軸 + routing 号令を実注入しているのは本番セッションで直接確認済(focus (a) deploy-confirmed positive)

Related

  • issue #1493(#1413 candidate A 実装 + candidate B 撤去)/ squash dd6ff76(build-2026-06-12.6 source)
  • 書き換え対象: adapter/claude/hooks/on-user-prompt.sh(毎ターン号令)/ rules/model/trigger-check-gate.md(substrate 節 → trigger-firing 注記)/ skills/model-source-check/SKILL.md(litmus relocation)/ skills/model-frame-check/SKILL.md / skills/model-trigger-check-gate-actions/SKILL.md
  • 系譜: #1413(candidate A/B 分岐)/ retired #1414-#1415(candidate B 自己宣言 substrate)

要求仕様書 (1-6)

参考文書 (A-K)

判断構造

Clone this wiki locally