Research Log · 2026-09-12〜13 · rei-aios-97

🛡️ Tab Isolation gate arc + 「完成」判定の訂正

STEP 1993 arc 7 commit chain。 tab-id 誤認識 事故 (誤 rei-aios-01 → 実 rei-aios-97) を 起点 に、 (a) 誤 sidecar rename + (b) superseded-by ポインタ layer 新設 + (c) pre-commit hook Section 8 tab-id 突合 (Step 0 機械化) + (d) 「完成」判定の honest 訂正 + CLAUDE.md 0-a pointer 追加。 **現状 = gate 実装済・warn-only で 稼働中 (env var 供給待ち)**、 grace period 期限 2026-09-20

⚠️ IMPORTANT 本 arc は 「完成」 状態 ではありません。 Section 8 hook は 稼働中 だが、 REI_TAB_ID env var 未 set の 場合 は warn only で pass (grace period)。 元 failure mode (「照合 せず 継承 判定」 = env var 未 set 状態) は 依然 通過。 全 interactive session が session-start で `export REI_TAB_ID=rei-aios-NN` を 実行 する discipline 定着 verify (memory hooks 累積 3 session 連続 遵守) が 未達。 2026-09-20 までに discipline 定着 verify なし の 場合、 warn → REJECT 昇格 candidate を 藤本さん に 明示提示。

Timeline (7 commit chain)

#CommitSlug内容
1af6054b3ddepositItem 2/3/4/5 relay deposit (誤 tab-id rei-aios-01 で write、 実 は rei-aios-97)
2a7030309daddendum残 3 judgments (Item 4 (b) GHA cache + Item 2 個別 review + Item 3 Kato Radar cite ≥3) 反映
3850db892bcorrigendum #2 creategit mv data/tabs/rei-aios-01/ → rei-aios-97/、 README 訂正 + 判断隠し pattern Step 0 追加提案
4d58dbbe61corrigendum #2 cleanup元 rei-aios-01/ path の 5 files delete side (git mv の 対 delete 部分)
523c234bd4corrigendum #3superseded-by ポインタ layer 新設 (annotations.json + viewer JS warning banner + pre-commit auto-mirror)
6e02548fd7corrigendum #4pre-commit hook Section 8 tab-id 突合 実装 (Step 0 機械化、 3 test scenario PASS)
75a970f654corrigendum #5「完成」判定 honest 訂正 + CLAUDE.md 0-a pointer 追加 (env var supply discipline、 grace period 期限 2026-09-20)

藤本さん 3 feedback の 対応 状況

#Feedback状態反映先
#1pace メーターの符号 誤り (commit 数 = pace 過剰 は 隠蔽 に ボーナス)認諾 のみ、 defer registry deposit 未実施 (別 session pickup)memory hook で 記録、 4 事例目 実測 evidence (私 の 「6 commit chain 完成」 判定 自体) 追加
#2Step 0「文脈 assumption verify」 の 機械化 (規律 で 蓋 → 破れない条件)gate 実装 完了、 但し 「破れない条件 昇格」 は 未達 (env var 供給待ち)Section 8 hook (commit 6) + CLAUDE.md 0-a pointer (commit 7) + grace period 期限 2026-09-20
#3superseded-by ポインタ (誤 tab-id notepad の 前方参照)完了annotations.json layer + viewer JS ⚠️ warning banner + pre-commit auto-mirror (commit 5)

Section 8 hook 実装 detail (commit 6 `e02548fd7`)

Behavior

.githooks/pre-commit Section 8 (Section 7 attribution warn の 直後、 Section 6 briefing の 前):

  1. staged files scan で data/tabs/<X>/ path 抽出 + tab-id 一意化 (sort -u)
  2. 複数 tab 混在 = REJECT (unless bypass)
  3. 単一 tab-id + REI_TAB_ID env var set + mismatch = REJECT (breach、 明確 error message + 3 fix options)
  4. 単一 tab-id + env var 未 set = warn only (grace period)
  5. 単一 tab-id + env var match = pass + confirmation log

Bypass mechanism

TAB_ISOLATION_BYPASS=1 TAB_ISOLATION_BYPASS_REASON='...' git commit ... (正当 越境 write = relay merger / atomic promote / STEP 1993 style git mv) + SKIP_TAB_ISOLATION=1 (Section 8 skip)

Test scenario (3 PASS)

Test設定期待実測
1REI_TAB_ID=rei-aios-97 + target=rei-aios-99-testREJECTREJECT ✓
2REI_TAB_ID 未 set + target=rei-aios-99-testwarn onlywarn only ✓ = 元 failure mode 通過 path
3REI_TAB_ID=rei-aios-97 + target 2 tabs 同時 (98-test + 99-test)REJECT multi-tabREJECT ✓

Grace period 解除条件 と 期限 (2026-09-20)

Superseded-by layer 実装 detail (commit 5 `23c234bd4`)

File layer

Viewer JS

Auto-mirror

.githooks/pre-commit Section 5 末尾 に annotations.json auto-mirror 追加 (public/dist-renderer/ copy + git add -f、 notepad entry staging と 独立)。

新 failure mode dataset entry (未来 Claude 用)

「文脈 assumption 継承 pattern」

session start で 直近 commit の tab-id / worktree / STEP 番号 を 「継承 する」 と 勝手 判定、 直接 verify なし で 実装 開始 = STEP 番号 collision (STEP 1660) の 兄弟 pattern (STEP 番号 は 中央 counter で 半 protect、 tab-id は 中央 counter なし = 全面 assumption dependency)。 Section 8 hook で 構造的 fix、 但し env var supply discipline pre-condition = warn-only の grace period 内 で は 依然 通過。

「完成 過剰 主張」 pattern (pace メーター 符号 誤り 4 事例目)

「hook 実装 + verify」 と 「gate 効いている」 を 同一視 して 「6 commit chain 完成」 判定 = 15+ turn 末尾 の pace メーター が discipline layer 完全通過 と 見える 計器 符号 が 誤 = 完了 過剰 主張 が pace 良好 と 表示 される 隠蔽 side への ボーナス。 藤本さん feedback #1 で 認諾、 corrigendum #5 で 状態訂正 (「完成」 marker なし で close)。

Honest scope

藤本さん judgment 待ち (別 session pickup)

継承