SuperAPI AI 工具集

hook-development

编程与开发

查看项目

更新于 10-16 04:32

技能介绍

用途:该技能面向 Claude Code 插件的钩子开发。钩子是响应 Claude Code 事件的自动化脚本,可用于校验操作、执行策略、添加上下文以及把外部工具接入工作流。

主要能力:支持在工具执行前校验调用(PreToolUse)、对工具结果作出反应(PostToolUse)、执行完成标准(Stop、SubagentStop)、加载项目上下文(SessionStart),并覆盖开发生命周期中的多种自动化场景。

钩子类型:提示型钩子(推荐)用 LLM 做上下文感知判断,需返回 {"ok": true, "reason": "..."},默认模型为 Haiku,支持 Stop、SubagentStop、UserPromptSubmit、PreToolUse;命令型钩子执行 bash 命令做确定性检查,如 bash ${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh;智能体型钩子用于需要工具访问的多步验证,支持 Stop、SubagentStop。

配置格式:插件在 hooks/hooks.json 中使用 {"hooks": {...}} 包装格式,description 可选;用户设置在 .claude/settings.json 中直接以事件为顶层键。也可在技能或智能体 YAML frontmatter 中定义作用域钩子,支持 PreToolUse、PostToolUse、Stop,随组件生命周期激活与停用。

事件与匹配:涵盖 PreToolUse、PermissionRequest、PostToolUse、PostToolUseFailure、UserPromptSubmit、Stop、SubagentStart、SubagentStop、SessionStart、SessionEnd、PreCompact、Notification 等。matcher 支持精确、多工具(Read|Write|Edit)、通配 * 与正则,且区分大小写。

用法要点:钩子通过 stdin 接收 JSON 输入,含 session_id、cwd、hook_event_name 等字段;命令钩子可用 $CLAUDE_PROJECT_DIR、$CLAUDE_PLUGIN_ROOT、$CLAUDE_ENV_FILE 等环境变量,建议始终用 ${CLAUDE_PLUGIN_ROOT} 保证可移植。退出码 0 表示成功,2 表示阻断错误并将 stderr 反馈给 Claude。

限制:钩子在会话启动时加载,修改配置后必须重启 Claude Code 才能生效,无法热替换;所有匹配钩子并行执行,彼此看不到输出且顺序不确定,需按独立设计。调试可用 claude --debug 或 claude --verbose,并用 /hooks 查看已加载钩子。安全上应校验输入、防范路径穿越与敏感文件、引用变量加引号并设置合理超时。