AI 编程与智能体工程 · 第 6 期

"做个登录页",AI 为什么永远做不对?

spec 驱动 · 从一句话需求到可验收任务

不是 AI 笨,是需求没到可验收。"做个登录页"有 100 种解法,AI 猜哪个都不对。spec 驱动先把一句话需求拆成可验收的 spec,再拆成可执行的任务——验收标准写在代码之前,不是之后。
⏱ 约 11 分钟 🎯 用 AI 写代码、被需求坑过的工程师 📦 源:ai-coding-engineering §4.1

01一个反共识:验收标准写在代码之前

传统流程是"写代码 → 测试 → 验收",AI 时代要反过来:"写验收 → 拆任务 → 让 AI 写 → 自动验"。

一句话需求→ 可验收 spec→ 任务拆解→ AI 实现→ 自动验收

为什么反过来?因为 AI 写代码很快,但"判断做对没"很难。如果验收标准模糊,AI 写完你只能人肉看,看不过来就放过去——bug 就这么漏的。把验收前置,AI 写完直接跑验收脚本,过就过、不过就回炉,人只管写验收,不盯实现。

GitHub Spec Kit、AWS Kiro 都是这个路子:先 spec,再代码。2025 年起这已成 AI 编程工程化的主流实践。

验收写在代码之前,
不是之后。
灏天文库 · AI 编程与智能体工程 P.18

02需求拆解闯关:哪些验收真的可测

下面给一个真实需求,4 条候选验收标准。你来判断哪些是"可自动验收"的(能写成测试脚本自动判过/不过),勾完看答案。

✅ 需求拆解闯关
勾选你认为"可自动验收"的标准,提交看答案。
需求:给网站加一个登录页,用户能用账号密码登录。
← 勾选后点提交

03spec 的三要素:输入、行为、边界

一条可验收的 spec,要写清三件事:

三要素齐了,这条 spec 就能直接写成测试用例:构造输入 → 调接口 → 断言行为 → 覆盖边界。AI 写完,测试一跑就知道对不对,不用人看。写不出测试的 spec,就是没写清楚的 spec。

写不出测试的 spec,
就是没写清楚的 spec。
灏天文库 · AI 编程与智能体工程 P.19

04带走这套清单

✅ spec 驱动 6 条可执行规则

  1. 验收前置:先写验收标准再让 AI 写代码,不是反过来。
  2. 三要素齐:每条 spec 写清输入、行为、边界,缺一不可。
  3. 可测即合格:spec 能直接写成测试用例才算数,否则改到能测为止。
  4. 拆到单任务:一个 spec 拆成多个可独立验收的小任务,AI 一次做一个。
  5. 自动验收:验收脚本能自动判过/不过,人只管写脚本不盯实现。
  6. spec 即文档:spec 既是验收标准也是需求文档,改需求先改 spec 再改代码。
需求不清,
AI 再强也是瞎猜。
灏天文库 · AI 编程与智能体工程 P.20