低风险 Hooks 实战:先做提醒,不做自动修改
第一个 Hook 不应该自动改文件、删除文件或提交代码。更稳的做法是先做只读提醒,例如在高风险命令、疑似密钥、生产配置修改前提醒用户。
Hooks 很有用,也很容易用过头。新手第一个 Hook 不应该自动修改文件,而应该只做提醒,让用户先看懂 Hooks 的触发时机、输出方式和误报情况。
下面用“高风险操作提醒”做例子。
目标:
当 CC 准备执行可能高风险的操作时,提醒用户先确认风险。
第一个 Hook 的目标不是自动化越多越好,而是先建立“能触发、能解释、能回退”的基本信任。
| 目标 | 合格标准 |
|---|---|
| 能触发 | 高风险动作前有提醒 |
| 能解释 | 提醒说清楚为什么危险 |
| 不误伤 | 普通读文件和小改动不被拦 |
| 可回退 | 出问题能关闭或撤回 |
第 1 步:先判断是否真的需要 Hook
很多提醒不需要 Hook,用 CLAUDE.md 或 Skill 就够了。
请帮我判断这个需求是否适合 Hook。 需求: 当 Claude Code 准备删除文件、重置 Git、读取密钥或访问生产环境时,提醒我先确认。 请回答: 1. 这个需求适合 Hook、Skill、CLAUDE.md 还是普通提示词? 2. 如果用 Hook,应该只提醒还是阻断? 3. 可能误伤哪些正常操作? 4. 第一次验证应该怎么做才低风险? 5. 不要创建文件,只做方案评估。
如果只是“提交前帮我检查一遍”,优先 Skill;如果是“每次危险动作前都必须提醒”,才考虑 Hook。
第 2 步:设计只读 Hook
第一个 Hook 的原则:
- 不修改文件。
- 不删除文件。
- 不自动提交。
- 不访问生产服务。
- 不读取真实密钥。
- 只输出提醒或建议。
请设计一个只读 Hook 方案。 目标: 发现高风险动作时输出提醒。 高风险动作包括: 1. 删除文件或目录。 2. Git reset、clean、push、force push。 3. 读取 .env、私钥、Token 文件。 4. 访问生产数据库或生产接口。 5. 批量移动或覆盖文件。 要求: 1. 只输出提醒,不自动执行修复。 2. 说明触发时机。 3. 说明误报场景。 4. 说明如何临时关闭或回滚。 5. 不要创建文件,先输出设计。
第 3 步:创建前先审查
Hook 方案出来后,不要马上写入配置。先审查。
请审查这个 Hook 方案。 重点检查: 1. 是否会误伤正常读取文件。 2. 是否会阻断普通开发流程。 3. 是否包含危险命令。 4. 是否会读取敏感文件内容。 5. 失败时用户能不能看懂提示。 6. 是否有回滚方式。 只做审查,不要创建 Hook。
第 4 步:低风险验证
验证 Hook 不要拿真实敏感文件测。用模拟文件、模拟命令、练习项目。
请设计 Hook 验证步骤。 要求: 1. 使用低风险测试文件。 2. 不读取真实 .env。 3. 不执行真实删除。 4. 不执行 Git reset 或 push。 5. 验证提醒是否出现。 6. 验证普通操作不会被误伤。
如果提醒太频繁,先调低敏感度;如果提醒看不懂,先改提示文案。
验证结果怎么判断
| 结果 | 判断 |
|---|---|
| 危险动作触发提醒 | 合格 |
| 普通操作也频繁提醒 | 规则过宽 |
| 提醒看不懂 | 文案需要重写 |
| Hook 失败但没有说明 | 不适合上线 |
| 无法停用 | 风险过高 |
第 5 步:触发后怎么处理
Hook 触发后,不要直接批准或绕过。让 CC 解释。
刚才 Hook 触发了提醒。 请解释: 1. 触发原因是什么。 2. 你准备执行的动作是什么。 3. 是否真的属于高风险。 4. 有没有更低风险替代方案。 5. 如果我拒绝,会卡在哪里。 不要继续执行,等我确认。
适合新手的低风险 Hook 类型
| Hook 类型 | 作用 | 风险 |
|---|---|---|
| 危险命令提醒 | 删除、重置、推送前提醒 | 可能误报,需要清楚文案 |
| 疑似密钥提醒 | 写入 token/key/password 字样时提醒 | 不能读取真实密钥内容 |
| 生产配置提醒 | 修改 deploy/prod/env 文件前提醒 | 需要项目目录规则清楚 |
| 大范围修改提醒 | 修改文件数量过多时提醒 | 需要避免打断正常批量文档任务 |
不适合第一个 Hook 的事情
- 自动删除疑似敏感文件。
- 自动格式化整个项目。
- 自动提交或推送。
- 自动修改权限配置。
- 自动访问网络检查服务。
- 自动读取
.env内容判断真假。
什么时候应该升级 Hook
只有满足这些条件,才考虑从“提醒”升级到“阻断”:
- 团队已经确认规则。
- 误报率很低。
- 提示文案清楚。
- 有明确回滚方式。
- 不会阻断正常开发。
- 规则已经在多个任务里验证过。
Hook 收尾总结
请总结这个低风险 Hook 验证结果。 请说明: 1. 触发条件是否准确。 2. 是否有误报。 3. 提示文案是否清楚。 4. 是否保持只读。 5. 是否建议继续使用、调整或撤回。
验收结果
- 你知道第一个 Hook 应该只读提醒。
- 你知道创建 Hook 前要先判断是否真的需要。
- 你知道 Hook 要先设计、再审查、再低风险验证。
- 你知道 Hook 触发后要解释原因和替代方案。
- 你知道什么时候才考虑从提醒升级为阻断。