
最近在探索 AI 编程助手的最佳实践时,发现一个非常有意思的开源项目——OpenSpec。这个由 Fission-AI 打造的规范驱动开发(SDD)框架,正在悄然改变开发者使用 Claude Code、Cursor、Copilot 等 AI 工具的方式。
截止目前,OpenSpec 在开源社区的热度持续攀升,已成为 AI 编程领域最受关注的规范驱动开发工具之一。它于 2025 年底开源,2026 年初在 AI 编程社区迅速走红。
那么,它到底解决了什么问题?
OpenSpec 的本质不是让 AI 变得更聪明,而是给 AI 编程助手套上"规范的笼头"。
很多开发者刚开始用 Claude Code、Cursor 等 AI 工具时,习惯性地把 AI 当成"代码生成器"——提个模糊需求,等它吐代码,复制粘贴,完事。这种方式在简单场景下还行,但一旦项目复杂起来,就会陷入:
OpenSpec 的解决思路是:强制 AI 遵循"先写规范,再写代码"的流程。
它把软件工程的最佳实践固化成一套轻量级的规范驱动工作流,让 AI 编程助手像资深工程师一样:
确保你已经安装 Node.js >= 20.19.0。如果版本不符合要求,请访问 Node.js 官网 更新。
检查版本:
node --version使用 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初始化过程会:
openspec/ 目录结构AGENTS.md 文件(AI 助手规则)初始化完成后,项目会生成以下目录结构:
your-project/
openspec/
specs/ # 当前真理源规范
changes/ # 变更提案
AGENTS.md # AI 助手规则
config.yaml验证设置:
openspec list如果你使用的 AI 助手没有立即显示新的斜杠命令,请重启它。
OpenSpec 提供了一整套基于规范驱动开发(SDD)的工作流框架。以下是我总结的 5 个最实用的场景:
适用场景: 拿到新需求,需要明确功能范围时。
最佳实践:
# 在 Claude Code 中
/openspec:proposal 实现用户积分系统OpenSpec 会引导你按照规范驱动流程,从以下维度明确需求:
关键提示: 不要直接跳到编码,先在变更提案阶段把需求理顺。
生成的提案结构:
openspec/changes/用户积分系统/
proposal.md # 变更提案(需求描述、设计、任务)
tasks.md # 实施任务(AI 按照此文件实现)
design.md # 技术设计(可选)适用场景: 提案草稿完成,需要与 AI 助手审查,直到达成一致。
最佳实践:
# 与 AI 助手一起审查提案
/openspec:review changes/用户积分系统/proposal.md审查维度:
审查输出格式:
## 审查报告 需要补充的内容(必须修复)
[章节] 问题描述 + 补充建议
优化建议(建议修复)
[章节] 问题描述 + 优化方案
优点(保持不变)
关键原则: 审查与对齐是一个迭代过程,不要急于进入编码阶段。
适用场景: 提案已批准,需要按照规范实现代码。
最佳实践:
# AI 按照 tasks.md 实现代码
/openspec:implement changes/用户积分系统/tasks.mdOpenSpec 会严格按照 tasks.md 中的任务列表实现代码,确保:
测试覆盖率要求:
踩坑经验: 很多开发者(包括 AI)喜欢先写实现再补测试,这会导致:
OpenSpec 的规范驱动流程,从根本上解决这些问题。
适用场景: 功能开发完成,需要归档变更提案并更新真理源规范。
最佳实践:
# 归档变更提案 /openspec:archive changes/用户积分系统
# 更新真理源规范
/openspec:update specs/用户积分系统/spec.mdOpenSpec 会:
openspec/changes/archive/openspec/specs/ 中的真理源规范核心价值: 避免在多个变更提案中丢失上下文,保持规范始终是最新状态。
适用场景: 团队中使用多种 AI 编程助手(Claude Code、Cursor、Copilot 等)。
最佳实践:
OpenSpec 支持多种主流 AI 编程助手,通过统一规范实现跨工具兼容:
.claude/commands/openspec/ 目录和斜杠命令.cursor/commands/openspec/ 目录和斜杠命令AGENTS.md 注入规范配置示例(config.yaml):
tools: specs: path: openspec/specs format: markdown changes: path: openspec/changes
核心价值: 团队成员可以自由选择 AI 工具,但基于同一套规范协作,减少理解偏差。
OpenSpec 的真正威力在于 组合使用多个工作流。以下是我常用的组合:
起草变更提案(Draft Change Proposal) ↓
审查与对齐(Review & Align)
↓
实现任务(Implement Tasks)
↓
归档并更新规范(Archive & Update Specs) 更新真理源规范(Update Specs) ↓
起草变更提案(Draft Change Proposal)
↓
审查与对齐(Review & Align)
↓
实现任务(Implement Tasks)
↓
归档并更新规范(Archive & Update Specs)错误用法:
/openspec:proposal 给我写个电商系统问题: 需求太宽泛,AI 无法聚焦,输出的规范质量差。
正确用法:
/openspec:proposal 实现电商系统的订单支付模块,支持支付宝和微信支付原则: 需求越具体,规范质量越高。
错误流程:
提需求 → 直接 /openspec:implement → 返工 3 次正确流程:
提需求 → /openspec:proposal → /openspec:review → /openspec:implement经验: 前期多花 20% 时间审查,后期节省 80% 返工时间。
错误做法:
实现功能 → 不归档 → 规范过期 → 新成员看不懂正确做法:
实现功能 → /openspec:archive → /openspec:update → 规范始终最新OpenSpec 的归档与更新流程,从根本上解决规范与代码不一致的问题。
指标 | 使用前(纯 AI 编程助手) | 使用后(OpenSpec + AI 编程助手) |
|---|---|---|
需求一致性 | ⭐⭐⭐ (依赖提示词) | ⭐⭐⭐⭐⭐ (规范驱动) |
代码质量 | 中(AI 乱写代码) | 高(按规范实现) |
可维护性 | 中(规范缺失或过期) | 高(规范始终最新) |
变更可追溯性 | 低(无变更历史) | 高(完整生命周期管理) |
跨工具兼容性 | 低(各工具各自为战) | 高(统一规范) |
OpenSpec 不是让 AI 变得更聪明,而是让 AI 更"规范"。
它把资深工程师的思维方式和工作流程固化成一套可复用的规范驱动框架,让每个开发者(无论经验深浅)都能按照工程化的标准与 AI 助手协作。
适合使用 OpenSpec 的场景:
暂时不适合的场景:
— 完 —