Research Log 2026-09-24 — mini-babel-sieve v0.1 refinement (STEP 2223 + STEP 2224 corrigendum #1 close)

Spec v0.1 refinement of §5.4 「完全 0」 trigger / Human-eye-check materials refactored as worksheet + separated generator-claim / Chat-Claude 2-point feedback 全 反映 / Primary result post-hoc rescue 禁止 discipline 遵守 / 藤本伸樹 / 2026-09-24

1. Context

STEP 2221 (mini-babel-sieve v0 arc close) の 後、 report §8 で 列挙 された v0.1 refinement candidate 4 項目 の うち 藤本さん directive 「(a) 「完全 0」 phrasing 精緻化 は 優先 (v0 の 結論 の 読み方 に 直接 関与)」 の 明示 選択 + chat-Claude 「(a) の 「完全 0」 条件 の 精緻化 だけ は、 v0 の 結論 の 読み方 に 直接 関わる ので 優先度 が 高め」 endorsement を 直接 受けて 実施。

STEP 2223 で v0.1 spec + 目視 検査 材料 を initial land、 STEP 2224 corrigendum #1 で chat-Claude 2-point feedback (post-hoc rescue 禁止 discipline + 独立性 判定 の 実 measurement evidence) 全 accept + fix。

2. Spec v0.1 の refinement 内容

Source: specs/mini-babel-sieve-spec-v0.md (v0 spec、 commit 2910b4a18)。 Refinement 対象 = v0 §5.4 反証 条件 表 の 「厳密 パーサ 篩 で e_FP = 0 かつ e_FN = 0」 1 行 のみ。 v0 の 他 § は 不変。

2.1 分割 (v0.1 §2.1)

観測 結果design の どこ が 誤り か
厳密 パーサ 篩 で 完全 0 (FPR = 0 かつ FDR = 0) かつ import graph 交差 検出ground truth 経路 が 被検篩 と 部品 共有 の 疑い (§4.1 の 独立性 が 破れ ている、 Case A)
厳密 パーサ 篩 で 完全 0 (FPR = 0 かつ FDR = 0) かつ import graph 独立 confirmed両 実装 が 同 spec を 正しく 実装 した 正常 結果 (Case B)、 反証 trigger では ない

2.2 「import graph 交差」 の operational 定義 (v0.1 §2.2)

3. Chat-Claude 2-point corrigendum の 直接 対応

3.1 Point 1 — Post-hoc rescue 禁止 discipline 遵守

Chat-Claude 指摘: 「v0 の §5.4 は 「完全 0 → 反証 fire」 でした。 実際 に 完全 0 が 出て、 その 結果 を 見た あと に §5.4 を Case A/Case B に 分割 し、 v0 の 結果 を 「Case B = 正常 結果、 反証 fire しない」 と 遡及 判定 して います。 これ は、 結果 を 見て から 反証 条件 を 緩め、 既存 の 結論 を 救った 形 です。」

Fix (v0.1 header + §1.2 + §3.2 + §6):

3.2 Point 2 — Case B 判定 の 実 measurement evidence

Chat-Claude 指摘: 「§2.2 で 定義 した 静的 grep を 実際 に 2219 の 実装 に 対して 走らせた 出力 を 載せて ください。 定義 を 書いた だけ で 「独立 confirmed」 と して いる なら、 それ は 測定 で は なく 主張 です。」

Fix (新 §4 「STEP 2219 実装 に 対する 実 静的 grep 出力」):

3.2.1 実 grep 出力 (STEP 2224 corrigendum 実行時 snapshot)

experiments/mini-babel-sieve/domain.py:8:from itertools import product
experiments/mini-babel-sieve/generator/ground_truth.py:14:from itertools import product
experiments/mini-babel-sieve/generator/ground_truth.py:15:from typing import Iterator, Tuple
experiments/mini-babel-sieve/mutation/mutations.py:6:import re
experiments/mini-babel-sieve/mutation/mutations.py:7:from sieve.strict_parser import is_canonical_nat, s1_strict
experiments/mini-babel-sieve/mutation/mutations.py:8:from sieve.eval_calculator import s2_baseline
experiments/mini-babel-sieve/run_experiment.py:*:from domain / generator / sieve / mutation ...
experiments/mini-babel-sieve/sieve/heuristic1_regex.py:12:import re
experiments/mini-babel-sieve/sieve/strict_parser.py:11:import re
experiments/mini-babel-sieve/sieve/eval_calculator.py: (import なし、 builtins のみ)
experiments/mini-babel-sieve/sieve/heuristic2_mod10.py: (import なし)
experiments/mini-babel-sieve/verify_invariants.py:*:from generator / sieve ...

3.2.2 判定 適用

結論: §2.3 「独立 confirmed」 3 条件 全 満たす → §3.2 post-hoc 分類 で Case B 判定 の 根拠 が 実 静的 grep 出力 に よって 提供 された (定義 だけ の 主張 では ない)。

4. 目視 検査 材料 の 引きずり 予防 (chat-Claude 別 point)

Chat-Claude 指摘: 「チェックリスト に 各 項目 の 篩 の 出力 (S1/S2 の 判定 結果) が 並んで いる と、 検査 する 人 が それ に 引きずら れます。 使用 禁止 rule で 篩 の 実装 や eval を 禁じて いる の は 正しい 設計 です が、 判定 結果 そのもの が 手元 に あれ ば 同じ こと が 起きます。 材料 は 「文字列 だけ を 見て 人 が 判定 → 記録 → そのあと で 篩 の 判定 と 突き合わせる」 の 順 に なって いる か 確認 して ください。 なって いなけれ ば、 判定 欄 を 別 file に 分ける だけ で 直り ます。」

Fix (materials 2 file split、 STEP 2224 corrigendum #1):

結果: 篩 出力 (=generator 出力) が worksheet と 同一 file に 並ばない、 checker は 独立 列挙 後 に のみ 突合 する 順序 が structural に 強制 される。

5. STEP timeline

STEPCommit内容時刻 JST
—2910b4a18Spec v0 draft land00:36
22184bbeed5fbPre-registration v0 freeze (immutable)06:39
221969afd9211実装 15 file + 測定 + report06:57
22210a9d6bd98v0 arc close (site + notepad + coverage)~12:00
222320e2215ebSpec v0.1 refinement + human-eye-check materials initial~12:40
22241f636e15bSTEP 2223 corrigendum #1 — post-hoc discipline + 実 grep evidence + materials split~13:20
2225(本 arc close commit)本 arc site 反映 + backlinks + memory canonical + memory hook + notepad~13:40

Pre-registration の 公開 順序 (freeze 06:39 → 実装+測定 06:57) は git remote に 記録 済、 chat-Claude 「事前登録 の 規律 の 公開 証拠」 論点 満たす。

6. Honest scope

本 arc が 主張 しない こと:
  • 「v0.1 は v0 の 結論 を 変えた」 (post-hoc rescue 禁止 discipline 遵守、 v0 の 反証 trigger 発火 事実 は v0 基準 で 残る)
  • 「Case B の 判定 が spec の 正しさ を 保証」 (Grammar G 自体 の 誤り は 検出 されない、 目視 検査 段 が 別 verify 経路)
  • 「目視 検査 が 完了 した」 (材料 準備 のみ、 実施 は 本人/レビュアー 待ち)
  • 「v0.1 が 最終 版」 (v0.2 candidate は v0.1 に 含めない、 refinement (b)(c)(d) は 別 STEP)
  • 「新規性 / 世界初」 (spec v0 §7 遵守 継続)

Spec v0.1 は v0 と 同 discipline で 事後 refine 可能 (spec は pre-reg と 異なり explicit immutable 条項 なし、 但し 更新 は 番号 increment + audit trail で 記録)。 §4 の 静的 grep 出力 は STEP 2224 実行時 snapshot、 実装 が 変更 された 場合 は grep 再実行 必要。

7. 派生 file と commit

8. 未来 STEP candidate (v0.2 or 別立て)

  1. (b) M2 mutation の 全 operand 桁 数 拡張 (現 M2 の |E|=1 narrow を broaden)
  2. (c) Pre-reg 段階 の pattern breakdown discipline 明文化
  3. (d) Heuristic literal 挙動 verify discipline
  4. Case C candidate (両 実装 が 同 spec を 誤って 実装 する 併存 case) が emerge した 場合 の v0.2
  5. 目視 検査 の 実 実施 (worksheet + generator-claim、 本人 or 独立 レビュアー が 主体)