SuperAPI AI 工具集

claude-hook-writer

智能体与模型

查看项目

更新于 10-16 03:46

技能介绍

该技能用于创建或改进 Claude Code 钩子,目标是让钩子安全、可靠、高性能并符合最佳实践。适用场景包括设计新钩子、审查既有钩子代码、排查钩子故障、优化慢钩子、处理敏感数据的安全加固,以及把钩子发布为 PRPM 包。

核心原则:钩子以用户权限自动执行,可读写或删除用户可访问的任何文件,因此所有输入都必须校验与清洗,钩子经 stdin 接收 JSON,不可盲目信任;可靠性优先于功能,边界情况(Unicode 文件名、路径空格、工具缺失)必然发生,需提前测试;性能重要,钩子会阻塞操作,目标是将 PreToolUse 钩子控制在 100ms 以内,耗时操作放后台;需优雅失败,显式处理错误、记录失败并返回有意义的退出码。

设计前需明确:针对哪个事件(PreToolUse、PostToolUse、UserPromptSubmit、SessionStart、SessionEnd、Notification、Stop/SubagentStop、PreCompact);匹配哪些工具,匹配器应具体, "*" 仅用于日志或指标;需要哪些输入字段,使用前先校验字段存在;选择命令钩子(毫秒级、确定性)还是提示钩子(2-10 秒、依赖 LLM,仅用于关键安全检查);退出码语义:0 成功继续,2 阻止操作并把错误展示给 Claude,1 或其他为非阻塞错误仅记录。

安全要求包括:输入校验(如 set -euo pipefail、用 jq 解析并校验字段)、路径清洗(限制在 $CLAUDE_PROJECT_DIR 内、检测 .. 目录穿越)、敏感文件保护(.env、.pem、.key、credentials、.git/、.ssh/ 等)、所有变量加引号、脚本使用绝对路径或 ${CLAUDE_PLUGIN_ROOT}。可靠性方面需检查依赖与文件是否存在、设置显式 timeout(默认 60 秒)、把错误写入 stderr 或日志文件而非 stdout(除非希望出现在 transcript 中)、覆盖空格与 Unicode 路径、畸形 JSON、缺失字段等边界用例。性能方面应使用具体匹配器、按文件哈希缓存结果、避免网络调用、只对改动文件做重型 lint,并用锁文件对昂贵操作去重。

技能提供格式化保存、拦截敏感文件、命令日志、基于提示的安全检查等模板,以及手动测试、边界用例测试与集成测试方法。发布为 PRPM 包时包含 prpm.json(format 为 claude、subtype 为 hook)、hook.json、scripts 与 README,常用命令有 prpm test、prpm publish 以及带 patch/minor/major 的版本递增。常见错误包括变量未加引号、信任输入、长时间阻塞、退出码用错、向 stdout 输出日志等。

该技能的具体收费、价格与平台支持范围暂未提供。