前言

最近在AI编程助手的实际落地中,发现一个很有意思的开源项目——OpenSpec。这个由Fission-AI打造的规范驱动开发(SDD)框架,正在悄悄改变开发者使用Claude Code、Cursor、Copilot等工具的方式。
截至目前,它在开源社区的热度持续攀升,已经成为AI编程领域最受关注的规范驱动开发工具之一。2025年底开源,到2026年初就在AI编程圈迅速走红。
那么,它到底解决了什么问题?
核心理念:先对齐、再编码
OpenSpec的本质,并不是让AI变得更聪明,而是给AI编程助手套上“规范的笼头”。
很多开发者刚开始接触Claude Code、Cursor这类工具时,习惯性把AI当成一个“代码生成器”——提个模糊需求,等它吐代码,复制粘贴,完事。这种玩法在简单场景下还行,一旦项目复杂起来,问题就来了:
* AI生成的代码跟需求对不上 * 遗漏了重要功能 * 加了一堆不必要的功能 * 代码行为不可预测,调试起来头大 * 变更历史完全不可追溯OpenSpec给出的解法很直接:强制AI遵守“先写规范,再写代码”的流程。
它把软件工程的最佳实践,固化成一套轻量级的规范驱动工作流,让AI编程助手像资深工程师一样思考:
* 先对齐:起草变更提案,明确需求 * 再规划:审查与对齐,直到达成一致 * 后编码:按照已批准的规范动手实现 * 必归档:完成后更新规范,保持可追溯安装与配置
环境准备
确保你已经安装了Node.js >= 20.19.0。如果版本不达标,去Node.js官网更新一下就好。
检查版本:
node --version
安装OpenSpec
用npm或pnpm全局安装OpenSpec CLI:
# 使用npm
npm install -g @fission-ai/openspec@latest
# 或者用pnpm
pnpm install -g @fission-ai/openspec@latest
安装完成后验证一下:
openspec --version
初始化项目
进入你的项目目录,初始化OpenSpec:
cd your-project
openspec init
初始化过程会做以下几件事:
* 询问你使用的AI工具(Claude Code、Cursor、Copilot等) * 自动配置相应的斜杠命令 * 创建 `openspec/` 目录结构 * 生成 `AGENTS.md` 文件(AI助手规则)初始化完成后,项目会生成这样的目录结构:
your-project/
├── openspec/
│ ├── specs/ # 当前真理源规范
│ └── changes/ # 变更提案
├── AGENTS.md # AI助手规则
└── config.yaml
验证设置:
openspec list
如果你使用的AI助手没有立即显示新的斜杠命令,重启一下就好。
最佳实践:5个核心工作流
OpenSpec提供了一整套基于规范驱动开发(SDD)的工作流框架。以下是最实用的5个场景:
1. 起草变更提案
适用场景:拿到新需求,需要明确功能范围时。
最佳实践:
# 在Claude Code中
/openspec:proposal 实现用户积分系统
OpenSpec会引导你按照规范驱动流程,从以下维度把需求理清楚:
* 功能边界和核心痛点 * 输入/输出定义 * 边界条件和异常处理 * 性能和可扩展性考量关键提示:不要急着跳到编码阶段,先在变更提案阶段把需求理顺。
生成的提案结构:
openspec/changes/用户积分系统/
├── proposal.md # 变更提案(需求描述、设计、任务)
├── tasks.md # 实施任务(AI按照此文件实现)
└── design.md # 技术设计(可选)
2. 审查与对齐
适用场景:提案草稿完成,需要与AI助手一起审查,直到达成一致。
最佳实践:
# 与AI助手一起审查提案
/openspec:review changes/用户积分系统/proposal.md
审查维度:
* 需求完整性:有没有遗漏重要功能? * 需求一致性:存不存在矛盾或模糊的描述? * 可测试性:输入/输出和边界条件是不是明确的? * 技术可行性:设计方案能不能落地?审查输出格式:
## 审查报告
### 需要补充的内容(必须修复)
[章节] 问题描述 -> 补充建议
### 优化建议(建议修复)
[章节] 问题描述 -> 优化方案
### 优点(保持不变)
- 需求描述清晰
- 边界条件明确
关键原则:审查与对齐是一个迭代过程,不要急于进入编码阶段。
3. 实现任务
适用场景:提案已经批准,需要按照规范实现代码。
最佳实践:
# AI按照tasks.md实现代码
/openspec:implement changes/用户积分系统/tasks.md
OpenSpec会严格按照tasks.md中的任务列表实现代码,确保:
* 代码行为符合规范 * 不会添加规范中未定义的功能 * 边界条件和异常处理完整测试覆盖率要求:
* 核心业务逻辑:≥ 80% * 工具类/辅助方法:≥ 60% * API接口:≥ 50%这里有个常见坑:很多开发者(包括AI)喜欢先写代码再补测试,这会导致测试变成“验证实现”而不是“验证行为”,代码耦合度高,重构时测试频繁失效。OpenSpec的规范驱动流程,能从根本上解决这些问题。
4. 归档并更新规范
适用场景:功能开发完成,需要归档变更提案并更新真理源规范。
最佳实践:
# 归档变更提案
/openspec:archive changes/用户积分系统
# 更新真理源规范
/openspec:update specs/用户积分系统/spec.md
OpenSpec会:
* 将已完成的变更提案移动到 `openspec/changes/archive/` * 更新 `openspec/specs/` 中的真理源规范 * 保留完整的变更历史,便于审计与回溯核心价值:避免在多个变更提案中丢失上下文,让规范始终保持最新状态。
5. 跨工具兼容
适用场景:团队使用多种AI编程助手(Claude Code、Cursor、Copilot等)。
OpenSpec支持多种主流AI编程助手,通过统一规范实现跨工具兼容:
* Claude Code:生成 `.claude/commands/openspec/` 目录和斜杠命令 * Cursor:生成 `.cursor/commands/openspec/` 目录和斜杠命令 * Copilot:通过 `AGENTS.md` 注入规范 * 其他工具:使用上下文规则配置示例(config.yaml):
tools:
- claude-code
- cursor
- copilot
specs:
path: openspec/specs
format: markdown
changes:
path: openspec/changes
核心价值:团队成员可以自由选择AI工具,但基于同一套规范协作,大大减少理解偏差。
进阶技巧:组合使用多个工作流
OpenSpec的真正威力在于组合使用多个工作流。以下是常用的组合:
组合1:新功能开发流程
起草变更提案(Draft Change Proposal)
↓
审查与对齐(Review & Align)
↓
实现任务(Implement Tasks)
↓
归档并更新规范(Archive & Update Specs)
组合2:现有功能修改流程
更新真理源规范(Update Specs)
↓
起草变更提案(Draft Change Proposal)
↓
审查与对齐(Review & Align)
↓
实现任务(Implement Tasks)
↓
归档并更新规范(Archive & Update Specs)
避坑指南
坑1:把OpenSpec当成“文档生成器”
错误用法:
/openspec:proposal 给我写个电商系统
问题:需求太宽泛,AI无法聚焦,输出的规范质量很差。
正确用法:
/openspec:proposal 实现电商系统的订单支付模块,支持支付宝和微信支付
原则:需求越具体,规范质量越高。
坑2:跳过审查与对齐,直接编码
错误流程:
提需求 → 直接 /openspec:implement → 返工3次
正确流程:
提需求 → /openspec:proposal → /openspec:review → /openspec:implement
经验:前期多花20%时间审查,后期能节省80%返工时间。
坑3:忽视规范更新,导致规范与代码不一致
错误做法:
实现功能 → 不归档 → 规范过期 → 新成员看不懂
正确做法:
实现功能 → /openspec:archive → /openspec:update → 规范始终最新
OpenSpec的归档与更新流程,从根本上解决了规范与代码不一致的问题。
性能对比:使用前后差异
| 指标 | 使用前(纯AI编程助手) | 使用后(OpenSpec + AI编程助手) |
|---|---|---|
| 需求一致性 | ⭐⭐⭐(依赖提示词) | ⭐⭐⭐⭐⭐(规范驱动) |
| 代码质量 | 中(AI乱写代码) | 高(按规范实现) |
| 可维护性 | 中(规范缺失或过期) | 高(规范始终最新) |
| 变更可追溯性 | 低(无变更历史) | 高(完整生命周期管理) |
| 跨工具兼容性 | 低(各工具各自为战) | 高(统一规范) |
总结:OpenSpec的核心价值
OpenSpec并不是为了让AI变得更聪明,而是让AI更“规范”。
它把资深工程师的思维方式和工作流程固化成一套可复用的规范驱动框架,让每个开发者——无论经验深浅——都能按照工程化的标准与AI助手协作。
适合使用OpenSpec的场景:
* ✅ 复杂业务系统开发(电商、金融、社交) * ✅ 对代码质量和可维护性有高要求的项目 * ✅ 团队协作,需要统一规范、减少理解偏差 * ✅ 学习规范驱动开发(SDD)最佳实践暂时不适合的场景:
* ❌ 简单的脚本或工具开发(有点杀鸡用牛刀) * ❌ 快速原型验证(时间紧迫,来不及写规范)