OpenSpec 入门到实战:规范驱动 AI 编程,告别幻觉与返工
前言
AI 编程时代,我们一边享受高效生成,一边被需求模糊、AI 幻觉、反复返工、代码不可控困扰。写代码前没有统一规范,AI 凭感觉生成,开发者反复修改,团队协作效率极低。
OpenSpec 就是解决这一痛点的开源利器 —— 它是 Fission AI 推出的规范驱动开发(SDD)框架,通过「先定规范、再写代码」的标准化流程,让 AI 严格按规则生成代码,实现需求、设计、实现、归档全链路可追溯、可管控。
本文从入门概念、核心原理、环境搭建、完整实战、最佳实践五个维度,带你从零掌握 OpenSpec,让 AI 编程从「凭感觉」变成「可预测」。
一、OpenSpec 到底是什么?
1.1 核心定义
OpenSpec 是轻量级、开源、AI 友好的规范驱动开发工具,专为 Cursor、Claude、Copilot 等 AI 编程助手设计,核心是通过标准化文档约束 AI 行为,让开发流程更可控、代码更规范、协作更高效。
1.2 核心理念:先 Spec,后 Code
- Spec(规范):明确「要做什么、怎么做、分几步做」,是人和 AI 的统一契约;
- Code(代码):AI 严格按照规范生成,杜绝猜测、减少幻觉、避免偏离需求。
1.3 核心价值
AI 编程可控:AI 不再自由发挥,完全遵循规范生成代码全流程可追溯:从需求提案到功能归档,每一步都有记录 团队协作高效:统一规范消除沟通偏差,新人快速上手 兼容主流 AI 工具:原生支持 Cursor、Claude、Copilot 等零侵入集成:不破坏现有项目结构,一键初始化即可使用
二、OpenSpec 核心架构与工作流
2.1 核心目录结构
初始化后项目自动生成规范目录,结构清晰、分工明确:
plaintext
your-project/
├── openspec/ # 核心规范目录
│ ├── config.yaml # 项目配置(技术栈、约束规则)
│ ├── specs/ # 最终生效规范(项目唯一可信源)
│ ├── changes/ # 待实现变更提案(开发中)
│ │ └── 变更名称/ # 单个功能完整规范
│ │ ├── proposal.md # 变更提案(为什么做、做什么)
│ │ ├── specs/ # 需求与功能规范
│ │ ├── design.md # 技术设计方案
│ │ └── tasks.md # 可执行任务清单
│ └── archive/ # 已完成变更归档(历史记录)
└── .cursor/ # AI工具集成配置(自动生成)
2.2 标准工作流(4 步走完开发全流程)
- 提案(Propose):创建功能变更,定义需求、范围、目标;
- 规范(Spec):完善需求规格、技术设计、任务拆解;
- 实现(Apply):AI 按规范生成代码,开发者校验调整;
- 归档(Archive):功能完成后合并规范,留存历史记录。
三、环境搭建:10 分钟快速上手
3.1 前置条件
- Node.js 20.19.0 及以上版本
- npm/pnpm 包管理器
- AI 编辑器:Cursor(推荐)、Claude Code、VS Code
3.2 安装 OpenSpec CLI
bash
运行
# 全局安装最新版
npm install -g @fission-ai/openspec@latest
# 验证安装(输出版本号即成功)
openspec --version
3.3 项目初始化
bash
运行
# 进入项目目录
cd your-project
# 初始化并配置Cursor(推荐)
openspec init --tools cursor
# 重启IDE,让AI斜杠命令生效
3.4 常用命令速查
表格
| 命令 | 作用 |
|---|---|
| openspec new change 变更名 | 创建新功能变更 |
| openspec list | 查看所有待实现变更 |
| openspec show 变更名 | 查看变更详情 |
| openspec validate 变更名 | 校验规范格式 |
| openspec archive 变更名 | 归档已完成变更 |
3.5 AI 编辑器快捷命令
/opsx:propose "功能描述":一键生成变更提案/opsx:apply 变更名:AI 按规范实现代码/opsx:archive 变更名:归档完成的功能
四、完整实战:用 OpenSpec 实现「待办事项」功能
以待办事项(TODO) 功能为例,完整演示 OpenSpec 从 0 到 1 的开发流程。
4.1 创建变更提案
bash
运行
# 创建名为todo-list的变更
openspec new change todo-list
4.2 完善规范文件
1. proposal.md(变更提案)
plaintext
## Why
需要实现轻量级待办事项功能,满足用户日常任务管理需求,本地存储无需后端。
## What Changes
- 新增待办事项添加功能
- 支持标记完成/未完成状态
- 支持删除待办事项
- 数据存储在localStorage
## Capabilities
New: todo-list(待办事项管理)
2. specs/todo-list/spec.md(需求规范)
plaintext
# 待办事项功能规范
## 功能需求
1. 输入框添加任务,回车确认
2. 任务列表展示所有事项,已完成划横线
3. 点击复选框切换完成状态
4. 点击删除按钮移除任务
5. 页面刷新数据不丢失
## 非目标
- 不实现云端同步、分类、筛选
3. design.md(技术设计)
plaintext
# 技术设计
- 技术栈:HTML + CSS + JavaScript
- 数据存储:localStorage
- 核心逻辑:
1. 读取本地数据渲染列表
2. 绑定添加、切换、删除事件
3. 数据变更同步更新本地存储
4. tasks.md(任务清单)
plaintext
- [ ] 1. 创建HTML结构(输入框、列表、删除按钮)
- [ ] 2. 编写CSS样式,适配完成/未完成状态
- [ ] 3. 实现localStorage数据读写逻辑
- [ ] 4. 实现添加任务功能
- [ ] 5. 实现状态切换功能
- [ ] 6. 实现删除任务功能
- [ ] 7. 页面加载自动渲染数据
4.3 AI 按规范实现代码
在 Cursor 中输入:
plaintext
/opsx:apply todo-list
AI 将严格按照 tasks.md 和 spec.md,生成完整的 HTML、CSS、JS 代码,无需反复调整。
4.4 功能校验与归档
bash
运行
# 校验规范格式
openspec validate todo-list
# 归档已完成功能(合并到正式规范)
openspec archive todo-list
4.5 实战效果
- 一键生成完整可运行的待办事项功能
- 代码完全符合规范,无冗余、无偏离需求
- 所有变更记录留存,便于后续维护
五、OpenSpec 最佳实践
- 规范先行:永远先写 proposal 和 spec,再让 AI 生成代码;
- 任务细粒度:单个任务控制在 1-2 小时内完成,便于 AI 精准实现;
- 配置上下文:在 config.yaml 中填写技术栈、规范,减少 AI 猜测;
- 及时归档:功能完成立即归档,保持 changes 目录整洁;
- 团队统一:全团队使用同一套规范,消除协作偏差;
- 小步迭代:单次变更只做一个功能,避免复杂耦合。
六、适用场景与避坑指南
6.1 适合场景
✅ 中大型功能开发、团队协作项目✅ 长期维护、需要文档沉淀的项目✅ AI 辅助编程、追求代码可控的开发者✅ 金融、企业级等高质量要求场景
6.2 不适合场景
❌ 快速原型验证、一次性脚本❌ 简单 bug 修复、单文件小修改❌ 无维护价值的临时项目
6.3 常见避坑
- 不要跳过规范直接写代码,失去 OpenSpec 核心价值;
- 规范不要过于简略,否则 AI 仍会猜测需求;
- 不要一次性创建过多变更,并行开发易混乱。
七、总结
OpenSpec 不是复杂的框架,而是AI 编程的「规范契约」—— 它用最简单的方式,把「凭感觉的 AI 编程」变成「可预测、可管控、可追溯的规范开发」。
对于个人开发者,它能减少返工、提升效率;对于团队,它能统一标准、降低协作成本。在 AI 全面赋能开发的今天,OpenSpec 已经成为高效、可控 AI 编程的必备工具。
从openspec init开始,5 分钟搭建规范流程,让你的 AI 编程告别幻觉、精准落地!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)