用途:指导为 Claude Code 插件创建钩子,使其接入 Claude Code 事件系统,在会话生命周期中自动执行校验、约束与上下文注入。若用户意图不匹配,应改走 /plugin-creator:plugin-lifecycle。
主要能力:提供语言选择启发式(默认 Node.js,因 Claude Code 存在即暗示 Node.js 可用;项目有明显运行时如含 pyproject.toml 的 Python 项目则用该语言;Node.js 脚本用 .mjs 或 .cjs,不用 .js);给出 Node.js 钩子模板与关键规则(用 process.stdin.on('data')/'end' 异步读取,成功 exit 0、阻断 exit 2,stdout 写 JSON,提前退出也要输出 {},调用子进程时抑制 stderr);说明 hooks.json 结构(位于插件目录 hooks/hooks.json,路径用 ${CLAUDE_PLUGIN_ROOT});列出事件选择(PreToolUse、PostToolUse、Stop、SessionStart、UserPromptSubmit 等)与匹配器规则;区分 command、prompt、agent、http 四种钩子类型及超时建议;给出各事件的 JSON 输出格式、退出码语义、安全规则(引号包裹变量、拒绝 .. 路径穿越、用 execFileSync 而非 execSync、跳过敏感文件)与调试方法(claude --debug、/hooks)。
使用方式:先确定事件与行为,选择钩子类型;command 类型创建脚本并直接测试(如 echo '{"tool_name":"Write",...}' | node ./hooks/my-hook.mjs),验证 JSON 后用 python3 -m json.tool 校验 hooks.json,重启会话并在 claude --debug 下测试。
适用场景:为插件添加确定性校验、阻断危险操作、注入上下文、会话开始/结束处理等。
限制:钩子应随其约束的插件发布并仅对该契约生效,需用 opt-in 标记或插件命名空间限定范围;不要对仍在生成的提示做形状门禁,应检查已发生的结果;命令、路径、事实或跨插件引用须在各环境存在或内联;钩子类型与超时默认值等细节以官方文档为准,资料未提供的内容暂未提供。