小互 · AI 学院ACADEMY
课程/C01/第 3.3 课

Hooks:在关键节点自动把关

上手L3 · 16 分钟
这节课结束时,你会有
一道验证过的文件夹门禁 Hook

规矩文件有个天生的弱点:它是「说给它听」的——绝大多数时候它照办,但它终归是个会走神的实习生。有些规矩你不想赌概率,想要物理上不可能违反

这就是 Hooks(钩子):在它干活的关键节点自动运行的把关脚本。规矩文件是口头纪律,Hook 是门禁闸机——不管它想不想遵守,闸机就在那里。

01钩子挂在哪:干活流程的四个关口

它干活是有节奏的:会话开始 → 每次动工具(读写文件、跑命令)→ 干完回话。Hook 就挂在这些节点上:

动手前(PreToolUse)

它每次要动文件、跑命令之前触发。最常用的关口——可以检查这个动作合不合规,不合规直接拦下。

动手后(PostToolUse)

它每次改完文件之后触发。适合自动善后:格式化、备份、记日志。

会话开始/结束(SessionStart / Stop)

开工自动注入信息(今天的待办、上次的交接),收工自动提醒或汇总。

02跟做:给重要文件夹上一道物理门禁

最实用的第一个 Hook:保护你的「成品」文件夹不被误改。还是老办法——你不用会写脚本,让它自己造:

帮我配一个 Hook:任何时候你要写入或删除 成品/ 文件夹里的文件,
一律自动拦截并提示「成品区只读,需要我手动确认」。
写好脚本、配好 settings,然后故意试着改一个成品文件,
演示给我看拦截是真的生效了。
终端 — claude
⏺ 写入 ~/.claude/hooks/protect-finals.sh ⏺ 更新 settings.json(PreToolUse 挂载)
配好了。现在演示:尝试修改 成品/文章V3.md …
⏺ Hook 拦截:成品区只读,需要手动确认 ✋
✓ 拦截生效。以后哪怕我理解错了指令想动成品区,这道闸也会拦住我。

注意最后那句话的含金量:Hook 防的不是它「不听话」,是它「理解偏了」——门禁不关心动机,只看动作。

03再给两个常用配方

  • 自动备份钩:「每次你修改 重要配置/ 里的文件之前,自动先复制一份到 backups/,文件名带时间戳」——从此手滑有后悔药;
  • 完工通知钩:「每次长任务跑完,自动用系统通知提醒我」——你去干别的,活好了它喊你。

套路都一样:用人话描述「什么节点、拦什么/干什么」,让它自己写脚本自己挂。配完必做一步:让它当场演示触发一次——Hook 是安全设施,没验证过的安全设施等于没有。

04Hook 和规矩文件怎么分工

一句话判据:说了它就会照做的,写 CLAUDE.md;错一次代价大到不想赌的,上 Hook。语气偏好、格式习惯进规矩文件就够了;删除保护、机密目录隔离、发布拦截这种「一次都不能错」的,交给闸机。

05检查点

CHECKPOINT
「给客户的报价单发出前必须经我确认」——这条规矩用什么方式落地最稳?
为什么:这是「错一次就出大事」的规矩——赌它每次都记得,赌注是你的客户关系。正确做法是双保险:规矩文件让它主动遵守(99% 的情况),Hook 兜住剩下的 1%(它理解偏、上下文被挤掉、或某天你自己手滑)。安全这件事,纪律和闸机从来不是二选一。
本课产出

一道验证过的物理门禁,守着你最重要的文件夹

从此你可以放心放权——因为最坏的情况已经被闸机焊死了。放权提速的底气,从来都来自刹车够硬。

完成后自动记录进度,随时能回来