Files
chill_notes/AI工程/概念/规格驱动开发.md
2026-06-22 11:30:51 +08:00

3.8 KiB
Executable File
Raw Blame History

规格驱动开发SDD

相关:AI编程演进阶段Harness工程Rule约束BMADSpec_KitOpenSpecKiro

定义

规格驱动开发Spec-Driven DevelopmentSDD是AI编程的第3阶段以规格文档为核心的开发方法。

核心思想Spec是单一事实来源SSoT所有开发活动围绕Spec展开。

核心特征

1. 规格中心化

  • Spec是唯一的真相来源
  • 所有代码从Spec生成
  • Spec变更驱动代码变更

2. 结构化表达

  • 需求以结构化形式表达
  • 使用Markdown、YAML等格式
  • 可机器解析和验证

3. 文件驱动

  • 文件进,文件出
  • 规格文件可版本化
  • 规格文件可复用

SDD框架对比

维度 BMAD Spec_Kit OpenSpec Kiro
定位 企业级SDD操作系统 工程化Spec工作流 轻量Spec层 IDE原生SDD
理念 Spec=治理体系+多Agent编排 Spec=开发入口+Git生命周期 Spec=变更单元(持续演化) Spec=可执行源
生命周期 全生命周期 与分支绑定(短) 长期存在(持续) 持续驱动
粒度 大(系统/模块级) Feature级 小(变更/Patch级 Feature+行为)
可执行 流程驱动 驱动开发流程 类Prompt 可生成代码+测试
自动验证 强(内建)
适用场景 大型系统/多团队 新项目0→1 存量项目/快速迭代 小团队/高自动化

规格类型

1. 需求规格Feature Spec

# 用户注册功能

## 用户故事
作为一个新用户,我想要注册账号,以便使用系统功能。

## 验收标准
1. 用户可以输入邮箱和密码
2. 系统发送验证邮件
3. 用户点击链接完成验证
4. 验证成功后可以登录

## 字段定义
- email: string, required, unique
- password: string, required, min:8
- verified: boolean, default:false

2. 设计规格Design Spec

# 数据库设计

## users表
- id: bigint, primary key
- email: varchar(100), unique
- password: varchar(255)
- verified: tinyint(1), default:0
- created_at: timestamp
- updated_at: timestamp

3. API规格API Spec

openapi: 3.0.3
paths:
  /api/v1/users:
    post:
      summary: 创建用户
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'

规格流转

过程方案Plans

  • 每次创建新文件
  • 记录实现过程
  • 不修改旧文件
  • 保留决策轨迹

事实方案Designs

  • 覆盖更新最终态
  • 作为下次Plan的起点
  • 必须保持最新
  • Source of Truth

适用场景

BMAD

  • 企业级项目
  • 多团队协作
  • 强治理需求
  • 合规要求高

Spec Kit

  • 新项目0→1
  • 需要Git集成
  • 中等复杂度

OpenSpec

  • 存量项目
  • 快速迭代
  • 轻量级需求

Kiro

  • 小团队
  • 高自动化需求
  • AWS项目

优势

  • 单一真相来源:避免信息不一致
  • 可追溯Spec变更有历史记录
  • 可验证Spec可以生成测试
  • 可复用Spec可以在项目间复用

挑战

  • 初始成本需要建立完整的Spec体系
  • 维护成本Spec需要持续更新
  • 学习曲线团队需要理解SDD理念

最佳实践

  1. 从核心Spec开始:先定义最重要的规格
  2. 逐步扩展:根据实践逐步添加规格
  3. 定期Review:定期审查和优化规格
  4. 自动化验证尽可能自动化Spec验证

相关概念