其他
让 AI 自主循环修复直到测试通过、构建成功或 lint…
当你希望 agent 自主反复修复代码,直到测试全绿、构建成功或 lint 无报错时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 52/100 ×0.15
适用场景
让 AI 自主循环修复直到测试通过、构建通用
解决思路
- 定义目标命令:即用其退出码判定成功与否的命令,例如测试用 `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`。
- 运行该命令并捕获输出。
- 若失败则分析并修复:仔细阅读错误输出,定位根因(失败的断言、类型错误、lint 违规、导入错误等),做最小修复,不要重构,只修错误,然后回到第 2 步重新运行。
- 若通过则停止并汇报:说明修复了什么、迭代了多少次,并总结所做的改动。
- 循环最多 10 次迭代:若 10 次后仍失败,停止并报告阻塞点,说明存在根本性问题需要人工介入。
- 一次只修一个问题:不要试图一次性修复所有错误,先修第一个错误,重跑,看是否连带解决了下游错误。
- 不要删除测试:测试失败就改代码让它通过;除非测试本身明显有误(在测已被有意更改的旧行为),否则不要改测试。
- 不要压制错误:不要用 `@ts-ignore`、`eslint-disable` 或 `any` 类型来消除报错,要修复真正的问题。
- 跟踪进展:如果错误数量不降反增,停止并重新评估方案。
- 可选进阶:通过 `.cursor/hooks.json` 配置 Cursor hook,在 agent 回合结束后触发 `bash .cursor/scripts/check-tests.sh`,脚本检查退出码,若测试仍失败则返回 `followup_message` 继续跟进。
- 为加快迭代,可使用 `--bail` 或 `--fail-fast` 标志在首个失败处停止。
- 注意:此方法最适合快速测试套件;若测试耗时 5 分钟以上,循环会很慢。
- 注意:agent 会彻底但缺乏创造性,若修复需要设计变更,仍需人工指导。
适用边界 · 注意事项
- 测试套件很慢(单次运行 5 分钟以上)时,循环会非常低效
- 修复需要设计层面的变更时,agent 无法自主完成,需要人工介入
- 错误数量持续增加而非减少时,说明方向有误,应停止并重新评估