SuperAPI AI 工具集

hook-developer

智能体与模型

查看项目

更新于 10-16 03:15

技能介绍

用途:为 Claude Code 开发 hooks 提供完整参考,帮助写出输入/输出 schema 正确的 hook,并用于调试 hook 的输入输出格式、了解可用字段、在 settings.json 中注册 hook,以及判断哪些 hook 能阻断、哪些只能注入上下文。

主要能力:覆盖 PreToolUse、PostToolUse、UserPromptSubmit、PermissionRequest、SessionStart、SessionEnd、Stop、SubagentStart、SubagentStop、PreCompact、Notification 等事件,说明各自触发时机、能否阻断及主要用途。hook 类型有 type: "command"(bash)与 type: "prompt"(LLM 评估)。文档给出各事件的输入与输出 JSON 结构,例如 PreToolUse 输出 permissionDecision(allow|deny|ask)、updatedInput;PostToolUse 输出 decision: "block" 与 reason;UserPromptSubmit 的 stdout 文本会加入上下文。还说明退出码行为:0 成功、2 为阻断错误(stderr 生效、stdout 被忽略)、其他为非阻断错误。

使用方式:在 settings.json 的 hooks 下按事件名注册,含 matcher 与 hooks 数组,command 可用 $CLAUDE_PROJECT_DIR 指定脚本路径并设 timeout。匹配器支持 Bash、Edit|Write、Read.、mcp__.__write.、 等,区分大小写。可用环境变量包括 CLAUDE_PROJECT_DIR、CLAUDE_CODE_REMOTE,SessionStart 可用 CLAUDE_ENV_FILE,插件 hook 可用 CLAUDE_PLUGIN_ROOT。测试可用 echo 管道向脚本传入 JSON,TypeScript 改动后需重新打包。

适用场景:创建新 hook、排查输入输出格式、设置注册、实现阻断危险文件、自动格式化、注入 git 上下文、强制测试验证等。

限制:Stop 类 hook 需检查 stop_hook_active 以防死循环;PostToolUse 字段是 tool_response 而非 tool_result;退出码 2 时 stdout 被忽略;TypeScript 源码修改不会自动生效,需重新构建。具体安装命令与更多细节资料未提供。