SuperAPI AI 工具集

grinding-until-pass

编程与开发

查看项目

更新于 10-16 02:43

技能介绍

Grinding Until Pass 是一个让智能体自主持续工作直到达成特定目标的技能。它的核心思路是:不要在一次尝试后就停止,而是循环执行,直到全部测试通过、构建成功或 lint 检查干净。

用途 当使用者希望 AI 智能体自动“磨”到目标达成为止时使用此技能。目标可以是测试通过、构建成功或 lint 无报错。

主要能力与步骤

  1. 定义目标命令。该命令的退出码决定成功与否,资料给出的示例如下:
  • 测试:npm test 或 npx vitest run
  • 构建:npm run build
  • Lint:npm run lint
  • 类型检查:npx tsc --noEmit
  • 全部执行:npm run lint && npx tsc --noEmit && npm test && npm run build
  1. 运行命令,并捕获输出。

  2. 如果失败,进行分析和修复:仔细阅读错误输出;识别根本原因,例如失败的测试断言、类型错误、lint 违规、导入错误等;做出最小修复,不做重构,只修复错误;然后返回第 2 步。

  3. 如果通过,则停止并报告:说明修复了什么、经过多少次迭代,并总结所做的更改。

循环规则

  • 最多 10 次迭代。若 10 次尝试后命令仍失败,则停止并报告阻碍进展的原因,说明存在需要人工介入的根本性问题。
  • 每次只修复一个问题。不要试图一次性修复所有错误;先修复第一个错误,重新运行,并观察该修复是否同时解决了下游错误。
  • 不要删除测试。如果测试失败,应修复代码使其通过;除非测试本身明显有误(例如仍在测试已被有意更改的旧行为),否则不要修改测试。
  • 不要压制错误。不要通过添加 @ts-ignore、eslint-disable 或 any 类型来消除错误,而要修复实际问题。
  • 跟踪进展。如果错误数量不降反增,应停止并重新评估方法。

适用场景

  • 大规模重构后导致多个测试失败
  • 升级依赖后引入类型错误
  • 合并带有冲突、需要解决的分支后
  • 当使用者想“直接把它变绿”,并信任智能体持续处理时

高级用法:Cursor Hooks 集成 可以通过 .cursor/hooks.json 中的 Cursor hook 自动化此流程,在智能体回合结束后触发,检查测试是否通过,若不通过则发送后续消息。资料给出的配置示例为: { "hooks": [ { "event": "stop", "command": "bash .cursor/scripts/check-tests.sh", "description": "Re-run tests after agent stops and send follow-up if failing" } ] } 该脚本会检查退出码,并在测试仍失败时返回 followup_message。

注意事项与限制

  • 此技能最适合快速测试套件。如果测试耗时 5 分钟以上,循环会变得很慢。
  • 可使用 --bail 或 --fail-fast 标志在首个失败处停止,以加快迭代。
  • 智能体会很彻底,但不具创造性。如果修复需要设计变更,则需要人工指导。
  • 官方资料未提供收费、价格、平台支持等具体信息。