[AI]SDD流程解析------openSpec从0到1利用AI开发程序
OpenSpec = 规范先行 + 变更隔离 + AI 驱动,让 AI 编程从"黑盒"变成"白盒",从"碰运气"变成"可预测"。

1. SDD开发概念
规范驱动开发(Specification-Driven Development,简称SDD)是一种以"规范(Specification)"为核心驱动力的软件开发方法。其核心思想是:在编写任何代码之前,先编写一份结构化的规范文档(Spec),规范成为人类开发者与AI共同的"唯一事实来源(Single Source of Truth)",代码是规范的最终实现产物。
规范驱动开发的理论框架已经完善,但落地实践需要具体的工具支持。目前主流的开源SDD工具有三种:Spec Kit(GitHub出品) 、BMAD(社区开源方法论) 和 OpenSpec(Fission AI出品)。我们今天主要会基于OpenSpec实现SDD开发流程。
2. 环境配置
前置条件:确保已安装 OpenSpec 工具及其依赖工具。例如,包管理工具( npm / yarn / pnpm)、Node.js、Git(可选)、AI工具等,可查阅资料自行安装。
Node.js
官方地址:nodejs.org/zh-cn/downl...
OpenSpec 需要 Node.js 20.19.0 或更高版本。安装后请用 node -v 确认版本
bash
# Mac用户
# 使用 Homebrew 安装 或从官网下载 pkg 安装包
brew install node
# Windows用户。访问官网下载即可
https://nodejs.org/zh-cn/download

验证node环境:
bash
node -v
openSpec
bash
npm install -g @fission-ai/openspec@latest # npm方式安装openspec
pnpm add -g @fission-ai/openspec@latest # pnpm方式安装openspec
yarn global add @fission-ai/openspec@latest # yarn方式安装openspec

AI工具
OpenSpec 本身是一个规范框架,"具体干活的"用自己熟悉喜欢的 AI 编程工具即可。以下列出主流 AI 工具的安装方式,选择一款即可:
bash
# Claude Code
npm install -g @anthropic-ai/claude-code
# Claude Code国内镜像
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com
# Cursor
irm 'https://cursor.com/install?win32=true' | iex
# Cursor国内镜像
npm install -g cursor --registry=https://registry.npmmirror.com
# Cline
npm install -g @cline/cli
# codebuddy
npm install -g @tencent-ai/codebuddy-code
# 豆包 需安装python、pip工具
pip install doubao-cli
# 其他 GitHub Copilot、Codeium、Replit AI、OpenCode、Windsurf、Kilo Code均可
我这里以腾讯的CodeBuddy为例:
bash
# 验证AI Cli工具是否安装成功
codebuddy --version

3. OpenSpec 工作原理:四步闭环
官方命令手册:radebit.github.io/OpenSpec-Do...
四步流程:提出需求 → 检查方案 → 进行开发 → 落地文档


