SuperAPI AI 工具集

Hook Development

编程与开发

查看项目

更新于 10-15 22:10

技能介绍

用途:本技能面向 Claude Code 插件开发,指导创建事件驱动自动化脚本(钩子),用于校验操作、执行策略、注入上下文,并把外部工具接入工作流。

主要能力:可在工具执行前校验调用(PreToolUse)、对工具结果作出反应(PostToolUse)、执行完成标准(Stop、SubagentStop)、加载项目上下文(SessionStart),以及自动化开发生命周期中的流程。支持两类钩子:基于提示词的钩子(推荐,适合需要上下文推理的复杂判断,支持 Stop、SubagentStop、UserPromptSubmit、PreToolUse)与命令钩子(执行 bash 命令,适合确定性校验、文件系统操作和外部工具集成)。

使用方式:插件中在 hooks/hooks.json 定义钩子,使用包装格式(包含 hooks 字段),用户设置则在 .claude/settings.json 使用直接格式。事件可选 PreToolUse、PostToolUse、Stop、SubagentStop、UserPromptSubmit、SessionStart、SessionEnd、PreCompact、Notification。所有钩子通过 stdin 接收 JSON 输入,可读取 $TOOL_INPUT、$TOOL_RESULT、$USER_PROMPT 等字段,并按约定返回结构化 JSON 输出与退出码(0 成功、2 阻塞错误)。命令钩子中应使用 ${CLAUDE_PLUGIN_ROOT} 保证路径可移植,并可使用 $CLAUDE_PROJECT_DIR、$CLAUDE_ENV_FILE、$CLAUDE_CODE_REMOTE 等环境变量。

适用场景:为插件添加文件写入与命令执行的安全校验、任务完成度检查、会话上下文加载、提示词校验与安全提示、调试用临时钩子等。

限制:钩子在会话启动时加载,修改配置后必须重启 Claude Code 才能生效,无法热替换;匹配钩子并行执行且顺序不确定,钩子之间看不到彼此输出;需注意输入校验、路径安全、变量加引号与合理超时设置。详细参考见 references/ 与 examples/ 目录,官方文档为 https://docs.claude.com/en/docs/claude-code/hooks。