规范驱动开发SDD:Spec Kit、OpenSpec、BMAD-METHOD、Kiro Spec

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

主要流程

  1. 起草一份变更提案,明确你期望的规范更新内容
  2. 与AI助手一同审核该提案,直至各方达成一致
  3. 执行任务,过程中需参考已达成共识的规范文档
  4. 对该变更进行归档,将已批准的更新内容合并回基准规范文档中

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.mddesign.mdtasks.md,作为Spec的基础

Kiro Spec将传统软件工程的闭环和持续优化理念与AI IDE深度结合,使开发流程更加规范、高效和可追踪。

其他

其他AI IDE,如Cursor,Windsurf等都内置.cursorrules或其他规则配置,内部严重依赖任务拆解和规范约束,否则它们会把项目搞得一团糟。

相关推荐
智者知已应修善业1 天前
【利用proteus设计微型CPU,完成寻址相加数据的过程。】2025-2-26
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
大卡片2 天前
linux内核驱动开发
linux·运维·驱动开发
小此方2 天前
Re:Linux系统篇(四十二)通信篇·七:SystemV标准三部曲其之三:信号量与并发编程初步认识
linux·运维·驱动开发
编程圈子4 天前
电机驱动开发学习18. SVPWM空间矢量调制算法详解与实现
驱动开发·学习·算法
智者知已应修善业4 天前
【 LM358AD方波】2024-12-31
驱动开发·经验分享·笔记·硬件架构·硬件工程
枳实-叶4 天前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#
枳实-叶4 天前
【Linux驱动开发】第24天:SPI 数据收发机制
linux·运维·驱动开发
幽络源小助理5 天前
Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式-幽络源技术
驱动开发·ce
枳实-叶5 天前
【Linux驱动开发】第22天:SPI 设备树 + spi_driver
linux·运维·驱动开发