AI交付界面代码时应附验证证据
文章要求Agent交付产物、关键决策与假设,以及简短的验证状态,并先定义可观察的验收条件。通过区分启发式审查、自动检查和人工测试等证据层级,限制每项结论能够支持的范围。
AI 深度解读
AI agent 改完表单,回复「已完成,支持无障碍、响应式和移动端」,这些结论就算成立了吗?代码写出来了,和这些能力经过检查,是两件事。原文讨论的正是 UI 工作最容易被省略的一步:交付时交代证据。
作者提出,交付物之外,还要附上关键决策、假设和验证状态。它没有证明这套流程能节省时间,但给出了一个实用办法:让接手的人看清哪些已经检查、哪些仍是推测,以及下一步该测什么。
「完成了」为什么不能当作验收结果
AI agent 很容易把预期效果写成事实:看到错误提示的代码,就宣称表单易用;看到响应式样式,就宣称移动端可用。问题在于,这些描述没有交代检查过程。
Design Decision Method 把「交付与验证」放在第 6 步,要求 agent 一起交付三样东西:用户要求的产物、影响结果的决策与假设,以及简短的验证状态。产物可以是规格说明、设计稿、原型或代码。
验证前,还要先定义几个可观察的验收标准。「表单体验好」太模糊,「提交失败后,已填写的姓名和邮箱仍然保留」就能实际检查。
交付说明要回答的,不只是做了什么,还包括凭什么认为它成立。
这套方法有两条明确底线:不能编造测量结果;没有测试过,就写「not tested」。设计稿可以展示页面路径与状态,却不能证明真实用户的任务完成率。
一个注册表单,应该怎样交代检查结果
原文用重建 example.com 注册表单演示交接方式。页面只有姓名、邮箱、密码三个字段,并提供清楚的错误修正入口。下面是示范记录,不是作者公布的一次真实测试报告。
先写决策:错误同时出现在字段旁和页面顶部的汇总区域;发生错误后保留已输入内容;邮箱占位符使用 name@example.com。再写假设:需求没有要求社交登录,因此没有加入。
接下来,把验收标准与证据逐条对应:
- 「校验失败后保留有效输入」标为 Manual test:使用不合要求的密码提交,确认姓名和邮箱仍在。
- 「每个错误都能在对应字段旁被宣告」只有标记层面的 Heuristic review,即根据结构和经验规则审查,尚未使用屏幕阅读器测试。
- 「文字与背景对比度」标为 Automated check:所用颜色没有发现对比度失败项,但这不能证明整个表单符合无障碍要求。
- 「用户无需帮助即可完成注册」标为 Proposed:只是提出的目标,没有测试,也没有用户研究。
最后单列未测试项:屏幕阅读器完整检查、移动端键盘行为,以及服务端错误响应。
这些细节比一句「支持移动端」有用得多。接手者可以直接安排键盘与焦点检查,也能看出真实用户是否顺利完成注册,仍然没有答案。
证据标签是在限制结论的范围
这些标签不应被读成一套统一分数。Proposed 表示尚未检查;Automated check 表示运行了某项规则检查;Manual test 表示有人实际走过对应流程。每个结论都只能覆盖它检查过的范围。
一次对比度检查,不能替代整个表单的无障碍验证。手动确认输入被保留,也不能证明服务端返回错误时,页面同样处理正确。
验收标准还要匹配改动规模。原文反对固定分数,以及通用的时间或点击次数上限。改一句文案,可能一行状态就够;新建结账流程,需要更完整的验证。设计记录模板里的「Validation status」用于记下证据级别、已测与未测内容,以及开放问题。
完整流程共有六步:建立上下文、选择视觉系统、先映射对象再布局、记录决策、组织各个视图,最后交付与验证。它采用开放的 Agent Skills 格式,以 MIT 许可发布;README 提供 Claude Code、Cursor、Gemini CLI 和 Codex 的安装路径,原文没有展开具体命令。
我的判断
我认同它把验证状态纳入交付的做法。对于 AI 编程,最需要防止的是一句范围过大的承诺,让使用者误以为所有相关行为都已经检查过。
不过,标签本身不会提高验证质量。写了 Manual test,仍然需要说明操作、观察结果和测试范围。原文示例中的「输入错误密码提交,再观察姓名和邮箱」就比单写「手测通过」更有信息量。
它也不能替代自动化测试或用户研究。更合适的用法,是把现有检查结果组织成可接手的记录,同时暴露覆盖不到的部分。
作者明确表示,是否节省时间尚未测量。原文也没有提供缺陷率、返工次数等对照数据,因此这是一套有道理的流程建议,效果仍需团队自行验证。没有浏览器或设备访问能力的 agent,尤其应该停在它能证明的位置。
能拿来做什么
- 给 AI 下达表单任务时,同时要求它列出可观察的验收标准,例如错误后保留输入、错误提示对应字段,并逐项报告验证状态。
- 审查交付说明里的「无障碍」「移动端可用」等结论,要求补充具体检查范围;只做了代码审查,就如实保留为审查结论。
- 把未测试项直接变成下一轮任务,例如检查移动端键盘行为、运行屏幕阅读器流程,或验证服务端错误响应后的页面状态。
- 按改动规模控制记录长度。文案调整保持简短,注册或结账流程则交代关键路径、证据和剩余问题。