开发效率与编程协作
我让 AI 连做 3 版小工具后,真正要写的是验收清单
连续改三版不等于变好;把可观察的验收条件写进每一版,才能判断 AI 是否真的修好了问题。
导语
同一个“会议室预约”小工具,第一版能录入,第二版加了冲突提示,第三版又补了取消按钮。每一版看上去都更完整,但直到有人把两条相同会议室、重叠时间的预约一起提交,才发现提示只在前端显示,刷新后两条记录都留下来了。问题不在 AI 有没有连做三版,而在每一版开始前没人写出“怎样算修好”。
每一版只改一个可检查的结果
第一版的输入是 10 条模拟预约和三位测试者;动作是让 AI 做录入页;输出是每人能在 60 秒内新增一条预约。验收条件写成“10 条都保存、字段不为空、没有真实个人信息”。如果只是“页面看着能用”,不能进入下一版。
第二版处理冲突。准备两条同一会议室、时间重叠的样例;动作是让 AI 增加服务端检查;输出不是红色提示,而是第二个请求返回明确失败。OWASP 要求不可信输入尽早在服务端验证;因此验收要同时检查浏览器提交和直接调用接口,两种路径都必须拒绝。
第三版处理取消。准备一条已取消和一条有效预约;动作是生成取消接口与列表状态;输出是取消后空位可再次预约、重复取消返回可理解错误。验收还要确认操作人只能取消自己的记录;访问控制不能只写在前端。

失败并不等于让 AI 再试一次
最常见的失败是把一句“还是不对,再改改”发回去。它没有输入、没有预期输出,也没有决定何时停止。GitHub 的 PR review 流程能提供反馈,却不替代你的验收标准;Copilot 的评论也不计入必需批准。
可复用验收卡:
执行顺序是:先填卡,再让 AI 改;修改后按固定输入重跑;成功和失败各通过一次才进入下一版。任何一项不通过,就回到同一版,不要叠加新功能。这个规则不适合支付、医疗或生产数据迁移的直接试错:这些任务必须先有人工设计评审与隔离环境。

来源:GitHub Copilot 代码评审;OWASP 输入校验
夜雨聆风