SDD:Spec driven development,规范驱动开发。在软件工程界早已有之,在AI出现之前,就有很多类似的思想:
- 契约优先开发(Contract-First):先写OpenAPI、Swagger等规范,再生成Controller和DTO代码
- 行为驱动开发(BDD):用Cucumber、Gherkin等语法写Given-When-Then规范,再让人去实现
- 模型驱动架构(MDA):画好UML模型,直接生成代码骨架
- 甚至更早的形式化方法(Formal Methods),用数学规范来验证代码
AI时代的SDD:
- 本质上是
旧概念的新生命力。以前的SDD是根据规范,模板生成/人写代码,现在的SDD是根据规范,LLM生成完整业务逻辑。 - 完全可理解高级增强进阶版提示词工程
普通常规提示词的问题:
- 无法复用和版本控制:提示词散落在聊天记录里,无法Git追踪,团队无法共享
- 上下文丢失:大项目有几十个微服务,提示词塞不进LLM的上下文窗口,AI会失忆
- 缺乏约束力:AI容易幻觉或自由发挥,写出不符合团队架构规范的代码
Spec Kit、OpenSpec等项目的核心价值在于:把需求、计划、任务拆分成可追踪的Markdown工件。它们将规范变成可执行的契约(executable contracts)。把这些Spec文件放在项目根目录,AI每次启动时自动读取。相当于给AI设定不可逾越的系统提示词,可以像代码一样进行Code Review和版本迭代。
Spec Kit
GitHub官方推出的开源(GitHub,119K Star,10.5K Fork)SDD工具包,强调从零开始的系统搭建,通过结构化文档(如PRD、技术约束)确保AI生成代码的准确性和一致性。
基于Python开发,具有活跃社区支持;核心优势在于促进规范驱动开发,将需求文档与代码实现紧密结合,避免传统开发中常见的需求与实现割裂问题。
实战
基于uv安装:uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
使用命令行:
bash
# 升级
specify self check
# 预览简称新特性,不升级
specify self upgrade --dry-run
# 升级到最新版本
specify self upgrade
# 指定版本
specify self upgrade --tag vX.Y.Z[suffix]
# 使用
specify
specify init .
specify init <PROJECT_NAME>
# 选择模型和Shell
/constitution 简单描述项目
/specify 描述需求
/clarify 对需求查缺补漏
/plan 拆解需求写技术方案
/tasks 拆解任务
/analyze 审核全部文档
/implement 写代码
初始化成功后,Agent中应能看到类似:
/speckit.constitution:/speckit.specify:/speckit.plan:/speckit.tasks:/speckit.implement:
可选增强:
/speckit.clarify:在写技术方案前澄清模糊需求,官方建议在/speckit.plan前使用/speckit.analyze:在tasks之后、implement之前做跨文档一致性检查/speckit.checklist:生成质量检查清单(类似「对英文/需求的单元测试」)
非常适合测试驱动开发的工作模式(TDD),在拆解开发任务的过程中,可要求AI为每个任务生成一个测试用例(纯逻辑场景)
OpenSpec
官网,由Fission AI团队开源(GitHub,59.3K Star,4.1K Fork)的轻量级SDD工具,专注于已有项目的功能演进与维护。通过提案-审查-实施-归档的四步工作流管理变更,提供清晰的变更分组与追溯机制。
安装配置简单(仅需三步:安装Node.js≥20.19.0、安装OpenSpec CLI、项目初始化),支持命令行和自然语言两种交互方式,与多种AI编程工具兼容;核心价值在于将复杂文档编写转化为结构化对话流程,实现从"概率性输出"到"确定性交付"的质变。
遵循四步工作流程:
- 起草变更提案
- 审查与对齐
- 实施任务
- 归档与更新规范
SpecKit适合从零开始的系统搭建和团队协作项目;BMAD-METHOD适用于需要模拟完整敏捷开发团队的复杂项目;OpenSpec则专为已有项目的功能演进与维护设计,特别适合个人开发者和小团队使用。这种差异化的定位使得三者能够形成协同工作流,覆盖软件开发的全生命周期。

