SuperAPI AI 工具集

agent-hook-guard

编程与开发

查看项目

更新于 10-20 22:39

技能介绍

用途与定位 agent-hook-guard 解决的是这样一个问题:写在 AGENTS.md 里的规则,只有当模型“记得”时才会被执行;而钩子(hook)是 agent 工具在工具调用前后或回合结束时自动运行的检查,每次都会生效。该技能的目标是“一个钩子对应一个问题”,而不是一次堆叠多条规则。

主要能力与工作流程

  1. 选择一个问题:从 .scratchpad/<slug>/ 下的 redteam-report.md、verification-report.md、browser-test-report.md 或回顾记录中挑选一个钩子能够拦住、且最容易解释的问题。理想候选应满足:可由程序判断而无需主观判断(如文件放错目录、提交含失败测试、修改生成文件、禁用命令);在本项目中发生过或可能再次发生;检查可在数秒内完成。若首个候选需要冗长解释,应改选更简单的问题。
  2. 写之前先展示:在对话中给出问题及其发现编号与证据、钩子运行时机(工具调用前、编辑后、回合结束)与检查内容、检查失败时 agent 看到什么(阻断或必须处理的警告),并用示意图说明流程,然后征求同意;未获同意不写钩子。
  3. 编写并强制触发错误:将钩子写入项目的 agent 配置而非用户个人设置(除非用户要求);把逻辑放在仓库内的小脚本中,便于人工阅读、测试和手动运行。分别用必须失败和必须通过的输入手动运行脚本,并针对接近坏例但实际正确的输入排查误报,因为会误拦正常工作的钩子往往会被用户关闭。最后提交钩子及其脚本。
  4. 在真实运行中验证:钩子只有在 agent 工具实际调用时才有效。开启一段简短的 agent 会话(新会话或无头运行),请求执行钩子应当拦截的动作并展示输出;若工具未调用钩子,则修复配置后重试。
  5. 报告:在 .scratchpad/<slug>/hook-report.md 中记录问题及来源、示意图、涉及文件、强制错误结果、真实运行输出,以及钩子未覆盖的情况。

适用场景 适用于已有多类评审报告或回顾结论、希望把其中一条可自动检查的问题固化为编程智能体钩子的项目,例如 Claude Code 的 settings 文件钩子或监听工具事件的 OpenCode 插件。

限制与注意事项 该技能明确区分 agent 钩子与 git 钩子:git 钩子不是 agent 钩子,只有在用户要求时才使用 git 钩子或 CI。若项目的 agent 没有钩子机制,应说明并提出测试或命令作为替代。钩子应聚焦单个问题,且只覆盖报告中所列范围,未覆盖情况需在报告中说明。