规格驱动开发

规格驱动开发是什么

AI 辅助写的

从 Vibe Coding 到规格驱动开发:理解 AI 编程如何从「直觉」升级到「工程」,掌握先写规格再写代码的新范式

引言

This approach succeeds where 'just prompting the AI' fails due to a basic truth about how language models work: they're exceptional at pattern completion, but not at mind reading.

2025 年 10 月,GitHub 开源了一个名为 Spec Kit 的工具包,正式将「规格驱动开发」(Spec-Driven Development)这一概念带入 AI 编程的视野。这个看似复古的理念——先写规格再写代码——正在成为驾驭 AI 编程工具的新范式。

如果你经常使用 Claude Code、Cursor 或 GitHub Copilot 这类 AI 编程助手,一定遇到过这样的困扰:你说「帮我添加一个用户登录功能」,AI 兴冲冲地写了一大堆代码,但等你仔细一看——用的是你不熟悉的框架、安全策略和你预期的不一样、UI 风格也对不上……然后你开始一轮又一轮地修正,直到精疲力尽。

问题出在哪里?不是 AI 不够聪明,而是你给的信息不够。「添加用户登录功能」这句话看似清晰,实际上隐藏了成百上千个未说明的决策:用什么认证方式?密码有什么要求?登录失败怎么处理?需要记住登录状态吗?支持第三方登录吗?……AI 不得不猜,而猜测意味着偏差。

规格驱动开发正是为了解决这个问题而生的。

Vibe Coding:速度的代价

2025 年初,前 Tesla AI 总监 Andrej Karpathy 创造了「Vibe Coding」这个词,描述一种「接受 AI 建议而不深入审查」的开发方式。这个词迅速走红,甚至被 Collins 词典评为 2025 年度词汇。

Vibe Coding 的诱惑显而易见:你描述一个想法,AI 生成代码,看起来能跑就行。对于快速原型、黑客马拉松、一次性脚本,这种方式确实高效。但当它被用于生产系统时,问题就来了。

We allowed a developer to vibe-code an entire user authentication flow... When we later needed to extend the auth system, it collapsed. No one could trace what was connected to what.

类似的故事在业界屡见不鲜:AI 生成的数据库查询在小规模测试中运行良好,但在真实流量下系统爬行;拼接的认证模块通过了 QA,但两周后发现停用账户仍可访问管理工具。根据 Final Round AI 的 2025 年调查,18 位 CTO 中有 16 位经历过 AI 生成代码导致的生产灾难

这并不是说 Vibe Coding 毫无价值。关键在于识别边界

场景Vibe Coding规格驱动开发
原型/演示✓ 适合过度
一次性脚本✓ 适合过度
生产功能风险高✓ 推荐
安全相关危险✓ 必须
团队协作难维护✓ 推荐

规格驱动开发正是为了在保持 AI 效率的同时,避免 Vibe Coding 的陷阱。

什么是规格驱动开发

1766224001587.png

规格驱动开发的核心理念可以用一句话概括:先定义「做什么」,再考虑「怎么做」

这听起来像是软件工程的老生常谈,但在 AI 编程时代,它有了新的含义。传统的需求文档是写给人看的,往往冗长、模糊、充满行话。规格驱动开发中的「规格」是写给 AI 看的——简洁、结构化、可执行。

想象你要盖一栋房子。传统的 AI 编程方式就像你对施工队说「帮我盖一栋舒适的三居室」,然后让他们自己发挥。结果可能不错,但更可能和你想象的大相径庭。规格驱动开发则是先画好建筑蓝图:几层楼、每层多少平米、窗户朝向、材料规格……施工队按图施工,结果自然符合预期。

在 AI 编程中,这套蓝图就是规格文档(Specification)。它不关心用什么编程语言、什么框架,只关心功能要达成什么效果、用户要完成什么任务、成功的标准是什么。

与传统开发流程相比,规格驱动开发有一个根本的不同:

传统 AI 编程规格驱动开发
直接描述需求 → AI 生成代码需求 → 规格 → 计划 → 任务 → 代码
AI 需要猜测大量细节每一步都明确,AI 只需执行
返工频繁,沟通成本高前期投入,后期顺畅
适合简单任务适合复杂功能

这种「渐进式细化」的过程,正是规格驱动开发的精髓。你不是一步到位,而是通过多个阶段逐步明确需求,每个阶段都可以审核和调整。

Speckit 工作流程概览

GitHub 的 Spec Kit 和 Claude Code 中的 speckit 命令都遵循类似的工作流程,大致可以分为六个阶段:

Constitution → Specify → Clarify → Plan → Tasks → Implement
     ↓            ↓          ↓        ↓       ↓         ↓
  项目宪法      功能规格    澄清模糊   技术计划   任务分解   执行实现