实战
基于npm安装:npm install -g @fission-ai/openspec@latest
命令行使用示例
bash
openspec --version
openspec init
claude --dangerously-skip-permissions
/openspec:proposal
/openspec:apply
/openspec:archive
主要流程
- 起草一份变更提案,明确你期望的规范更新内容
- 与AI助手一同审核该提案,直至各方达成一致
- 执行任务,过程中需参考已达成共识的规范文档
- 对该变更进行归档,将已批准的更新内容合并回基准规范文档中
BMAD-METHOD
基于C.O.R.E哲学构建的开源(GitHub,50.2K Star,5.8 Fork)AI驱动、敏捷开发方法论与工具集,将AI从"工具"角色提升为"团队"角色。通过模拟多角色AI代理(如PM、Analyst、Architect、Developer等)实现端到端的开发管理,特别适合团队协作型AI项目。
采用模块化架构设计,包含BMad Method(BMM)、BMad Builder(BMB)和Creative Intelligence Suite(CIS)三大核心模块,通过"规划阶段"与"执行阶段"的双阶段流程解决AI辅助开发中的规划不一致与上下文丢失问题。其自动化程度高,但学习曲线较陡峭,适合中大型团队使用。
基于BMAD Core框架,内置19个专业AI Agent和50+条工作流(Workflows),覆盖从需求分析、规划、架构设计到开发与测试的完整生命周期。把「系统提示词+角色定义+流程指令」工程化、版本化、可移植化,打包成结构化资产,像调度一个真正的软件团队那样,调度一群AI专家协同工作。
把整个软件交付过程拆成4个阶段:
- Analysis(分析):需求挖掘、市场调研、方案对比
- Planning(规划):PRD、技术规格说明、游戏设计文档等
- Solutioning(方案设计):系统架构、数据流、API设计、UX草图
- Implementation(实施):Story驱动开发、代码实现、测试验证
针对每个阶段,框架都提供多条工作流(Workflows),以YAML形式定义流程与调用顺序:
- 用Analyst生成Project Brief
- 用PM生成PRD
- 用Architect生成Architecture文档
- 用PO做文档分片(Sharding)
- 用SM生成Story文件
- 用Developer/QA实现与验证代码
Kiro Spec
Kiro AI IDE中用于规范化开发流程的结构化规格说明工具,通过需求、设计和任务三阶段工作流,将模糊想法转化为可执行计划。
Kiro的Spec(Specification,规格/规范)是一个结构化工件,用于将高层次的想法转化为详细的实施计划,并提供清晰的跟踪和问责机制。解决AI编程中常见的需求理解偏差、上下文遗忘和工程质量不高等问题。核心目标是让开发者在生成代码之前明确需求和设计,从而提高落地效率和交付质量。
Kiro Spec遵循三阶段迭代工作流:
- 需求分析(Requirements)
- 使用
requirements.md文件记录用户故事和验收标准 - 支持EARS(Easy Approach to Requirements Syntax)语法,通过标准句式消除需求歧义,例如:WHEN用户点击"静音"THEN系统SHALL抑制所有音频输出
- 明确需求的同时可自动生成测试用例
- 使用
- 系统设计(Design)
- 使用
design.md文件记录技术架构、序列图和实现考虑因素 - 连接需求与实现,确保模块协同和可维护性
- 可基于
requirements.md自动生成设计草案,并通过迭代沟通形成生产级设计文档
- 使用
- 任务执行(Implementation)
- 使用
tasks.md文件生成可执行任务列表 - Kiro会分析任务依赖关系,将独立任务分组并并行执行,提高效率
- 提供实时状态更新,任务可标记为进行中或已完成
- 使用
使用优势
- 结构化管理:将概念性需求与技术实现桥接,减少开发迭代和误解
- AI协作优化:在AI编程中显式化需求理解,避免生成代码偏差
- 高效执行:任务依赖分析和并行执行显著缩短开发时间
- 可移植性:Spec流程可在其他AI IDE复刻使用
开始使用
- 在Kiro面板点击Specs下的+按钮或从聊天面板选择Spec
- 描述项目想法并按三阶段流程操作
- 系统会生成
.kiro目录下的三个核心文件:requirements.md、design.md、tasks.md,作为Spec的基础
Kiro Spec将传统软件工程的闭环和持续优化理念与AI IDE深度结合,使开发流程更加规范、高效和可追踪。
其他
其他AI IDE,如Cursor,Windsurf等都内置.cursorrules或其他规则配置,内部严重依赖任务拆解和规范约束,否则它们会把项目搞得一团糟。