规格驱动开发 (SDD)
规格驱动开发(Spec-Driven Development, SDD)是 SuperSpec 的核心理念,它改变了我们与 AI 编码助手协作的方式。
什么是 SDD?
SDD 是一种开发方法论,强调在编码之前先明确规格(specification)。与传统的"先写代码后补文档"不同,SDD 要求:
- 先定义规格: 在写任何代码之前,先明确要做什么、为什么做、成功标准是什么
- 规格驱动实现: 让规格文档指导代码实现
- 实现验证规格: 完成后验证实现是否符合规格
为什么 AI 时代需要 SDD?
AI 编码助手(如 Cursor、Claude Code)能够快速生成代码,但也带来新的挑战:
问题 1: 上下文丢失
AI 的上下文窗口有限,长对话中容易"忘记"之前的讨论。
SDD 解决方案: 将关键信息记录在规格文档中,随时可以恢复。
问题 2: 需求漂移
没有明确规格,AI 可能按自己的理解实现,偏离原始需求。
SDD 解决方案: proposal 和 spec 提供明确的需求基准。
问题 3: 代码不一致
多次对话可能产出风格不一致的代码。
SDD 解决方案: 统一的 artifact 和工作流确保一致性。
问题 4: 难以复用
有价值的决策和讨论散落在对话历史中,难以复用。
SDD 解决方案: clarify.md 记录决策,可供未来参考。
SDD 工作流
需求 → 提案 → 规格 → 任务 → 实现 → 验证 → 归档
↓ ↓ ↓ ↓ ↓
proposal spec tasks code validate每个阶段都有对应的 artifact,形成完整的文档链。
SDD 与敏捷开发
SDD 不是要回到瀑布模型,而是在敏捷框架内增加必要的结构:
| 敏捷原则 | SDD 实现 |
|---|---|
| 响应变化 | /ss-clarify 记录变更 |
| 可工作的软件 | 分阶段任务,频繁交付 |
| 客户协作 | proposal 获取确认 |
| 简洁 | 第一性原理,最小文档 |
在 SuperSpec 中实践 SDD
SuperSpec 提供了完整的 SDD 工具链:
- proposal.md: 记录变更提案
- spec.md: 定义详细规格(增强模式)
- tasks.md: 分解为可执行任务
- clarify.md: 记录澄清和决策
- context.md: 支持上下文恢复
通过这些工具,你可以与 AI 助手进行结构化、可追溯的协作。