1. Constitution(项目宪法)

项目宪法定义了整个项目的基本原则和约束,比如「测试优先」「简单至上」「API 优先」等。这些原则会贯穿后续所有阶段,确保 AI 生成的方案符合你的技术偏好。

2. Specify(功能规格)

这是核心的第一步。你用自然语言描述想要的功能,AI 帮你整理成结构化的规格文档,包括:

  • 用户故事:谁要做什么,为什么
  • 功能需求:系统必须具备的能力
  • 成功标准:如何判断功能是否达标

重要的是,规格文档只关注「做什么」,不涉及「怎么做」——不提具体的技术栈、不写代码结构。

3. Clarify(澄清模糊)

AI 会检查规格中的模糊点,提出最多 5 个关键问题。这些问题通常涉及功能边界、用户类型、安全要求等。通过问答,规格变得更加清晰。

4. Plan(技术计划)

有了清晰的规格,才开始考虑技术方案。这一步会产出:

  • 技术选型(语言、框架、数据库)
  • 数据模型设计
  • API 合约定义
  • 研究报告(解决技术决策)

5. Tasks(任务分解)

将技术计划拆分成可执行的任务清单。每个任务都有明确的 ID、描述、文件路径,可以直接交给 AI 执行。任务按用户故事分组,支持并行开发。

6. Implement(执行实现)

按任务清单逐个执行。每完成一个任务就标记完成,确保可追溯。

这六个阶段的产出物形成了一条清晰的链条:

阶段产出物作用
Constitutionconstitution.md定义项目原则
Specifyspec.md描述功能需求
Clarify更新后的 spec.md消除模糊点
Planplan.md, research.md技术方案设计
Taskstasks.md可执行任务清单
Implement实际代码最终交付物

为什么这种方式有效

规格驱动开发之所以能在「直接让 AI 写代码」失败的地方成功,是因为它解决了 AI 编程的核心矛盾:信息不对称

当你说「添加照片分享功能」时,你脑子里可能有一个完整的图景,但 AI 只看到这几个字。它必须猜测:分享到哪里?谁可以看?需要压缩吗?有水印吗?支持批量吗?……每一个猜测都可能是错的。

规格驱动开发通过「强制你先想清楚」来解决这个问题。当你被要求写下用户故事、功能需求、成功标准时,那些你以为「显而易见」的细节就会浮出水面。这个过程本身就有价值——即使不用 AI,把需求写清楚也能减少沟通成本。

此外,渐进式细化让错误更早暴露。在 Specify 阶段发现需求偏差,修改成本几乎为零;在代码写完后才发现,可能要推倒重来。

当然,规格驱动开发不是万能的。它有明确的适用场景:

适合的情况

  • 复杂功能开发(涉及多个模块、多种交互)
  • 团队协作项目(规格文档作为沟通媒介)
  • 对质量要求高的场景(需要可追溯、可验证)

不适合的情况

  • 简单的 bug 修复或小改动
  • 探索性编程(还不知道要做什么)
  • 时间极度紧迫(没空写规格)

关键是识别任务的复杂度。一个小时能完成的事情,不需要花一个小时写规格;一个星期的功能开发,花两个小时写规格绝对值得。

但规格不是银弹

需要澄清一个常见误解:规格驱动开发减少了猜测,但没有消除审查的需求

即使有了完整的规格,AI 仍可能:

  • 错过边界情况(规格没覆盖的极端场景)
  • 生成不符合性能要求的代码
  • 引入潜在的安全漏洞
  • 产出风格不一致的实现

这就像建筑施工:即使有了详细蓝图,验收检查仍然必要。你不会因为施工队按图纸盖完房子就直接搬进去住——你会检查电路是否安全、管道是否通畅、门窗是否牢固。

If specs define intent and agents generate the code, do we need to review code anymore? Short answer: yes, absolutely.

规格驱动开发的价值在于让错误更容易被发现,而不是消除错误本身。

小结

规格驱动开发的核心是一个简单的道理:越是复杂的任务,越需要先想清楚再动手。AI 编程工具放大了这个道理的重要性——因为 AI 会忠实地执行你的指令,但无法真正理解你的意图。

The person who communicates the best will be the most valuable programmer in the future. The new scarce skill is writing specifications that fully capture your intent and values.

记住三个关键词:

关键词含义
先规格后代码定义「做什么」在前,考虑「怎么做」在后
渐进式细化从模糊到清晰,每步都可审核调整
减少猜测明确的规格 = AI 更少的推测空间

了解了理念之后,下一篇《Speckit 实践指南》将带你动手实践:如何使用 speckit 命令完成一个功能的规格驱动开发流程。

配合《Claude Skills》使用,可以将规格的执行进一步自动化和标准化。

评论

On this page