scripts/generate-tools-index.ts は public/tools/*/ を scan し
public/tools/index.html と public/sitemap.xml を 再生成する script。
藤本さん + chat-Claude Cowork session で 発見された 「367→380 の 3 日 lag」 = page を 足した tab が 手 regen 忘れ、
index が 黙って 遅れる pattern の 直接原因。
chat-Claude Item 3 spec は **2 layer** で 修正:
.github/workflows/comparator-cron.yml の daily refresh 内 で 実行 → STEP 1826 で 別 tab が 完了済package.json の dev:build chain に 組込 → 本 STEP
Layer A のみ だと 手動 npm run dev:build 経路 で index が stale化。 Layer B で 双 経路 fix 完了。
Diff は 1 行:
- "dev:build": "... && tsx scripts/regen-home-hub.ts && tsx scripts/detect-audit-gap.ts --quiet --no-exit-code" + "dev:build": "... && tsx scripts/generate-tools-index.ts && tsx scripts/regen-home-hub.ts && tsx scripts/detect-audit-gap.ts --quiet --no-exit-code"
regen-home-hub.ts の 直前 に generate-tools-index.ts を 挿入。
両 script は 「site index / hub 再生成」 の 論理的 pair、 chain の 同 位置 (末尾側、 vite build の 後段) で 動作。
| 選択肢 | 判定 | 理由 |
|---|---|---|
vite build より 前 |
△ chat-Claude 提案 だが 未検証 | chat-Claude 「public/ → dist copy 対象 なので vite 前 に 置かないと その回 の 出力 に 入らず」 concern |
regen-home-hub.ts 直前 (末尾側) |
✅ 本 STEP 選択 | 今日 の 実測 (Home Hub live 反映 が regen-home-hub 経由 で 成功) が 「CF Pages は public/ 直接 serve」 pattern の 状況証拠、 末尾配置 で 十分 |
sync-index-html-bundle.ts は SPA root index.html (OGP metadata) 用 で /tools/index.html には 影響なし
(chat-Claude 「後段 script で 辻褄」 仮説 は 独立 verify で 否定)。
| Item | 内容 | STEP | Actor |
|---|---|---|---|
| 1 | comparator-cron.yml に plugin_census 追加 | STEP 1826 | 別 tab |
| 2 | dist-renderer mirror 同一 commit (cron 内) | STEP 1826 | 別 tab |
| 3 Layer A | tools-index 再生成 cron 経路 | STEP 1826 | 別 tab |
| 3 Layer B | package.json dev:build 経路 | STEP 1829 | 私 (a6) |
| 4 | mirror == source drift gate | STEP 1827 | 別 tab |
藤本さん turn 直前 に 「tab close 安全」 を 主張、 直後に 「site 反映 は?」 の 明示指摘 で 訂正、 の pattern が STEP 1779+1802 (前 catch-up) と 本 STEP 1829 で 2 回連続 発現。
記録した SAC-4 「site 反映 discipline を 忘れて arc close を 主張する」 pattern (memory hook) が structural gate に なっていない 実証。 「commit 済 = close 可能」 の 誤等式 が 再発。
Future prevention: tab close 主張 直前 に 明示的 self-check gate: (a) site page 存在確認 (b) Home Hub 反映確認 (c) 全ツール一覧 反映確認 の 3 項目 を 機械的に 実行 する 反射 を 有効化。
npm run dev:build 実行時 に 検証 必要)52740501e (別 tab、 chat-Claude Item 1+2+3 Layer A の 全 fix)e75527dac (別 tab、 chat-Claude Item 4 = mirror 同型 drift gate)9ff5eb83a (私、 Verilog bake-sync gate = STEP 1827 と 同 pattern)e35c4de35 (私、 cross-impl-drift claim = 藤本さん hard constraint 起源)