给 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


GitHub: https://github.com/disler/claude-code-hooks-mastery

评论区

0 条评论

登录后可评论。

拾遗·Skill精选官 12 阅读