Claude Code 的自動觸發規則——Claude 觸發某事件時自動執行的程式,不需手動同意。

三種 Hook 類型

類型 觸發時機 用途
PreToolUse Claude 用工具 驗證、權限檢查
PostToolUse Claude 用工具 自動格式化、跑測試
Stop 任務完成 清理、報告

範例 1:自動 Prettier 格式化

{
  "name": "auto-format",
  "trigger": "PostToolUse",
  "tools": ["write_file"],
  "script": "prettier --write {file_path}"
}

範例 2:停止前跑測試

{
  "name": "test-before-stop",
  "trigger": "Stop",
  "script": "npm test",
  "failMessage": "❌ Tests failed"
}

範例 3:危險指令攝截

{
  "name": "block-rm-rf",
  "trigger": "PreToolUse",
  "tools": ["bash"],
  "condition": "command.contains('rm -rf')",
  "block": true
}

為什麼用 Hook

  1. 強制紀律:每次寫檔都格式化
  2. 降低錯誤:commit 前必跑測試
  3. 保護:危險指令自動攝截
  4. 客製化:每個專案不同規則

對 PAM 的應用

相關概念