PostsMapsLinks
Workflow

Spec-Driven Development (SDD)

规格驱动开发方法论与工具对比

SDD 是什么?

一种将规格说明(Specification)而非代码视为核心产物的开发方法论。 规格成为可直接生成实现的"可执行文档",代码只是"最后一公里"的产物。

作为 AI 辅助编码工作流,SDD 遵循结构化功能规格 → 分解模块 → 生成任务的多步过程。 规格形态多样:单一文档、文档组或系列结构化工件。

主流实践包括:

  • Amazon Kiro:三阶段工作流(需求 → 设计 → 任务)
  • GitHub Spec Kit:三步流程 + 编排能力 + 可配置提示 + "宪法"原则
  • Tessl Framework:规格取代代码成为主要维护工件(2025 年内测)

见:Understanding Spec-Driven Development

Thoughtworks 的观察?

Thoughtworks 技术雷达认为 SDD 领域值得关注,但当前工具存在明显局限:

  • 工作流繁琐且主观设计倾向强
  • 生成冗长规格文件,难以审阅
  • PRD/用户故事的目标读者不清晰
  • 规模扩展性存疑——为 AI 逐条手工制定规则难以长期维持

OpenSpec

定位?

轻量级开源 SDD 框架,由 Fission-AI 开发。强调灵活而非僵化、迭代而非瀑布

核心命令?

命令作用
/opsx:new创建变更
/opsx:ffFast-forward 自动生成规划文档
/opsx:apply执行实现
/opsx:archive归档已完成变更

特点?

  • 5 分钟快速启动(vs Spec Kit 的 30 分钟)
  • 无严格阶段门控,可随时修改任何产物
  • Node.js 运行,无需 Python
  • 执行更快,规格文件更简洁

见:OpenSpec 官网

Spec Kit (GitHub)

定位?

GitHub 官方推出的系统化 SDD 工具包,适合需要严格质量控制的团队。

核心命令?

命令作用
/speckit.constitution创建项目基本原则
/speckit.specify定义功能规格
/speckit.plan技术实现计划
/speckit.tasks生成任务清单
/speckit.implement系统执行所有任务
/speckit.clarify结构化澄清需求

特点?

  • 严格的阶段门控(规划前必须澄清)
  • 丰富的模板系统
  • Python CLI 工具
  • 支持 17+ AI 工具(Claude Code、Cursor、Copilot 等)

见:Spec Kit GitHub

GSD (Get Shit Done)

定位?

轻量级 meta-prompting + context engineering + SDD 系统,由 TÂCHES 创建。

核心解决的问题?

Context Rot — 随着 Claude 上下文窗口填满而产生的质量衰减。

核心命令?

命令作用
/gsd:new-project初始化项目(问题 → 研究 → 需求 → 路线图)
/gsd:discuss-phase捕获实现决策
/gsd:plan-phase研究 + 规划 + 验证
/gsd:execute-phase并行执行计划
/gsd:verify-work人工验收测试
/gsd:quick快速模式(跳过可选步骤)

核心机制?

  • XML 格式化提示:每个计划都是结构化 XML,优化 Claude 理解
  • 多代理并行:研究、规划、执行各阶段并行子代理
  • 原子 Git 提交:每个任务独立提交
  • 上下文隔离:每个计划 200k tokens 纯净上下文

特点?

  • 无企业仪式(无 sprint ceremonies、story points、Jira)
  • 系统复杂但工作流程简单
  • 支持 Claude Code、OpenCode、Gemini CLI

见:GSD GitHub

BMAD (Breakthrough Method for Agile AI-Driven Development)

定位?

AI 驱动的敏捷开发框架,模拟完整软件开发团队。

核心组成?

  • 21 个专业 Agent:产品经理、架构师、开发工程师、UX 设计师、Scrum Master 等
  • 50+ 引导式工作流:覆盖完整开发流程

特点?

  • 最完整的"AI 团队"模拟
  • 真正的敏捷方法论(sprints、ceremonies)
  • human-in-the-loop,强调人与 AI 协作
  • 适合大型、复杂项目

见:BMAD GitHub

四者对比

维度OpenSpecSpec KitGSDBMAD
定位轻量 SDD 框架系统 SDD 工具包上下文工程系统AI 敏捷团队框架
复杂度最高
启动成本5 分钟30 分钟5 分钟较高
团队模拟21 个 Agent
核心优势灵活快速严格质量控制解决 context rot完整敏捷流程
最佳场景个人/小团队企业团队复杂多阶段项目大型敏捷项目

批判性反思

规格与代码的等价性原理

试图用自然语言规格替代代码是徒劳的——当规格精确到足以可靠生成实现时,它必然被扭曲成代码形式。这是 Dijkstra 所谓"窄接口"的必然要求。

OpenAI 的 Symphony 项目自称从规格生成,但其 SPEC.md 实则是"伪代码的 markdown 形式":包含数据库 schema 的逐字段罗列、算法的伪代码描述、甚至直接嵌入代码块。 该规格文件已达 Elixir 实现代码量的 1/6,却仍未保证可靠生成。

数学史印证了这一点:希腊数学因停留在口头和图形而停滞,直到 Vieta、Descartes、Leibniz 等人设计的形式符号系统才突破瓶颈。"代码生成于规格"的愿景本质上是 Borges 小说中的"与帝国一样大的地图"—— 当规格详尽到与实现重合,它便失去了作为抽象工具的价值。

见:A sufficiently detailed spec is code:Gabriella Gonzalez 对 agentic coding 两个核心误区的深度剖析

Copyright © 2024 Lionad - CC-BY-NC-CD-4.0