SuperAPI AI 工具集

hooks-manager

编程与开发

查看项目

更新于 10-15 10:02

技能介绍

用途

hooks-manager 用于创建、验证和部署 Claude Code hooks,实现事件驱动的工作流自动化。Claude Code 的 hooks 系统于 2025 年 6 月发布。该技能的目标是为代码格式化、安全门禁、可观测性和校验等场景建立自动化。资料称 hooks 将 Claude Code 从交互式转变为自动化,可减少最多 92% 的手动工作。

主要能力

该技能采用基于任务的模式,包含 8 种操作,分别对应各 hook 事件及管理功能。

可用的 8 个 hook 事件:

  • UserPromptSubmit:在 Claude 看到提示之前
  • PreToolUse:工具执行之前
  • PostToolUse:工具执行之后
  • PermissionRequest:请求权限时
  • Notification:重要事件
  • SessionStart:会话初始化
  • SessionEnd:会话清理
  • Stop:对话终止

8 种操作:

  1. 创建格式化 Hook(PostToolUse):在 AI 写入/编辑文件后自动格式化代码。示例使用 npx prettier --write "$FILE",并配置 filePatterns 与 excludePatterns。资料称可减少 92% 的样式审查时间。
  2. 创建安全 Hook(PreToolUse):在执行前拦截危险操作,如阻止修改系统文件、破坏性命令(rm -rf /、dd if)、curl/wget 等。使用结构化 JSON 输出(continue、stopReason、suppressOutput)。
  3. 创建可观测性 Hook(Notification):在重要事件时向可观测性平台发送遥测数据,示例使用 curl 发送到 Victoria Metrics 或写入日志文件或 webhook。
  4. 创建校验 Hook(PreToolUse):在工具执行前校验输入,例如写入前校验 JSON 语法(使用 jq empty)。
  5. 创建 MCP 工具 Hook(PreToolUse):细粒度控制 MCP 工具访问,支持 mcp__server__tool 模式,可拦截特定 MCP 服务器或工具。
  6. 创建综合 Hook(SessionStart):会话开始时初始化环境,加载上下文、检查 git 状态、加载环境变量、运行预检。
  7. 部署与管理 Hooks:安装、更新、移除和审计 hooks,支持全局(~/.claude/hooks/)与项目级(.claude/hooks/)部署,可列出、校验、移除或禁用 hook。
  8. 安全审计 Hooks:审查所有活动 hook 的安全问题,扫描危险命令模式、凭证泄露、JSON 结构,并生成安全报告。

使用方式

前置要求:

必需:Claude Code(2025 年 6 月后支持 hooks)、事件驱动编程基础。

建议:已安装 linter/formatter(ESLint、Prettier、Black)、安全工具(如使用安全 hook)、可观测性平台(如使用遥测 hook)。

安装示例(格式化 hook):

# JavaScript/TypeScript
npm install --save-dev prettier

# Python
pip install black

# Multi-language
npm install --save-dev prettier @prettier/plugin-python

Hook 配置示例:

{
  "event": "PostToolUse",
  "tools": ["Write", "Edit"],
  "description": "Auto-format code after Claude writes/edits files",
  "handler": {
    "command": "npx prettier --write \"$FILE\"",
    "timeout": 5000
  },
  "filters": {
    "filePatterns": ["**/*.{ts,tsx,js,jsx,py}"],
    "excludePatterns": ["node_modules/**", "*.min.js"]
  }
}

安装 hook:

# Global hook (all projects)
mkdir -p ~/.claude/hooks
echo '[above-json]' > ~/.claude/hooks/auto-format.json

# Project-specific
mkdir -p .claude/hooks
echo '[above-json]' > .claude/hooks/auto-format.json

部署与管理命令示例:

# Deploy to global (~/.claude/hooks/)
deploy-hook --global formatting-hook.json

# Deploy to project (.claude/hooks/)
deploy-hook --project security-hook.json

# List all hooks
ls -la ~/.claude/hooks/
ls -la .claude/hooks/

# Validate hook
validate-hook formatting-hook.json

# Remove hook
rm .claude/hooks/formatting-hook.json

# Or rename to .disabled
mv .claude/hooks/security-hook.json .claude/hooks/security-hook.json.disabled

适用场景

  • 自动格式化代码(Write/Edit 后的 PostToolUse)
  • 安全门禁(PreToolUse 拦截危险操作)
  • 可观测性集成(对所有工具调用发送遥测)
  • 校验强制执行(拦截无效操作)
  • 工作流自动化(事件触发动作)
  • 团队标准化(强制编码规范)

限制与注意事项

  • Hooks 同步执行(阻塞式),handler 应保持快速(小于 5 秒),使用 timeout 防止挂起;异步操作可启动后台进程并立即返回。
  • 安全最佳实践:hook 中绝不硬编码凭证、执行不可信输入、修改关键系统文件、在日志中暴露敏感数据;应校验所有输入、使用允许列表而非拒绝列表、记录安全事件、默认拒绝。
  • 结构化 JSON 输出用于高级控制:continue、stopReason、suppressOutput;简单场景可用退出码(0 继续,非零拦截)。
  • MCP 工具定位模式:mcp__(所有 MCP 工具)、mcp__server__(特定服务器所有工具)、mcp__server__tool(特定工具)。
  • 文件模式过滤器建议从包含开始,按需添加排除项。
  • 各操作的时间估算:格式化 30-45 分钟、安全 45-60 分钟、可观测性 30-45 分钟、校验 20-30 分钟、MCP 20-30 分钟、会话初始化 15-20 分钟、部署管理 30-45 分钟、安全审计 20-30 分钟。
  • 资料未提供该技能的收费、价格、平台支持范围等具体信息。