STEP 1779 の VERILOG_TABLE_PROVENANCE.warning field で 明示的に 挙げた STEP 1780+ candidate (ii)
「CI-time bake sync check (Verilog file と TS 定数 の diff)」 の 実装。
藤本さん 2026-09-06 turn 5 hard discipline 「照合していないのに 照合していると 名乗る」 pattern の structural fix。
data/verilog/dfumt8_alu.v が 書き換えられた 時、 TS 定数 VERILOG_NOT_TABLE /
VERILOG_AND_TABLE / VERILOG_OR_TABLE (src/mcp/d8-connectors.ts) が
sync されない と、 STEP 1779 の cross-impl-drift claim が 古い snapshot と 比較し続ける。
fail 前提 の claim なので、 ずれても 気づかない。 本 gate が 検出する。
scripts/check-verilog-bake-sync.ts = 165 行、 Node/tsx で 実行。
Regex で Verilog file の case block (NOT / AND / OR) を 直接 parse、
cross-tier default rule も 内部で 適用。 TS 定数を 同 file から regex 抽出、 全 136 entry で diff。
f4 の buggy dump_verilog_tables.py (line 59-60 で NOT hardcode) には 依存せず。
実 Verilog の case block を 直接 parse する self-contained 実装。
0 = TS 定数 と Verilog が sync (drift なし、 全 136/136 一致)
1 = drift 検出。 stderr に:
bakeDate 更新tableProvenance.currentVerilogNotCompared を false に flip する 回避 は 禁止、 藤本さん 2026-09-06 turn 5 hard discipline」2 = parse error (Verilog file or TS 定数 unreadable)
# 直接実行 npx tsx scripts/check-verilog-bake-sync.ts # npm script 経由 (test suite 統合) npm run test:step1802 # CI で drift 検出 npx tsx scripts/check-verilog-bake-sync.ts || exit 1
現状 実行結果:
[bake-sync] OK: VERILOG_*_TABLE in src\mcp\d8-connectors.ts
[bake-sync] is in sync with data\verilog\dfumt8_alu.v
[bake-sync] (checked 8+64+64=136 entries)
test/step1802-verilog-bake-sync-test.ts (39 行) = spawnSync で script を 呼び、
exit 0 を assert。 npm test 経路 で 自動検出可能、 開発者が Verilog 変更を 忘れた場合 も
test suite で 発見。
現状: 1/1 pass (136/136 一致確認)
本 STEP は STEP 1779 の tableProvenance.warning field と 直接 対応。 warning field の 文言:
To eliminate this failure mode, either
(i) implement runtime .v parsing in a future STEP,
or (ii) add CI-time bake sync check
(dump_verilog_tables.py output vs VERILOG_*_TABLE constant diff).
本 STEP は (ii) の 実装。 (i) runtime .v parsing は 別 STEP candidate、 未実装。
currentVerilogNotCompared: true 状態は 不変)scripts/git-hooks/install.sh 経路)e35c4de35 (cross-impl-drift claim、 本 STEP を tableProvenance.warning で name-check)c0256729e (78 差分 = f4 dump 依存 の 数字、 STEP 1779 で 80 に discovered、 本 STEP で f4 依存 自体を 断つ)ed461a777 (68 diagnosis)