SuperAPI AI 工具集

test-fix-loop

测试与质量

查看项目

更新于 10-16 06:43

技能介绍

用途:test-fix-loop 是 cooking-routines 系列中体量最小的技能,用于让智能体在无人监督下反复执行“修复—重跑”循环,直到失败的测试变绿或触发终止条件。它只编辑工作区文件,不负责提交或推送。

主要能力:接收一个或多个失败测试命令与一个标记文件;cooking 的 Stop hook 会在每轮结束后返回退出码 2,使智能体持续迭代;迭代计数达到 10 时由 Stop hook 硬性封顶;终止时需删除标记文件与迭代计数文件。

使用方式:先确认工作区干净(git status --short 无输出),或接受循环会修改工作区文件;确定失败测试命令,例如 npm test -- failing-test.spec.ts、bun test path/to/test、pytest tests/foo.py::test_bar;创建带 PID 的标记文件:mkdir -p ~/.claude/cooking,PID=$$,START_EPOCH=$(ps -p $PID -o lstart= | sed 's/^ *//;s/ *$//'),printf '{"start_epoch": "%s"}' "$START_EPOCH" > ~/.claude/cooking/active-$PID;然后指示智能体在 cook 模式下运行该测试并修复至通过。终止时执行 rm -f ~/.claude/cooking/active-$PID ~/.claude/cooking/iter-$PID。

终止条件:测试命令退出码为 0;迭代次数达到 10;智能体判定失败源于真实设计缺陷(此时写简短说明并退出);标记文件被删除。

适用场景:单元或集成测试失败且修复是机械性的(更新断言、补导入、简单重构);希望智能体自主迭代至通过;明确不希望把修复发布到任何地方。

限制与反模式:不要为“变绿”而压制失败断言或删除测试;无法通过时应写说明退出;不要在脏工作区上无警告运行;不适用于每轮耗时数分钟的端到端或浏览器测试,此类情况应改用 investigation-loop。验证方式:/cook-status 应显示标记处于活动状态,终止后消失,迭代计数文件应不超过 10。相关组件包括 hooks/cooking/stop-hook.sh、/cook-status 及同级技能 investigation-loop、cross-repo-refactor、dreaming-consolidator。