SuperAPI AI 工具集

prove-it

测试与质量

查看项目

更新于 10-25 13:33

技能介绍

prove-it 是一项面向编码智能体的行为规范技能,目标是让 agent 在交差时提供可核验的证据,而不是仅凭一句“做好了”结束任务。资料给出的适用时机有三类:agent 准备交差时;用户为同一件事第二次纠正 agent(例如“又错了”“说过多少遍”“怎么让它别再犯”);以及需要写测试或清理无用测试时。

交差前的验证流程:先运行项目的测试命令。只有当现有测试确实测不到本次改动的行为时,才补一个测试;修 bug 不必每次都配回归测试。如果改动是用户看得见的(网页、界面),要写一个 Playwright 浏览器测试,在真实浏览器里把改过的流程点一遍,控制台一报错就算失败,每一步截一张图存进项目。未安装浏览器时可执行 npx playwright install chromium,或直接使用本机 Chrome(channel: 'chrome');如果 agent 自带浏览器工具,也可以直接使用。任何一项没通过,先修好再交差。

交差格式:按固定结构汇报,包括“做了什么”(一句话)、“测试”(命令 → 通过 N,失败 0)、“截图”(路径)、“没验证到的”(哪些、为什么;没有就写“无”)。

被纠正后的处理:先修好这次的错,再判断下一个 agent 只看它打开的那个文件、照着最近的例子抄、走最短的路,是否还会再犯。如果会,就在它犯之前拦住。同时翻看最近的提交和 AGENTS.md,把同类历史错误一起拦掉。拦截手段从强到弱排列,前面的用得上就不往后选:一是让它没地方犯,例如一件事只留一个地方负责、一种做法,删掉 agent 会照抄的旧写法,把需要手动同步的几份清单合成一份;二是让它一犯就报错,类型、lint、测试、校验脚本都可以,报错信息直接写该改用什么;三是让人一眼看见,好不好看、顺不顺手机器判断不了,就交差时附截图给人看;四是写进 AGENTS.md,只留给需要判断的事,因为 agent 跳过这类规则什么都不会报错。

检查有效性验证:加了一道检查后,要拿这次真实犯过的错去试——把错放回去,检查必须报错;改回来,必须通过。从来没报过错的检查等于没加。最后在 AGENTS.md 的规则表里记一行,格式为“规则 | 由什么拦住”,例如“交差前跑通测试,附截图 | npm test + 浏览器截图”。如果规则表里本来就有这条、却没有东西拦住,说明是重犯,这次就往强的那一端提一档;错已经不可能再犯了,就把那一行删掉。

写测试的原则:测试只守用户感受得到的行为,比如存进去的能读出来、点了按钮页面会变。三类垃圾测试应改掉,改不了就删:假装测试,要守的那部分被测试替身(mock)顶掉了,例如测数据能否存储却连的是假数据库,真数据库断了它照样通过;自己考自己(tautological),标准答案是照着代码现在的输出抄的,代码错了答案也跟着错;死抠细节(implementation-coupled),查的是变量名、某个内部函数调了几次,功能没变只是换个写法就失败。判断办法是:把它要守的功能故意弄坏,这个测试应该失败;只给内部变量改个名,它应该照样通过。做不到的就是垃圾测试。