Skip to content

spec(model): state asserted without reading the surface that holds it #1750

Description

@smileygames

目的

状態を保持している面を開かずに、その状態を断定する。同型の観測が蓄積し noise floor を越えたものとして起票した。

occurrences: 9 / 起票時 6 → 2026-08-20 時点 9

観測

日付 発生 開けば決まった面
2026-08-13 親が brake 2 評価者の installed prompt が追加条項を既に持つと断定。ファイルは未読で、実際には旧 5 項 .claude/agents/l1-gate-eval.md
2026-08-13 著者が wiki sidebar を更新したと報告。git add が古い pathspec で失敗しており stderr は抑制、rename しか commit されていなかった git status
2026-08-13 親が brake 2 を不適用と判断。diff に既に入っていた adapter/claude/agents/l1-gate-eval.md の 4 行目に layer: L1-model があり、兄弟ファイルの frontmatter から一般化していた 当該ファイルの frontmatter
2026-08-14 親が diff poller を毎時 :00 と断定し、Master に 16:00 まで待つよう伝えた。wrangler.toml は 4 本の cron を宣言しており、当該 pass は 15:31 に走り終えていた wrangler.toml
2026-08-14 親が「token 軸は閉じた」を issue #236 に合格基準として記載。1 commit の failure mode から軸全体へ一般化 当該 commit 群の実行結果
2026-08-15 親が Master 本人の実行済みコマンドを Master に告げた(wrangler login / wrangler secret put)。Master は一つも実行していない 手元の tool 出力(wrangler whoami
2026-08-16 親が 目録部分の合計は約 8.1 KB#1767 の premise に記載。サブエージェントの報告を実測として写したもので、実測は 6,628 B git show(ファイルごと 1 回)
2026-08-16 親が自分の言い回しを Master の発言として 2 度帰属(「前回 Master が仰った『精度を買った代金』」)。同一セッション内で Lin が作った語 文脈内の生トランスクリプト
2026-08-18 親が GitHub Support への問い合わせが 4 日間未回答と Master に告げ、同ターンで memory にも書いた。Master は同日返信済み — (下記「切り分け」参照)

切り分け(2026-08-20 実施)

本 issue が「substrate 側に何が足りないのか、あるいは足りているのに使われていないのかを先に分けること」としていた作業。9 件を実際に当てた結果、2 つに割れる

A. 発火ギャップ — 8 件

面は到達可能で、1 回読めばどちらかに決まった。うち 1 件(2026-08-16 の帰属誤り)は tool 呼び出しすら不要で、既に context 内にあった

この 8 件については substrate は足りている。規則も存在する(rules/model/trigger-check-gate.md Source check / skills/model-source-check/SKILL.md two-pillar verify)。on-user-prompt.sh が毎ターン 5 軸を再武装しており、asserting from internal memory -> Source の routing は本件そのものを名指ししている。機構は全部あって、適用の瞬間に立たなかった。

B. 射程ギャップ — 1 件(2026-08-18)

こちらは A と同型ではない。手元にあったのは Master が共有した受信 .eml 1 通であり、送信済みかどうかは受信メールの射程では原理的にどちらにも決まらない。A の 8 件は「開けば決まる面を開かなかった」だが、この 1 件は「開いた面にそもそも決める射程が無いことに気づかず、そこから否定を断定した」である。

skills/model-source-check/SKILL.md の two-pillar verify table は 4 行とも「この問いはこの方向へ」の形で、その方向が当該の問いを決められるかは前提として問われていない。Capability + visibility substrate 節は存在するが、これは規則が発火しなかったときに仕様側が診断する視点(「規則を足す前に何が欠けているか訊け」)であって、断定の瞬間に手元の面の射程を点検する項目ではない。

結論 — 現時点の証拠では L1 編集は authorize されない

skills/evolution-l1-update-gating の long-horizon observation 閾値を当てた結果:

  • A(8 件) は閾値を越えている。しかし修理対象が無い。機構は既に全部あり、ここで打てる手は「規則をもう一本足す」であり、本 issue の制約が名指しで禁じている反射そのもの。skills/model-source-check/SKILL.md 自身も a rule failed to fire and the response impulse is to add another rule (check the capability and visibility substrate first) を発火条件に持つ。A に対する spec 側の修理は現時点で無いと記録する。
  • B(1 件) は two-pillar verify に実在の欠落を指すが、観測 1 件である。skills/model-source-check/SKILL.mdlayer: L1-model であり、n=1 で L1 を動かすことは「Do not edit L1 on a single session's impression」に正面から抵触する。閾値が越えられているのは A の型であって B の型ではない。A の 9 件分の重みを B の修理に流用しない。

したがって本 issue は規則テキストの追加としては実装へ進まない。B の型は観測軸として積み、独立に noise floor を越えた時点で改めて起票する。

残る生きた経路 — 構造側(L6 adapter)

A に対して「規則を足す」が禁じられていることは、「打つ手が無い」と同義ではない。rules/model/subtractive-structural-beauty.md は実行が保証されない手続きを構造へ置き換えよと要求しており、A の 8 件はまさにその置き換え対象に当たる。8 件 / 6 日という蓄積は、この方向の設計を検討するには十分な重みがある。

ただし予防は難しい: hook は UserPromptSubmit ではターン開始時に走るため、断定はまだ存在しない。現実的に検出可能なのは事後側で、「当該ターンで Read していないファイルの内容を断定した」という形なら観測できる。これは予防ではなく事後検出だが、A の 8 件はいずれも同一セッション内で反証可能だったため、事後検出でも代償の大部分(Master の時間消費・memory への誤記録の定着)は防げる。

この設計は本 issue の射程外であり、独立した issue を要する。本 issue は「A には規則追加という修理が無い」ことと「構造側が残る唯一の経路である」ことまでを確定させる。

制約

  • 規則をもう一本足す反射に乗らないこと。
  • rules/model/subtractive-structural-beauty.md の procedure-vs-structure 二値により、recall 依存の手続きは構造への置き換え対象になる。A の 8 件はいずれも recall 依存の面で落ちている。
  • B を実装する場合は brake 2 が乗る(skills/model-source-check/SKILL.mdlayer: L1-model)。

対象ファイル

無し。上記の結論により本 issue は spec 変更を生まない。

release type

無し(変更を生まないため)。

観測窓(2026-08-20 設定)

判断は wiki gate-miss-measured-not-enforced が正本(index 行 = PR #1790)。本 issue はその観測窓を保持する。

  • 開始 2026-08-20 / 終了 2026-09-03(2 週間)
  • 観測対象 A 型(到達可能な面を開かずに断定)の発生件数のみ。B 型は memory/promotion_tally.md の別クラスタで積む
  • memory/promotion_tally.md のクラスタ state asserted without reading the surface that holds itmemory/self-evaluation_log.md。新しい仕組みは追加しない
  • 閾値(先出し、後から動かさない)
    • 窓の後半(08-27 以降)で発生ゼロ → 自律で閉じた。本 issue は「修理不要」で close、強制案は破棄
    • 横ばい / 増加 → 強制側を検討し、根本基準との衝突を明示した上で brake 2 へ載せる

起点の分布(2026-08-20 時点、8/13〜8/20): 3 / 2 / 1 / 2 / 0 / 1 / 0 / 0。数が小さく傾向とは言えない。言えないことが観測窓を置く理由である。

対立仮説を先に立てておく。 hook-driven-gate-trigger が監視項目として挙げた habituation(毎ターン同一号令の壁紙化)が生きている。再 arm があるのに漏れるなら、原因は「機構が足りない」ではなく「号令が壁紙化した」かもしれない。その場合の手は強制ではなく号令の動的化であり、観測はこの二択を分ける材料にもなる。

Metadata

Metadata

Assignees

No one assigned

    Labels

    forming本文を再構築しながら要求を整えている状態promotion観測機構が noise floor (3日内3回以上、または5回到達で即昇格) を越えて起票した昇格判断 issue。type 軸とは別軸 marker。specLi+の挙動に影響する仕様・ポリシー・定義

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions