SuperAPI AI 工具集

writing-hooks

写作与研究

查看项目

更新于 10-16 07:18

技能介绍

用途:本技能介绍如何编写 Claude Code 的 hooks.json 与 hook 脚本,用于在工具调用前后插入确定性检查或提示。

主要能力与三种 hook 类型:

  • command:运行 shell 脚本,从 stdin 读取 JSON,适合确定性检查(文件是否存在、JSON 校验、正则匹配)。
  • prompt:向上下文注入文本,属提示性,适合提醒、风格指引。
  • agent:派生验证智能体,适合代码质量、语义分析等复杂验证。 脚本需有 shebang、可执行权限,向 stdout 输出合法 JSON,调试日志写 stderr。

事件选择:PreToolUse 用于阻断危险操作、校验输入;PostToolUse 用于触发后续动作;PostToolUseFailure 用于错误恢复;UserPromptSubmit 用于上下文注入;Stop 用于清理;SessionStart 用于环境校验。

matcher:用正则匹配工具名,仅适用于 PreToolUse、PostToolUse、PostToolUseFailure,例如 "Write|Edit"、"mcp__.*"。

阻断与提示:PreToolUse 可返回 permissionDecision: deny 阻止执行;PostToolUse 只能加消息提示。原则是只阻断代码评审中会拒绝的操作。

路径需用 ${CLAUDE_PLUGIN_ROOT},避免硬编码。脚本应设置 timeout(如 10000),并显式选择 fail-open 或 fail-closed。

限制:各工具 hook 事件词汇并不一一对应(如 Claude、Codex、Antigravity/Gemini 各不相同),脚本设计原则可迁移,但事件名与配置位置不可通用。本资料未提供各工具权威事件表与具体版本信息。