Spec-Driven Development (SDD) 是一种面向 AI 辅助编程的工程方法。其核心理念是:规格(Specification)是唯一真实来源,代码是其派生产物。
在传统开发中,Spec 的质量主要影响沟通效率;在 AI 编程时代,Spec 的质量直接决定代码质量。AI 不会追问边界情况如何处理——它只会按照给定的上下文推断,推断对了是运气,推断错了就是 Bug。
| 维度 | Vibe Coding | SDD |
|---|---|---|
| 核心假设 | AI 能理解你的意图 | AI 需要明确的规格才能正确执行 |
| 启动速度 | 极快 | 较慢(需先写 Spec) |
| 可维护性 | 差(无文档、无约束) | 好(Spec 即文档) |
| 可协作性 | 差(只有作者知道 "vibes") | 好(Spec 是共享语言) |
| 适用规模 | 小项目(< 1000 行) | 中大型项目 |
两者不是非此即彼。探索阶段可用 Vibe Coding 快速验证,一旦决定正式开发,切换为 SDD。
# 1. 将规范文件放入项目
cp -r spec-sdd /your-project/.claude/skills/
# 2. 在 CLAUDE.md 中添加引用
cat >> /your-project/CLAUDE.md << 'EOF'
- path: .claude/skills/spec-sdd/SKILL.md
- required: true
EOF
# 3. 创建需求目录结构
mkdir -p /your-project/docs/requirements/{todo,active,completed,templates}
cp .claude/skills/spec-sdd/references/templates/* /your-project/docs/requirements/templates/
# 4. 开始使用
# 当 AI 检测到"需求"意图时,自动触发 SDD 三阶段工作流| 阶段 | 核心活动 | 产出物 | 门禁 |
|---|---|---|---|
| Phase 1: 需求识别 | 需求拆解、依赖识别、影响评估 | index.md + todo/R0XX-name.md |
Phase 1 DoD |
| Phase 2: 方案设计 | 方案设计、测试设计、任务拆解 | 5 份文档(proposal/design/test-plan/test-cases/tasks) | Phase 2 DoD |
| Phase 3: 实施开发 | 编码、Review、测试、归档 | 可部署代码 + 归档文档 | Phase 3 DoD + 验证检查清单 |
完整的阶段定义、DoD 清单、模板详情见
SKILL.md。
本 skill 是 deep-analyze 路由管道的 Stage 2(Design),产出物传递给 superpowers:writing-plans(Plan)和 superpowers:executing-plans(Execute)阶段。详见 SKILL.md 的「管道集成」章节。
SDD 没有单一发明者。2025 年,多个方向同时汇聚于这个理念:
- Andrej Karpathy 提出的 Vibe Coding 作为反面参照,暴露了无约束编程的问题
- GitHub 推出 Spec Kit,提供 agent-agnostic 的 SDD 工具链
- AWS 发布 Kiro(SDD-native IDE)
- 阿里的 QoderWork 实践了 SDD 的规模化执行
"SDD is version control for your thinking." — Microsoft