3.1 提出需求:起草变更提案
在开始任何编码工作之前,首先通过 AI 助手或直接创建变更提案,描述你想要实现的功能或修改。提案文档会详细描述功能需求、验收标准和技术约束,作为后续所有工作的依据。
bash
# 在 AI 助手中使用命令(以 CodeBuddy 为例)
# /opsx:propose feature-name
/opsx:propose 添加搜索功能
3.2 检查方案:审查与对齐
提案创建完成后,需要进行审查,确保规范符合预期。在这个阶段,你可以和 AI 反复迭代修改提案,直到达成共识。这是保证"做对的事"的关键环节。
bash
# 查看变更详情
openspec show feature-name
# 验证规范格式是否正确
openspec validate feature-name
3.3 进行开发:实施任务
提案审查通过后,开始正式实施,AI 会根据提案中的规范自动生成代码,并遵循所有约定的约束条件。
bash
# 开始实施(AI 对话命令)
/opsx:apply feature-name
3.4 落地文档:归档与更新规范
功能实施完成后,将变更归档并更新主规范。归档后,变更内容会合并到主规范中,成为项目知识库的一部分,供后续开发参考。
bash
# 归档完成的变更
/opsx:archive
4. 项目实战
接下来,我们以"构建一个待办事项管理应用(Todo List)"为例,完整走一遍 OpenSpec + AI 开发的流程。这个项目虽小,但涵盖了前后端分离、RESTful API设计、数据持久化等企业级开发的核心要素。
企业级的大项目,本质也是一个个细小功能开发累计而成。
标准文档结构:
bash
my-project/
├── openspec/
│ ├── specs/ # 系统行为规范库(长期)
│ ├── changes/ # 变更根目录
│ │ ├── <change-name>/ # 进行中的变更
│ │ │ ├── proposal.md # 提案文档
│ │ │ ├── specs/ # 增量规范
│ │ │ ├── design.md # 技术设计(可选)
│ │ │ └── tasks.md # 实现任务清单
│ │ └── archive/ # 已归档变更(自动生成)
│ │ └── <change-name>/ # 归档后的变更
│ └── config.yaml # 项目配置
└── AGENTS.md / CLAUDE.md # AI 助手配置文件
- 创建工作目录并进入
bash
# 1. 手动创建文件夹作为工作目录
mkdir /Users/ziyi/CodeBuddy/todo-app
# 2. 打开bash并进入到工作目录,如:
cd /Users/ziyi/CodeBuddy/todo-app
- 执行下面命令完成初始化,选择对应AI工具(CLI模式),我这里选择CodeBuddy,按下空格,然后回车即可
bash
# 初始化AI框架,选择AI工具,如 CodeBuddy Code,如下图
openspec init


接着就会发现本地工作目录多了一个openspec文件夹:

- 接着打开AI cli 工具
bash
# 我这里以CodeBuddy为例
codebuddy

- 输入下面命令:
bash
# 方式一:设置好对应架构选型
/opsx:propose 开发一个待办事项管理应用,功能包括:
1. 前端页面展示所有待办任务
2. 可以添加新任务
3. 可以标记任务为已完成
4. 可以删除任务
5. 后端提供 RESTful API,数据存储在 SQLite 数据库中
6. 前端使用 HTML + CSS + 原生 JavaScript,不依赖复杂框架
# 方式二:只告诉AI需求,让AI自己设计
/opsx:propose 开发一个待办事项管理应用
然后选择2,让AI不再询问,直接自己干就行

观察本地AI生成的相关文档逻辑是否有不满足要求的:

- 开始实施: /opsx:apply (按上述设计实施,如果不满足要求,可先让ai更改)
bash
# 执行下面命令,让AI开始实现
/opsx:apply

接下来就是🔥烧 token 的时候了,等AI一步步干活(为了方便,可以统一让AI自己操作,不用询问)。


- AI最后会告诉你干了啥,最后自己可以体验下功能


最终效果:可以看到正常访问并且功能也正常。

- 整体验证没问题,就可以执行归档命令:/opsx:archive
然后根据自己需求,确定是否要同步后归档(我这边选择同步后归档)
bash
# 执行下面命令归档即可
/opsx:archive


最后效果:

PS:如果发现实现有问题,或者功能有缺陷,直接让AI修复即可
- 后续如果有新需求,直接重新提即可
bash
/opsx:propose 修改待办事项应用设计:
1. 增加任务优先级字段(高、中、低)
2. 支持按优先级排序显示

- 后续的跟之前一样,如果AI规划的没问题,就执行/opsx:apply 让AI实现;最后如果体验没问题就执行/opsx:archive归档即可
效果:

执行归档:

- 如果有其他新项目需要开发,只需要新开命令行,进入对应目录,初始化openSpec。后续就跟之前流程一致了
bash
# 进入并初始化 chat-room
mkdir /Users/ziyi/CodeBuddy/chat-room
cd /Users/ziyi/CodeBuddy/chat-room
openspec init

最终效果:

