官方教程中文版扩展与自动化
使用 Hooks
用 Claude Code Hooks 在生命周期事件上执行格式化、阻断、通知和审计。
Hook 是 Claude Code 的确定性自动化机制。它在特定生命周期事件发生时运行 shell command、HTTP request、prompt 或 subagent。
和 prompt 规则不同,Hook 不是“请求 Claude 记住”,而是在事件发生时直接执行。适合必须每次都发生的动作。
适合自动化什么
官方文档给出的常见模式包括:
- Claude 等待输入时发桌面通知。
- Edit / Write 后自动格式化。
- 阻止修改受保护文件。
- compaction 后重新注入上下文。
- 审计配置变化。
- 目录或文件变化后重新加载环境。
- 特定 permission prompt 自动批准。
最小例子
macOS 上添加 Notification hook:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}配置后用 /hooks 查看。官方强调 /hooks 菜单是只读浏览器;新增、修改、删除 hook 还是编辑 settings JSON,或让 Claude 帮你改配置文件。
Hook 和 Skill 的边界
Skill 适合需要模型推理的流程,例如发布 checklist、代码审查说明、API 风格指南。
Hook 适合不应依赖模型判断的动作,例如:
- 每次编辑后跑 formatter。
- 禁止改
.env。 - 会话结束后写审计日志。
- 等待输入时发通知。
如果某条规则必须严格执行,用 Hook;如果只是给 Claude 一个工作方法,用 Skill。
风险边界
Hook 会自动运行命令。配置时要避免把高风险动作做成无确认自动化,例如删除文件、发布生产、推送远端、修改凭据。Hook 越靠近写操作,越要小心 matcher 和命令范围。