🚀 1. 什么是 “SDD(规范驱动开发)”

SDD(Spec-Driven Development) 是一种把 “规范/spec” 提到核心的开发方法论,它的核心思想是:

📌 先把要构建的功能“是什么(WHAT)”和“为什么(WHY)”用规范清晰描述出来,然后再逐步把这些规范转换成可执行的计划和代码。

📌 规范不再是形式文档,而是驱动整个开发过程的核心“可执行资产”。

📌 开发过程借助 AI/工具自动把这些规范一步步变成任务、计划、最终的实现。

换句话说:

SDD 不是先写代码再写文档,而是先写详细规范、搞懂需求,再基于这些规范(甚至直接由 AI)生成实现。


🆚 2. SDD 和传统开发模式的主要区别

下面是 SDD 与更常见的传统开发模式(如瀑布、敏捷、TDD)之间的关键对比:

方面传统开发模式SDD(规范驱动开发)
核心资产代码是中心规范(spec)是中心
文档作用用于沟通,常滞后于代码驱动开发全过程
AI/工具角色辅助编码或自动补全深度参与规范解析、计划分解与实现
开发流程需求 → 设计 → 编码 → 交付规范 → 澄清 → 计划 → 任务分解 → 实现
与需求变更的关系编码后常需返工规范先行,更容易可追踪、一致
协作效果依赖经验与沟通多人协作基于同一规范平台

具体来说:

🔹 传统模式通常是:

  1. 编写需求文档
  2. 然后开发人员根据需求写代码,文档常被忽略或过期
  3. 如果需求变了,代码要大改,协调成本高

🔹 SDD 模式是:

  1. 把需求/规范写得非常具体

  2. 通过工具(如 spec-kit)把规范解析成计划、任务

  3. 严格按规范驱动实现

    👉 规范贯穿整个开发生命周期,而不是编码之后才有文档。


🧰 3. 使用 spec-kit 的开发流程(从需求到实现)

spec-kit 是 GitHub 官方开源的 SDD 工具集,提供了一套命令和流程去结构化地做开发。它不是单一脚手架,而是一种流程生态。

下面是典型的开发流程:


Step 1:初始化项目

先在本地目录初始化 Spec-Driven 项目:

specify init my-project  --ai claude

这一步会创建项目结构并让 AI/代理接入,以便整个流程可用。


Step 2:设定项目原则(Constitution)

使用命令:

/speckit.constitution

这会生成或更新项目的根本开发原则,比如代码质量标准、测试规范、性能要求等。 这些原则会贯穿整个过程,AI 会参考它们来生成规范定义和未来计划。


Step 3:编写功能规范(Specify)

/speckit.specify

在这个阶段,你用自然语言构建规范,例如:

🌟 “这个任务管理应用需要支持看板模式…”

🌟 “每个用户可以创建任务、分配任务…”

重点是 尽可能明确 WHAT 和 WHY,不要先提 HOW。


🧠 Step 3.5:澄清规范(Clarify)

/speckit.clarify

用于 AI 自动提问、澄清不够明确的部分。这可以大大减少需求误解风险(推荐在 plan 之前用)。


Step 4:创建技术实现计划(Plan)

/speckit.plan

这一步让 AI 把规范转换成技术选型和架构设计,比如:

  • 前端用什么 tech stack
  • 后端框架与数据库
  • 是否需要缓存/测试框架

它生成计划文档,为下一步任务做铺垫。


Step 5:任务分解(Tasks)

/speckit.tasks

AI 会根据计划把要做的工作分解成可执行、可测试的具体任务,比如:

  • 建立数据库模型
  • 设计 UI 页面
  • 实现 API
  • 单元测试模板

这一步是把计划变成实施蓝图。


Step 6:实现代码(Implement)

/speckit.implement

最后,AI/工具根据任务列表 & plan 来实际生成代码,完成开发过程。 生成的实现会严格对应前面定义的规范。


🧪 可选命令(提高质量)

命令用途
/speckit.analyze规范与任务一致性检查
/speckit.checklist生成质检清单,比如可测试项
/speckit.clarify规范澄清阶段

📌 4. spec-kit 的优势总结

规范优先、意图明确:减少误解与返工

可追踪的开发资产:规范/计划/任务都版本控制

AI 与人协作更流畅:AI 不再只是一句 prompt,而是按流程执行

适合团队开发与大型项目:更统一、更一致、更可维护


🧠 和传统开发相比?

传统(人写代码为主)SDD + spec-kit
需求文档易过时规范驱动开发,规范是核心资产
人工分解任务不够标准化AI 自动分解任务
实现细节因人而异实现一致且可追踪
需求变更难以控制更新规范即可驱动下一轮变更

参考