RCF-092:auto-fetch.bat 棄用清理 + 機制遷移全庫文檔傳播
日期:2026-06-18 | 觸發條件:條件 4(修改 SKILL 核心執行步驟:週報 + agent-routing 的看板資料讀取步驟)| 類型:清理 + Source-of-Truth 傳播
背景(為什麼這樣改)
SYS-02 看板的資料抓取機制經歷過遷移:
- 早期:本機
auto-fetch.bat(Windows 排程)→ fetch-threads.js → git push - 2026-05-21:canonical 接管 — HQ workflow
fetch-threads.yml(排程 0 1,13 * * *,台灣 09:00/21:00)每天兩次自動 fetch + push 至 dashboard repo
問題:2026-05-21 遷移時,只更新了 inventory.json 的 tech 欄,沒有對全庫做引用傳播。導致本機 auto-fetch.bat 停擺 65 天(最後執行 2026-04-14),而 8 處 HQ 文檔仍指示讀取 auto-fetch.log / 描述 auto-fetch.bat 為現役機制,stale 達 ~1 個月。此狀況在 2026-06-18 品牌校準 Angle② 執行時被 Tim 點破(「數據你應該自己要可以更新」),才發現 Claude 一直讀本機落後 clone 而非線上 canonical。
決策
採方案 C(最積極清理)+ 全庫 SoT 傳播:
Dashboard repo(shoppy09/tzlth-threads-dashboard, master)
- 刪除 fetch-log 完整鏈:
auto-fetch.bat、auto-fetch.log、api/fetch-log.js、server.jsroute、app.js警告塊 - 保留:
showDataWarning(與 fetch-log 共用fetchWarningDOM,是獨立的資料驗證警告)、vacancyWarning(發文空窗)、trigger-sync/cron.yml(手動備援) - 連帶修復:
trigger-sync.jsref:'main'→'master'(潛伏 dispatch 422 bug,立即同步本來就壞)+ 時間訊息 10:00/22:00→09:00/21:00 .vercelignore/.gitignore清條目
HQ repo(tzlth-hq, main)— 8 處傳播
主 CLAUDE.md 拉取協議 L909 + push 規則 L94、週報 SKILL、agent-routing SKILL ×2、SYS-02 專案頁 ×2、README ×2、外稽回歸清單、inventory L101 → auto-fetch.log 新鮮度判斷改為 threads-data.json fetchedAt ≤24h。
為什麼選這個(而非標注棄用/最小改)
- 本機 .bat 作為「手動備援」已壞(無 git pull → push 必被拒,本機 clone 長期落後 canonical);真正手動備援 = GitHub Actions workflow_dispatch / 立即同步按鈕(修 ref 後)→ 留死檔只會誤導未來判斷資料源。
- fetch-log UI 監控的對象(auto-fetch.bat)已不存在,整條鏈是孤立的死功能 → 移除而非保留。
過程教訓(IMP-111 家族)
Tim 連續多輪「足夠嚴謹嗎」+「全面盤點,不要想到什麼才做什麼」。Claude 前幾輪「想到什麼掃什麼」(只 grep fetch-log 端點),第 5 輪才宣告收斂——該收斂是錯的,只覆蓋 dashboard 程式碼鏈,完全漏掉 HQ 8 處文檔傳播。直到 Tim 第 6 次明令「全面盤點」,才對全庫窮舉 grep auto-fetch,揪出傳播缺口。
根因 = 同 RCF-068(SoT 變更未全庫 grep 傳播):機制遷移 = SoT 變更,必須在遷移當下對全庫 grep 關鍵字逐檔傳播,而非只改主記錄。
信念變更
from:「清理一個失效機制 = 刪檔 + 改主記錄就好」 to:「機制遷移/棄用 = Source-of-Truth 變更,必須三步協議(全庫 grep → 逐檔傳播 → grep 驗證殘留歸零);引用散落 SKILL/拉取協議/專案頁/README/外稽清單,漏一處即 stale 月餘」
連動
- audit-log.md 2026-06-18 改善追溯
- deploy-verify/SYS-02-2026-06-18.md
- IMP-111 家族(收斂宣告過早 / 第一輪非窮舉)