Session close record · STEP 2308 · 2026-10-09
chat-Claude 起工 の 「持ち越し仮定検出器 v0」 (HTML 可搬版 + Python 本家版 = carryover-detector.zip、 2 段構成 = 抽出部 差し替え可 + 照合部 決定的) と 作題 dev-set 16 件 (calibration_v1_additions.json) を Claude Code (rei-aios-2c) で 読み取り専用実測。 Node 移植版 を 作って Python 版 と 突合、 oracle_extractor の 設計意図 (= 検出能力 の 上限 ではなく、 schema × 性質表 × check() の 内部無矛盾性保証) を 明示化。 dev-set の 性能数値 は self-marking tainted (作題 + 予測 + 評価 を 全部 Claude が やった) ため **引用禁止**、 項目列挙 のみ。 独立 held-out 仕様 (藤本さん 8 + Gemini 12 + Rei 4 pilot = 20+、 二重否定/偽装否定 を 必須要素 に 入れた) + 境界測定 protocol (dev / held-out phase 分離 + rule 凍結 + L0/L1/L2 事前付与 + held-out 1 回限り) を Downloads 外 md 1 枚 で land。
C:\Users\user\Downloads\持ち越し仮定検出器 v0.html — 可搬 展示版 (keyword 段 のみ、 browser 内 で CAL 17 件 自動実行)C:\Users\user\Downloads\carryover-detector.zip — Python 本家版 (keyword + command + oracle 3 extractor + measure.py + CLI)C:\Users\user\Downloads\calibration_v1_additions.json — 作題 dev-set 16 件 (A/B/C/D 4 群 + pred_keyword/pred_oracle field)C:\Users\user\Downloads\calibration_v1_additions_PROTOCOL.md — dev-set 凍結宣言 + held-out 仕様 + 境界測定 protocol (本 arc で land)前 session で 「pred_oracle vs actual (= v0 keyword 検出器 出力)」 を 比較していたが、 藤本さん 指摘 で 比較軸誤り confirm。 oracle は 「ideal detector」 ではないので、 比較すべき は 「ideal outcome (= expect が carry なら hit、 clean なら ok)」。
再照合結果 (dev-set 16 件、 数値 は 引用禁止 のため 項目のみ): mismatches 3 件、 全部 A 群 false-justify。 以下 深い理由。
Python 側 oracle_extractor の 動作:
def oracle_extractor():
def extract(step):
return {"domain": step.get("d"), "uses": step.get("u", []),
"justified": step.get("j", [])}
return extract
= gold d/u/j labels を verbatim pass。 check() は established |= set(ex["justified"]) で j を 無条件 est に 加える。
Gold schema の 定義 (calibration_v1_additions.json _comment):
j = 「この段 の 文面 が 根拠づけた と 述べている 性質 (その 主張 が 正しいかどうかは 問わない)」→ false-justify (「円分整数では一意分解が成り立つことが証明されている」 等) は j=[unique_factorization] gold label を持つ ため、 oracle extractor も est に UF を 加え、 次段 の use を skip = miss。
これは bug ではなく schema 設計 の 構造的限界。 Python 本家 README L42 で 明示: 「oracle の 満点 は 『正解注釈 と 性質表 が 互いに 矛盾しない』 こと を 示す だけ で、 検出能力 の 証拠 では ない」。
将来 schema 拡張 候補 (本 arc scope 外):
j_claimed + j_valid field 分離 (claim 層 と validity 層 を 分ける)check() 側 で j_claimed を 性質表 で validate してから est に 加える (「cyclotomic で UF conditional = p ≤ 19 でのみ 成立」 を 検出器 自身 が 判定)HTML 側 の embedded CAL 17 件 (= chat-Claude 作題 の 元 較正セット) を 対象 に、 自作 Node 移植版 で measure() 相当 を 実行、 Python 版 measure.py の README L28-31 と 完全一致 確認:
| Metric | Node 移植版 | Python 版 README | 一致 |
|---|---|---|---|
| n (cases) | 17 | 17 | ✓ |
| tp (的中) | 8 | 8 | ✓ |
| fp (誤検出) | 1 | 1 | ✓ |
| fn (見逃し) | 2 | 2 | ✓ |
| recall | 0.800 | 0.8 | ✓ |
| precision | 0.889 | 0.889 | ✓ |
3 誤り の 内訳 も README L34-36 と 完全一致: lame-paraphrase 見逃し (言い換え + 領域誤切替) / octonion-assoc-implicit 見逃し (性質名 を 言わない 書換) / ctl-negation 誤検出 (否定文)。 → Node 版 と Python 版 と JS 版 は bit-identical (TABLE + CAL + check() verbatim copy)。
※ 本 (1b) の 数値 は 元 CAL 17 件 (chat-Claude 作題、 Python 本家 の 公式測定値) 由来、 本 session で land した dev-set 16 件 由来 ではない ため 引用可。
| 項目 | HTML/JS 版 | Python 版 | 備考 |
|---|---|---|---|
| longest-match (null-pad) | ✓ | ✓ | identical |
check() logic (domain reset + est + status flag) | ✓ | ✓ | identical |
keyword_extractor | ✓ | ✓ | identical |
command_extractor (LLM 差し替え口) | なし | ✓ | --extractor "cmd:<cmd>"、 stdin JSON → stdout JSON |
oracle_extractor (上限参照) | なし | ✓ | gold label verbatim pass |
check(oracle=True) branch | — | ✓ | step dict pass 用 |
| 測定 script | HTML 内 measure() 自動 | 独立 measure.py + --json | cases_all_correct 全段正解事例 を Python のみ |
| CLI | browser 内 のみ | python3 detector.py <file> + extractor option | Python 側 が 本家 |
規則本体 の 差分 ゼロ。 Python 側 は LLM 差し替え口 を 既に実装済 で、 chat-Claude の 「LLM 本命経路」 の 設計意図 と 完全一致。 HTML/JS 版 は portable 展示版。
対象: calibration_v1_additions.json 16 件 (A 群 5 + B 群 3 + C 群 4 + D 群 4)。 作題 + 予測 + 評価 を 全部 Claude が やった ため 独立性 ゼロ。 用途 は 「rule 探索 の 開発信号」 と 「held-out 設計 の 指針」 のみ。
pred_keyword 一致率 (「作題者 が 検出器挙動 を 完全模擬 できた」 強主張 を 伴うため)pred_oracle 一致率 (vs actual / vs expect-ideal 両方)pred_keyword / pred_oracle field 削除 (独立作者 は 予測しない = 自己採点 bias ゼロ化)、 expected_level (L0/L1/L2) 事前付与 field 追加detector.py + properties.json の SHA-256 + rule list 明記)、 以降 変更禁止重要 discipline: held-out 実行結果 を 見て から rule 変更 は 本 protocol 違反。 「もう 1 回 動かしたい」 と 思った 時 は 「別 held-out set を 新規作成」 ルート を 取る。 旧 held-out は immutable record。
| Level | 必要能力 | 典型 (dev-set 試算) |
|---|---|---|
| L0 | keyword 段 単独 で 可能: 性質 keyword 検出 + domain reset + 否定 scope + justify scope | A 群 一部、 D 群 全部 (rule 追加後) |
| L1 | 構造 reasoning 必要: anaphora / cross-domain 比較 / scope-tracking | B 群 「X の 場合 と 同様に」、 E 群 二重否定 の 一部 |
| L2 | 意味理解 必須 (LLM 段 の 本命経路): 性質 keyword 不在 の implicit 使用 | C 群 全部 |
付与 timing: held-out set 作成 直後、 検出器を 1 行も 動かす前 に 全 case に 事前付与。 作者 自身 または 作者 と 別人 (藤本さん が Gemini 作題 の 全 case を 分類 する、 等)。 事後 変更 禁止。
calibration_v1_additions_PROTOCOL.md は Downloads 直下 (project tree 外) に 保存、 本 site page から pointer のみ、 内容 全文転載 せず (protocol の 一次参照 は md、 本 site page は summary)本 session (rei-aios-2c、 2026-10-08 start) 中 の peer tab 状態:
C:\Users\user\Downloads\calibration_v1_additions_PROTOCOL.md (project tree 外 preserve)C:\Users\user\Downloads\calibration_v1_additions.jsonC:\Users\user\Downloads\carryover-detector.zip (keyword + command + oracle 3 extractor)C:\Users\user\Downloads\持ち越し仮定検出器 v0.htmldocs/SITE_COVERAGE_MAP.md 末尾 に append