Hooks:在关键节点自动把关
这节课结束时,你会有
一道验证过的文件夹门禁 Hook
规矩文件有个天生的弱点:它是「说给它听」的——绝大多数时候它照办,但它终归是个会走神的实习生。有些规矩你不想赌概率,想要物理上不可能违反。
这就是 Hooks(钩子):在它干活的关键节点自动运行的把关脚本。规矩文件是口头纪律,Hook 是门禁闸机——不管它想不想遵守,闸机就在那里。
01钩子挂在哪:干活流程的四个关口
它干活是有节奏的:会话开始 → 每次动工具(读写文件、跑命令)→ 干完回话。Hook 就挂在这些节点上:
动手前(PreToolUse)
它每次要动文件、跑命令之前触发。最常用的关口——可以检查这个动作合不合规,不合规直接拦下。
动手后(PostToolUse)
它每次改完文件之后触发。适合自动善后:格式化、备份、记日志。
会话开始/结束(SessionStart / Stop)
开工自动注入信息(今天的待办、上次的交接),收工自动提醒或汇总。
02跟做:给重要文件夹上一道物理门禁
最实用的第一个 Hook:保护你的「成品」文件夹不被误改。还是老办法——你不用会写脚本,让它自己造:
帮我配一个 Hook:任何时候你要写入或删除 成品/ 文件夹里的文件, 一律自动拦截并提示「成品区只读,需要我手动确认」。 写好脚本、配好 settings,然后故意试着改一个成品文件, 演示给我看拦截是真的生效了。
⏺ 写入 ~/.claude/hooks/protect-finals.sh
⏺ 更新 settings.json(PreToolUse 挂载)
配好了。现在演示:尝试修改 成品/文章V3.md …
⏺ Hook 拦截:成品区只读,需要手动确认 ✋
✓ 拦截生效。以后哪怕我理解错了指令想动成品区,这道闸也会拦住我。
配好了。现在演示:尝试修改 成品/文章V3.md …
⏺ Hook 拦截:成品区只读,需要手动确认 ✋
✓ 拦截生效。以后哪怕我理解错了指令想动成品区,这道闸也会拦住我。
注意最后那句话的含金量:Hook 防的不是它「不听话」,是它「理解偏了」——门禁不关心动机,只看动作。
03再给两个常用配方
- 自动备份钩:「每次你修改 重要配置/ 里的文件之前,自动先复制一份到 backups/,文件名带时间戳」——从此手滑有后悔药;
- 完工通知钩:「每次长任务跑完,自动用系统通知提醒我」——你去干别的,活好了它喊你。
套路都一样:用人话描述「什么节点、拦什么/干什么」,让它自己写脚本自己挂。配完必做一步:让它当场演示触发一次——Hook 是安全设施,没验证过的安全设施等于没有。
04Hook 和规矩文件怎么分工
一句话判据:说了它就会照做的,写 CLAUDE.md;错一次代价大到不想赌的,上 Hook。语气偏好、格式习惯进规矩文件就够了;删除保护、机密目录隔离、发布拦截这种「一次都不能错」的,交给闸机。
05检查点
CHECKPOINT
「给客户的报价单发出前必须经我确认」——这条规矩用什么方式落地最稳?
为什么:这是「错一次就出大事」的规矩——赌它每次都记得,赌注是你的客户关系。正确做法是双保险:规矩文件让它主动遵守(99% 的情况),Hook 兜住剩下的 1%(它理解偏、上下文被挤掉、或某天你自己手滑)。安全这件事,纪律和闸机从来不是二选一。
跟做清单0/3
本课产出
一道验证过的物理门禁,守着你最重要的文件夹
从此你可以放心放权——因为最坏的情况已经被闸机焊死了。放权提速的底气,从来都来自刹车够硬。
完成后自动记录进度,随时能回来