本文目录4 个章节
01. SDD 范式与 AI 编程代理演进
在 AI 驱动的代码生成领域,传统的直觉式提示词开发正在快速暴露其局限性。规范驱动开发(Spec-Driven Development, SDD)正在成为解决上下文丢失与幻觉问题的工程共识。 随着项目规模扩大和对话历史增加,LLM 极易遗忘早期架构约束或做出矛盾的假设。
单靠聊天记录无法提供可信上下文。将软件规格持久化为代码库中的 Markdown 规范文件,能够确保 Agent 在长会话中维持行为确定性。 通过把需求规格、架构方案与任务清单存在代码库中,AI 代理能够在每次迭代时精准检索受控上下文。
02. 核心架构与工作流对比
由 GitHub 团队主导的 Spec Kit 提供了规范驱动开发的标准参考实现。Spec Kit 采用严密自顶向下的四阶段流水线,通过宪章文件确立全局工程规范。 它的工作流从定义团队与项目宪章开始,向下级联至具体的业务规格文件、架构计划以及可执行的任务列表。
与之相对,Fission AI 推出的 OpenSpec 侧重于轻量化与增量变更控制。OpenSpec 引入增量规范提案机制,避免在老旧代码库中陷入全量规格维护的泥潭。 其核心思想是通过变更提案记录每次功能扩展的规范增量,在代码编写与测试通过后再将提案合并归档至主规格库中。
| 选型维度 | GitHub Spec Kit | Fission AI OpenSpec |
|---|---|---|
| 官方团队与仓库 | GitHub 官方 (github/spec-kit) | Fission AI 团队 (Fission-AI/OpenSpec) |
| CLI 命令行工具 | specify-cli (命令为 specify) | @fission-ai/openspec (命令为 openspec) |
| 核心工作流链条 | Spec → Plan → Tasks → Implement | Explore → Propose → Apply → Archive |
| 关键契约产物 | constitution.md 宪章与四阶段规范文件 | specs/ 主规格与 proposals/ 增量提案 |
| 核心设计范式 | 自顶向下全量规范推演与约束下发 | 增量规范提案(Delta Proposals)与归档合并 |
| 交互与工具链支持 | 标准 CLI 接口与跨 Agent 终端 Prompt 模板 | 原生集成 30+ 种 AI 编辑器与斜杠指令 |
Spec Kit 与 OpenSpec 架构对比
-
Spec Kit 模式
适合全量规格推演,采用由宪章、规格、方案与任务构成的四阶段自顶向下流水线。
-
OpenSpec 模式
适合增量提案演进,采用由探索、提案、实施与归档构成的增量规范管理机制。
03. 项目生命周期与选型决策
选择哪套规范工具很大程度上取决于当前项目的成熟度。从零建仓项目优先选择约束完备的 Spec Kit,而已有大型代码库应优先选用轻量的 OpenSpec。 全新项目需要从第一天起树立严密的架构规则和命名约定;而已有项目若强制要求补齐历史全量 Spec,往往会导致巨大的前期治理开销。
除了项目生命周期外,团队现有的 AI 交互习惯也是关键考量因子。团队的技术栈习惯与 Agent 工具链重合度决定了选型的落地阻力。 OpenSpec 深度集成了常用 IDE 的斜杠指令,适合习惯在编辑器内快速发起 Proposal 的敏捷团队;而 Spec Kit 提供了标准的 CLI 接口与社区扩展,对多 Agent 跨终端管道更加友好。
项目类型与框架范式匹配
-
全量架构推演(Spec Kit)
适合全新产品开荒、核心基础设施重构以及需要高度严格规约审计的企业团队。
-
敏捷增量演进(OpenSpec)
适合业务代码库快速迭代、多人协作功能扩展以及追求低入侵性与高编辑器集成的团队。
04. 落地实践与团队防坑指南
在团队中推行规范驱动开发时,最常见的误区是把规范文档当作写完即扔的临时产物。规范文件必须随着代码重构及时归档与更新,防止出现与代码事实脱节的死规约。 如果代码库已经发生变更但规格文档未同步更新,后来的 Agent 将会基于陈旧规约生成错误代码。
针对这一挑战,团队应当建立明确的规范迭代与归档流水线。通过将 Spec 的审查纳入 Code Review 流程,可以确保代码变更与规格更新同步合入主干。
规范驱动开发落地四步法
-
初始化规约底座
在代码库根目录建立规范配置与全局技术宪章。
-
撰写需求规格提案
在动手编写代码前定义明确的业务约束与设计方案。
-
引导 Agent 拆解任务
驱动 AI 编程代理生成结构化且具备依赖关系的任务清单。
-
代码实施与规约归档
执行代码变更并通过集成校验将增量规范归档至主规格库。
REFERENCES