Spec-driven development
Spec-driven development(规格驱动开发)
定义
一种开发方法论,核心思想是:在 AI 写代码之前,先通过结构化的规格文档对齐「要做什么」。区别于直接让 AI 写代码然后反复修改的传统方式。
核心流程
- Proposal(提案) — 定义为什么要做这个变更
- Specs(规格) — 描述需求场景和验收标准
- Design(设计) — 技术方案、架构决策
- Tasks(任务) — 拆解为可执行的实施清单
- Apply(执行) — 按任务清单逐项开发
- Archive(归档) — 保存历史,供未来参考
代表工具
OpenSpec 是这一理念的典型实现,通过 /opsx:propose → /opsx:apply → /opsx:archive 三个命令驱动。
与传统方式对比
- 传统:需求 → 直接写代码 → 反复修改(容易跑偏)
- Spec-driven:需求 → 规格文档 → 对齐确认 → 再写代码(减少返工)
价值
- 需求对齐不依赖聊天记忆,有持久文档
- 每个变更有完整可追溯记录
- AI 可以基于规格自主工作,不跑偏
- 规格库积累后,类似需求可复用
类比
类似 LLM Wiki 的「先编译知识再查询」理念——不是每次从零开始,而是先投资一次把知识/规格固化下来。
2026-07-05 补充:GitHub Spec Kit 把 SDD 工具化
| [[github-spec-kit | GitHub Spec Kit]] 说明 Spec-driven development 正在从个别 agent prompt 演进为可安装、可组合、可扩展的工程 workflow。它把流程拆成 constitution → specify → clarify/checklist/analyze → plan → tasks → implement → converge,并通过 specify CLI 把模板、脚本、agent integration 和 slash commands 注入项目。 |
这补充了本页原有 OpenSpec 视角:SDD 的关键不只是“写一份 spec”,而是让 spec、plan、tasks 和 convergence check 形成可版本化、可审查、可重复执行的约束链。对 Agentic-Coding 来说,这是一种上游 harness;对 Context-Engineering 来说,.specify/ 和 slash commands 是项目级 context provider。
写入记录
- 2026-07-05 17:44 CST:补充 GitHub Spec Kit 作为 SDD 工具化实现,强调 constitution/spec/plan/tasks/converge 约束链。