用 Claude Code hook 擋危險指令
在 CLAUDE.md 寫「不要 force push」,模型大多會遵守,但「大多」不夠。Claude Code 的 PreToolUse hook 會在每次工具呼叫之前執行你的腳本,由腳本決定放行或擋下,模型沒辦法用說理的方式繞過去。
寫 hook 時最容易忽略的問題是:hook 自己出錯的時候該怎麼辦? 擋危險指令的護欄,出錯時應該擋下(fail-closed);只是提醒的 hook,出錯時應該安靜放行(fail-open)。這篇用兩支 bash 腳本說明這兩種設計。