Spec-Driven Development (SDD)
Spec-Driven Development (SDD)
来源: wiki/sources/wechat-batch-a-agent-dev-tools
相关概念: wiki/concepts/harness-engineering, wiki/concepts/vibe-coding-to-sdd, wiki/concepts/harness-architecture
Spec-Driven Development(SDD)是一种以规格说明(Specification)作为唯一真实来源(Single Source of Truth)、代码作为其派生产物的 AI 编程方法论。核心原则:先定义 WHAT,再让 AI 做 HOW。
定义
"SDD is version control for your thinking." — Microsoft
传统版本控制管理代码的演变历史;SDD 管理的是思考的演变历史——为什么做这个功能、边界在哪里、成功标准是什么。当代码可以被 AI 秒级重写时,真正有价值的不是代码本身,而是代码背后的决策。
四阶段模型
| 阶段 | 主导者 | 核心产出 | 关键动作 |
|---|---|---|---|
| Specify | 人 | spec.md | 定义问题、边界、成功标准 |
| Plan | 人 + AI | plan.md | 架构选型、模块划分、接口定义 |
| Implement | AI | 代码 + 测试 | 按 plan 逐任务实现 |
| Validate | 人 + AI | 测试报告 | 自动化测试 + 人工 Review |
三文件体系(Spec Kit)
GitHub 的 Spec Kit 提出标准工具链:
- spec.md — 需求规格:回答"做什么"和"为什么做",不涉及"怎么做"
- plan.md — 架构方案:基于 spec 生成的技术方案,AI 起草、人审核
- tasks.md — 任务清单:将 plan 拆解为可执行的原子任务
- constitution.md — 项目级"宪法":不可违背的约束条件,所有 Spec 必须遵守
好 Spec 的六要素
- Problem Statement — 定义"为什么做"
- Success Metrics — 定义"做到什么程度算完"(必须可测试,如"P95 < 50ms")
- User Stories — 定义"谁在什么场景下用"
- Acceptance Criteria — 定义"怎么验证"
- Non-Goals — 定义"什么不做"(防止 AI 自作主张)
- Constraints — 定义"技术约束"
粒度检验标准: "用不同技术栈实现这个 Spec,Spec 是否仍然有效?"如果答案是否,说明混入了 HOW。
工具生态
| 工具 | 定位 | Agent 支持 | 核心理念 |
|---|---|---|---|
| Spec Kit (GitHub) | Agent-agnostic | 8+ Agent | 三文件体系 + constitution |
| OpenSpec (Fission-AI) | 轻量迭代 | 25+ 工具 | Spec 即对话 |
| Kiro (AWS) | SDD-native IDE | 内置 Agent | Spec 即工作流 |
| QoderWork (阿里) | Quest 执行引擎 | Qoder 生态 | Spec 即任务单 |
实战数据
- 成功案例:5 人 7 天用 Qoder 开发 QoderWork,完成传统需要 20 人数周的工作量
- 效率提升:API 变更周期缩短 75%(arXiv 金融领域论文)
- 质量提升:人工精炼 Spec 可将 LLM 代码错误减少 50%
- 规模化验证:Stripe 通过 Harness Engineering + SDD 交付 1,300 个 AI PR
失败数据对比
- 无 Spec 约束:45% 的 AI 生成代码包含安全漏洞(Veracode 2025)
- AI 编程时代:代码重复率 4 年增长 4 倍(GitClear 2.11 亿行研究)
五大陷阱
- 过度规格化 — Spec 写得比代码还长,退化为伪代码
- 规格腐烂 — 代码迭代了十几个版本,Spec 还在 V1
- 规格官僚化 — 改一个按钮颜色也要走全流程
- 上下文依赖陷阱 — Spec 里混入了 HOW
- AI 猜测空间未消除 — 成功标准模糊
与 Vibe Coding 的关系
SDD 和 Vibe Coding 不是对立,而是光谱的两端:
- 探索阶段用 Vibe Coding — 快速试错
- 一旦决定要做 — 立刻补 Spec
- 进入正式开发 — 严格 SDD
Vibe Coding "三个月墙"规律:兴奋期(1-3月)→ 平台期(4-9月)→ 衰退期(10-15月),因为本质是零上下文编程。
与 Harness Engineering 的关系
SDD 位于 Context Engineering 和 Harness Engineering 的交叉地带:
- constitution.md = 约束层
- spec.md = 需求层
- plan.md = 执行层
- tasks.md = 调度层
四层组合构成完整的"AI 驾驭框架"(Harness)。
创建于:2026-06-16 | 基于微信公众号文章合集批次 A