用途:Hook Development 是面向 Claude Code 插件的技能,用于编写事件驱动的自动化脚本(hooks),在 Claude Code 各类事件触发时校验操作、执行策略、添加上下文或集成外部工具。
主要能力:支持 PreToolUse(工具执行前校验、批准、拒绝或修改调用)、PostToolUse(对工具结果反馈、记录)、Stop 与 SubagentStop(校验任务完成度)、UserPromptSubmit(校验或补充提示)、SessionStart(加载项目上下文)、SessionEnd、PreCompact、Notification 等事件。Hook 分两类:prompt 型(推荐,用自然语言推理做上下文感知判断,支持 Stop、SubagentStop、UserPromptSubmit、PreToolUse)与 command 型(执行 bash 命令做确定性检查)。
使用方式:插件在 hooks/hooks.json 中用包装格式配置,需包含 hooks 字段,description 可选;用户设置 .claude/settings.json 用直接格式,事件位于顶层。命令中应使用 ${CLAUDE_PLUGIN_ROOT} 保证可移植。matcher 支持精确、多工具(Read|Write|Edit)、通配 * 与正则,且区分大小写。Hook 通过 stdin 接收 JSON,含 session_id、cwd、hook_event_name 等字段,可用 $TOOL_INPUT、$USER_PROMPT 等访问。输出支持 permissionDecision、decision、systemMessage 等;退出码 0 为成功,2 为阻断错误。
适用场景:文件写入与 Bash 命令安全校验、任务完成度检查、会话上下文加载、临时启用的严格校验等。
限制:Hook 在会话启动时加载,修改配置需重启 Claude Code,无法热替换;匹配的 Hook 并行执行,彼此看不到输出且顺序不确定;需校验输入、引用变量、设置合理超时,避免硬编码路径与记录敏感信息。调试可用 claude --debug,并用 /hooks 查看已加载 Hook。