Hooks = 自动化规则
🎯 学完这课你能
- 理解 Hooks 的四种执行方式(command/http/prompt/agent)
- 知道最常用的生命周期事件(Pre/PostToolUse 等)
- 判断什么场景适合写 Hook
📊 你的 CC 数据说:你的最大痛点之一是"外部 API 权限卡住整个 session"(4 次外部阻塞)。这正好是 Hook 能解决的——比如写一个 PreToolUse Hook,在 CC 调用飞书 API 之前自动检查权限和网络连通性。你的 Prisma 版本冲突问题也可以用 Hook 在部署前自动验证。
你有没有想过:每次 CC 改完代码,你都想让它自动跑一下测试?或者每次创建新文件,自动加个文件头注释?
Hooks 就是做这个的——在 CC 的特定操作前或后自动执行你定义的规则。
Hooks = 公司里的自动化流程
想想你们 HR 系统里的自动化:
- 新员工入职 → 自动开通邮箱、飞书、门禁
- 员工离职 → 自动关闭权限、清理工位
- 报销审批通过 → 自动打款
CC 的 Hooks 是一样的逻辑:
- CC 保存文件后 → 自动跑代码检查
- CC 创建 worktree 时 → 自动安装依赖
- CC 执行命令前 → 自动检查是否安全
Hooks 的工作原理
CC 的生命周期事件
CC 有 21 种事件可以挂载 Hook。最常用的几个:
CC 使用工具前触发。比如在 CC 执行 Bash 命令前,检查命令是否安全。
HR 类比:员工提交出差申请前,自动检查预算是否充足。
CC 使用工具后触发。比如 CC 编辑完文件后,自动跑 lint 检查代码格式。
HR 类比:合同签署后,自动归档到文档系统。
创建/删除 Worktree 时触发。可以自动安装依赖、复制环境变量等。
HR 类比:新部门成立时,自动配备办公设备。
你发消息后触发。可以自动分析你的需求、注入上下文信息。
HR 类比:收到员工申请后,自动查询该员工的历史记录附在申请后面。
Hook 的四种执行方式
执行一条 shell 命令。最常用。
例:npm run lint
调用一个 HTTP 接口。
例:通知飞书机器人
注入额外的提示词给 CC。
例:自动提醒"检查安全性"
触发一个 Agent 去处理。
例:自动让 Agent 做代码审查
怎么配置 Hook
Hooks 配置在 ~/.claude/settings.json(全局)或项目的 .claude/settings.json(项目级)中:
实用 Hook 场景
PostToolUse + Edit → 跑 npm run lint。保证代码风格一致。
PreToolUse + Bash(git commit) → 先跑 npm run build,失败就阻止提交。
UserPromptSubmit → 自动读取相关的 CLAUDE.md 和项目状态,附在你的消息后面。
📝 小测验
你想让 CC 每次编辑文件后自动跑代码格式化。应该用哪个事件?
📝 小测验 2
以下哪个 HR 流程最像 "PreToolUse" Hook?