fix/per-hook-inventory-every-cli
develop
第十支 hook 上線之後,五支 CLI 的接線盤點只有兩支點名得出它。
restart-gate
version-guard
hooks
而 smoke 那一行對每一支 CLI 都寫著「十支 hook 的每個接線模式都跑得完」。兩句話都是真的,範圍不同——smoke 跑的是十支腳本的每個模式,盤點驗的是那一支 CLI 的接線內容——但讀的人分不出來,拿這份輸出驗收接線就會把沒列到的當成沒接。
「接線寫了哪幾支」在接線那一段,「盤點驗了哪幾支」在盤點那一段。加一支 hook 要記得回來改第二個地方,而漏改的那一天不會有任何東西叫。
改成從接線那一邊實際會寫出去的內容抽名字:
hooks/hooks.json
present
codex 接線後的驗證也一起改:原本只確認那兩道閘門接上,現在逐支對照來源。推導是整份複製再改 matcher,漏掉任何一支都算推導壞了。
status codex
codex-session-reminder present
status copilot
status antigravity
session-reminder
smoke claude
status=ok
lines 140
lint-scripts
ste100-lint
copilot 與 antigravity 接不到第十支,這一批沒有改變那件事。 那兩支沒有工作階段開始事件,session-timer.sh 的處境相同。這一批要的是「盤點說得出它為什麼不在」,而不是把它硬掛上去。
session-timer.sh
那兩支的名單來自條目產生函式,所以往後那兩支真的多接一支 hook,盤點會自動跟著驗。
第十支 hook 上線之後實測發現:claude 與 kiro 的盤點點名得出它,codex、 copilot、antigravity 三段的盤點卻各自只驗自己寫死的那兩支。那三支的接線 盤點看不出第十支在不在,而 smoke 那一行還自稱「十支 hook」——兩句話都是 真的,範圍不同,讀的人分不出來。 根因是「接線寫了哪幾支」與「盤點驗了哪幾支」本來是兩份手寫清單。加一支 hook 要記得回來改第二個地方,而漏改的那一天不會有任何東西叫。 改成從接線那一邊實際會寫出去的內容抽名字,兩邊只留一份清單: - codex 讀的是從 hooks/hooks.json 推導出來的複本,所以名單取自來源那一份, 十支全驗;推導漏掉一支時,盤點說得出漏了哪一支。 - copilot 與 antigravity 只接得上兩道閘門,名單取自各自的條目產生函式。 - copilot 原本一支 hook 都沒點名,只驗「hooks 鍵在」——鍵在而某一支條目掉了 照樣回 present,那正是這一整支腳本一直在防的形態。 codex 接線後的驗證也一起改:原本只確認那兩道閘門有接上,現在逐支對照來源。 推導是整份複製再改 matcher,漏掉任何一支都算推導壞了。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
這一批修什麼
第十支 hook 上線之後,五支 CLI 的接線盤點只有兩支點名得出它。
restart-gate、version-guardhooks鍵在」而 smoke 那一行對每一支 CLI 都寫著「十支 hook 的每個接線模式都跑得完」。兩句話都是真的,範圍不同——smoke 跑的是十支腳本的每個模式,盤點驗的是那一支 CLI 的接線內容——但讀的人分不出來,拿這份輸出驗收接線就會把沒列到的當成沒接。
根因是兩份手寫清單
「接線寫了哪幾支」在接線那一段,「盤點驗了哪幾支」在盤點那一段。加一支 hook 要記得回來改第二個地方,而漏改的那一天不會有任何東西叫。
改成從接線那一邊實際會寫出去的內容抽名字:
hooks/hooks.json推導出來的複本,所以名單取自來源那一份,十支全驗。推導漏掉一支時,盤點說得出漏了哪一支。present,那正是這一整支腳本一直在防的形態。codex 接線後的驗證也一起改:原本只確認那兩道閘門接上,現在逐支對照來源。推導是整份複製再改 matcher,漏掉任何一支都算推導壞了。
實測
status codexcodex-session-reminder presentstatus copilotrestart-gate、version-guard各一項,presentstatus antigravitysession-reminder的複本smoke claudestatus=ok、lines 140,條數沒被這一批動到lint-scripts21 支、ste100-lint0,無 BOM 無替代字元邊界
copilot 與 antigravity 接不到第十支,這一批沒有改變那件事。 那兩支沒有工作階段開始事件,
session-timer.sh的處境相同。這一批要的是「盤點說得出它為什麼不在」,而不是把它硬掛上去。那兩支的名單來自條目產生函式,所以往後那兩支真的多接一支 hook,盤點會自動跟著驗。