measurement caught what read based removal test missed - Liplus-Project/liplus-language GitHub Wiki

読みの除去テストが通した削除を、実測が 1 件差し戻した

Question

brake 1 の 3 軸が所見ゼロで通過した蒸留 PR は、振る舞いが変わっていないと言えるか。言えないなら、読みで捕まらないのはどういう形の削除か。

対象 = rules/operations/main-agent-procedures.md(layer: L4-operations、585 行 36,448 B、常時ロード面の単独最大ファイル)。PR #2012 / issue #2010。

Current resolution

言えない。brake 1 の通過は必要条件であって十分条件ではない。

PR #2012 は brake 1 を 3 軸すべて所見ゼロで通過した。その後の 2 腕測定 30 問のうち 1 問で行動が割れた。

腕 設問「2 セッションが同じ issue に書き込み、両方が同じ run を own と読む。どうするか」
現行版 重複 consume は冪等で飢餓も起きない → mark_processed する
蒸留版 step 2 が不確かと分かった以上 step 4 に回す → mark_processed しない

後者は event が消費されず溜まり続ける側で、実害がある。

条項が消えて緩んだのではない。 禁止文(step 2 を creation に狭めるな)は蒸留版にも残っていた。落ちたのは機序を述べる平叙文で、それが無くなったことで読み手が「不確かなら hold」という一般則へ流れた。step 4 は蒸留版にも hold, and leave the event unprocessed と書かれており、そこへの出口が開いたままだった。

読みで捕まらないのは「常駐の既定の傾きに逆らう側の文」である。

Li+ には「分からなければ保持」「消費・破壊はしない」という強い常駐の傾きがある(rules/model/rule-policy.md の外部検証要求、rules/evolution/memory-entry-format.md Artifact deletion calibration、webhook 節自体の preserve unmatched backlog)。落ちた文はその傾きに逆らう許可だった——書き手を特定できなくても consume してよい、という。

  • 逆らう側の文は、消しても空白が見えない。 読み手が既定の傾きで滑らかに埋めるため、残りのテキストは自然に読める。論理の飛躍も起きない。
  • 補強する側の文は、消しても同じ結論に着くので実害が出ない。

除去テストは「この文を消して残りだけ読んだとき行動が変わるか」を問うが、実際に効くのは残りのテキスト + 読み手が元から文脈に持っている既定の傾きである。前者だけに当てると、逆らう側の文の欠落だけが見えない。

評価者を増やす方向ではこの型は捕まらない。 brake 1 の評価者も読む主体であり、全員が同じ常駐の傾きを共有している限り、逆らう側の文の欠落は誰にも見えない。実測(行動を測る)だけが捕まえる型である。

受容した残余

  • 再測定は 30 問中 1 問。 差し戻し後に 8 問全体を測り直していない。修正が他所を壊していないことは測定されておらず、+4/−1 の 1 hunk であることを根拠にした読みの判断である。
  • 測定設計の妥当性は証明されていない。 割れた P26 は「禁止形」を狙って作った 8 問の中にあったが、実際に壊れたのは禁止形ではなく平叙の機序文だった。測定は当たったが、当てたつもりの理由では当たっていない。したがって「禁止形 n 問」を次回そのまま再利用する根拠は本件から出ていない(issue #2015 で選定基準そのものを測る)。
  • 「逆らう側だから落ちた」も 1 件と整合するのみ。 逆らう側でない文が落ちていないことは示していない。rules/model/liplus-coding-rule.md Body States Behavior への検出手掛かり追加は L1 Model Layer 面であり、skills/evolution-l1-update-gating の long-horizon observation 軸に乗る。1 観測では書かない。

Edges

  • depends on agentic-search-distilled-body-measured-equivalent — 蒸留を読みではなく実測で確定する手順は同 entry が確立した。本件はその手順を 2 例目に適用し、同一でない結果が出た最初の事例である。同 entry が「5 問の範囲で同一だった」と射程を限った書き方をしていたことが、本件で実効を持った
  • relates to brake1-detection-width-window-closed — 同 entry は窓を閉じる際、受容する残余として「実 PR での two-arm run 実績が 0」を明記していた。本件がその実績 1 件目であり、測定が brake 1 の冗長ではないことを実証した。ただし同 entry の他の残余(測定はゲートではない、発火条件が加算側 PR を外す)は本件でも動いていない

Background

rules/model/liplus-coding-rule.md Body States Behavior の判別線は「読んだ者の行動が変わるか」を問う。本件の蒸留者はこれを法助動詞で代理していた——Prohibitions ("do not X") are behavior という明示の目印が、明示されていない対偶(命令形でなければ reasoning)として作用した。当該段落は異なる 2 軸の behavior を持っており、命令形だったのは片方だけである。判別線の文言に不備があったのではなく、当て方の問題である。

Related

  • PR #2012 / issue #2010
  • issue #2013 測定の射程を run record に書く欄がない
  • issue #2014 probe の blind 性が 1 回限りであることを記録も検出もしていない
  • issue #2015 probe 選定基準そのものが測られていない