给 Claude Code 装上 13 道拦截:这个 Skill 把 Hooks 讲透了
Claude Code 默认会答应一切——直到你给它装上 13 个生命周期拦截点。这个 Skill 把 hooks 这件事一次性讲到会用。
它叫 Claude Code Hooks Mastery,disler 出品,3.9K stars、630 forks,昨天还在更新——本质是「如何用确定性手段控制一个不确定性模型」的工程范本。Python 写,搭配 Astral UV 单文件脚本架构。
13 个钩子,一个不漏
Anthropic 官方在 Claude Code 里埋了 13 个 hook 生命周期事件,但绝大多数教程只讲 PreToolUse / PostToolUse 两个。这个 Skill 把全部 13 个都拍了真机:SessionStart / UserPromptSubmit / PreToolUse / PermissionRequest / PostToolUse / PostToolUseFailure / Notification / SubagentStart / SubagentStop / Stop / SessionEnd / PreCompact / Setup——每个事件对应一个 JSON payload,每个 payload 都配了示例脚本。
确定性 ≠ 拦死
Hooks 的关键不是「全部 deny」,而是分级控制,Skill 给出的范例分四档:
- 环境提示与上下文注入(SessionStart / PreCompact):在启动时拉项目 CLAUDE.md、commit 历史、最近一次 PR diff,Claude 一上来就知道你在干啥。
- 工具前置安全网(PreToolUse):拦
rm -rf、cat .env、curl | bash这一类,但允许普通读写——保留速度,不让你天天按确认键。 - 工具后置反馈(PostToolUse):每次 Bash / Edit 之后,自动跑 ruff / eslint / 单元测试,失败就把错误直接塞回 Claude 上下文,让它自己修。
- 异步通知(Notification + ElevenLabs TTS):Claude 在等输入、写完了、跑挂了,统统发到语音 / 飞书 / Slack,你不用干盯着。
三个进阶玩法
Skill 不只是讲 hook,还演示了三个 hooks 触发的高阶模式:
- Sub-Agents 编排:用 SubagentStart / SubagentStop 包住子任务,父进程对每个子 agent 的输入输出做 schema 校验,失败就 retry。
- Meta-Agent:让一个 meta agent 监看主 Claude 的产出,发现漂移就纠偏——相当于给模型配了个 QA。
- Team-Based Validation:三个 agent 并行出方案,hooks 把三份结果汇总、投票、给分歧打分,用于 code review、设计方案对比。
怎么用
Clone 之后重点看 .claude/hooks/ 目录——里面每一类事件都有 *.py 单文件脚本(UV 一行依赖搞定,零污染)。把 hooks/hooks.json 拷进你自己的 ~/.claude/hooks/,重启 Claude Code,hook 即生效。要加 ElevenLabs TTS 通知就填 API key,不要就注释掉那行——配置非常模块化,不会一装就重。
适合谁
已经在用 Claude Code,但经常被它「过度热情」坑的人(乱删文件、瞎改配置、半夜跑长任务)——hooks 给你装一道硬护栏。要把 Claude Code 部署到团队 / 企业环境的,这套 hooks 直接当 baseline。最后,任何想研究「怎么给 LLM agent 加可观测性」的,这是开源圈最完整的样例库。
👇 仓库:
https://github.com/disler/claude-code-hooks-mastery
评论区
登录后可评论。