📄 一句话概括
建议靠自觉,强制靠机制;凡是【忘了会造成实际损失】的事,就该交给 hook,而不是写进提醒里。
📝 本节和前面几节的关系
上一节讲做法,这一节讲底线。hook 和 skill 的差别不是强弱,是【靠不靠你记得】。
一、它和 skill 的本质差别
skill 是建议:它被触发时可能被忽略、可能被改写、可能这次做下次不做。 hook 是强制:到点了就跑,跑不跑由不得你。 所以两者不是替代关系——skill 管怎么做,hook 管必须做。
二、什么时候必须用 hook
只有一条判据:忘了会造成实际损失。 具体一点:忘一次会留下垃圾、会把不该发的发出去、会留下你以后要找半小时的烂摊子。 反过来,【忘了只是做得不够好】的事,别上 hook——强制太多,人就麻木了。
三、三个值得先挂的检查
提交前检查:有没有弯引号、有没有残留待办、有没有漏改一半的文件。 交付前检查:临时文件清没清、有没有把不该改的目录改了。 红线检查:这一步谁都不该有权跳过。 本节的演示给了一个能真跑的三项检查器——四个样本文件,过两个、拦两个。
四、一个提醒
hook 也会误伤:检查项写得太严,它会把正常流程卡住。 所以挂之前先在小范围试,别一上来就卡所有动作。 判据是:这个检查如果误报,代价大不大。大就宽松点,小就严一点。
五、动手 Demo:hook——不是建议,是强制执行
下面做一个真能跑的检查器,对四个样本文件过一遍。
def check(name, body):
bad = []
if not body.startswith(u"---"):
bad.append(u"缺 frontmatter")
if u"\u201c" in body or u"\u201d" in body:
bad.append(u"弯引号")
if u"TODO" in body:
bad.append(u"残留待办")
return bad
实跑输出:
--------------------------------------------------------------------
hook——不是建议,是强制执行
--------------------------------------------------------------------
这一段是本章最实用的东西。下面做一个真能跑的检查器:
检查项 命中就说 为什么它是强制的
-----------------------------------------
good.md 通过
bad_quote.md 拦下:弯引号
bad_fm.md 拦下:缺 frontmatter
bad_todo.md 拦下:残留待办
三个检查项:缺 frontmatter、弯引号、残留待办。
为什么它必须是【强制】的而不是建议:
建议靠自觉 —— 你总会忘一次
强制靠机制 —— 想忘也忘不了
**凡是【忘了会造成实际损失】的事,就该交给 hook,而不是写进提醒里。**
四个样本:过两个、拦两个——检查器不是摆设,它真的会拦。 下面那句是本节的落点:建议靠自觉,强制靠机制,想忘也忘不了。
30 秒实验
- 选一件你确实忘过的事(不是假想),写成一条 hook。
- 在小范围试一两次,确认不会误伤正常流程,再挂到全局。
常见误区
- 把所有规矩都做成 hook。强制太多,人就麻木——只剩真会出事的那几件。
- hook 写得太严导致天天误报。误伤一次,你就懒得看它了。
自测三问(点开对答案)
1. hook 和 skill 的本质差别是什么? —— hook 是强制,到点就跑;skill 是建议,可能被忽略。 2. 什么时候才该上 hook? —— 忘了会造成实际损失的事;忘了只是不够好的事别上。 3. 为什么 hook 要先小范围试? —— 检查太严会误伤正常流程;误伤一次你就懒得看它了。- ☐ 下一节(7.4 MCP:让Claude Code看到外面的世界)
相关笔记
- 🤖 Agent+RPA实战 · 索引 — 自动化里的强制检查点
- 🧡 Claude Code橙皮书 · 索引