文章目录
- Pre
- 概述
- 一、为什么选择OpenSpec?
-
- 常规AI助手问题
- OpenSpec的变革
- 二、OpenSpec核心工作流
-
- 具体步骤
- 三、OpenSpec目录结构与Delta规范
-
- Delta格式说明
- 四、与其他方案对比
- 五、快速上手指南
-
- 1. 安装CLI工具
- 2. 初始化项目
- 3. 创建变更提案
- 4. 方案审核与完善
- 5. 实现变更任务
- 6. 归档上线
- 六、团队协作与升级维护
- 七、实例:用OpenSpec落地“两步验证”功能
-
- 实例细化:用OpenSpec规范驱动“添加两步验证(2FA)”功能
-
- 场景背景
- 步骤一:创建2FA变更提案
- 步骤二:细化需求与验收标准
- 步骤三:拆解技术任务(tasks.md)
- 步骤四:协同完善、审查与对齐
- 步骤五:任务实现与归档
- 文件产物举例
- 亮点说明
- 实践建议与总结
- 八、总结与最佳实践建议
- 九、项目地址

Pre
Vibe Coding – 使用cursor从PRD到TASK精准分解执行
Vibe Coding – Spec Workflow MCP:打造结构化、AI 驱动的软件开发新范式
Vibe Coding – GitHub官方开源项目spec-kit_spec规范驱动开发
Vibe Coding – 深度解读规范驱动开发(SDD):对 Kiro、spec-kit、Tessl 三大工具的剖析与实践
概述
在AI驱动的软件开发日益普及的今天,如何让开发者与AI助手协同高效、可控地演进项目,成为新的挑战。OpenSpec,正是为此而生的AI规范驱动开发辅助工具。本文将系统介绍OpenSpec的设计理念、核心价值、使用流程,并结合实际案例,帮助开发者深入感受其优势,积极拥抱和实践OpenSpec。
一、为什么选择OpenSpec?

常规AI助手问题
- 当需求仅存在于对话历史,AI助手的输出往往不可控、难以复现,甚至遗漏业务关键点。
- 缺乏规范驱动,代码产出既无法溯源,也难以审核,协作成本高。
OpenSpec的变革
- 规范驱动开发:将需求以轻量spec(规范)管理,所有相关方(人和AI)在编码前达成一致。
- 可审计、可追溯:所有提案、任务、规范变更都结构化存档,方便回溯与迭代。
- 无需API密钥,极简配置:绝大多数AI工具零门槛集成,无需额外账号或设置。
- 兼容现有AI助手:已支持Claude Code、CodeBuddy、Cursor、OpenCode、Qoder等主流工具,Slash命令一键触发。
二、OpenSpec核心工作流
#mermaid-svg-eWgYK8lYPQsarx0s {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .error-icon{fill:#552222;}#mermaid-svg-eWgYK8lYPQsarx0s .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eWgYK8lYPQsarx0s .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-eWgYK8lYPQsarx0s .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eWgYK8lYPQsarx0s .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eWgYK8lYPQsarx0s .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eWgYK8lYPQsarx0s .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eWgYK8lYPQsarx0s .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eWgYK8lYPQsarx0s .marker.cross{stroke:#333333;}#mermaid-svg-eWgYK8lYPQsarx0s svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eWgYK8lYPQsarx0s .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .cluster-label text{fill:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .cluster-label span{color:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .label text,#mermaid-svg-eWgYK8lYPQsarx0s span{fill:#333;color:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .node rect,#mermaid-svg-eWgYK8lYPQsarx0s .node circle,#mermaid-svg-eWgYK8lYPQsarx0s .node ellipse,#mermaid-svg-eWgYK8lYPQsarx0s .node polygon,#mermaid-svg-eWgYK8lYPQsarx0s .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eWgYK8lYPQsarx0s .node .label{text-align:center;}#mermaid-svg-eWgYK8lYPQsarx0s .node.clickable{cursor:pointer;}#mermaid-svg-eWgYK8lYPQsarx0s .arrowheadPath{fill:#333333;}#mermaid-svg-eWgYK8lYPQsarx0s .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-eWgYK8lYPQsarx0s .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-eWgYK8lYPQsarx0s .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-eWgYK8lYPQsarx0s .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-eWgYK8lYPQsarx0s .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-eWgYK8lYPQsarx0s .cluster text{fill:#333;}#mermaid-svg-eWgYK8lYPQsarx0s .cluster span{color:#333;}#mermaid-svg-eWgYK8lYPQsarx0s div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-eWgYK8lYPQsarx0s :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
提出变更提案 Proposal
审核与协同 Review & Align
实现任务 Implement Tasks
归档与更新 Archive & Update
具体步骤
三、OpenSpec目录结构与Delta规范
openspec/
├ specs/ # 当前项目规范(source of truth)
│ └ auth/
│ └ spec.md
├ changes/ # 所有变更提案及任务
│ └ add–2fa/
│ ├ proposal.md
│ ├ tasks.md
│ ├ design.md
│ └ specs/
│ └ auth/
│ └ spec.md # delta,仅表现变更内容
Delta格式说明
- ## ADDED Requirements 新增能力
- ## MODIFIED Requirements 变更行为
- ## REMOVED Requirements 移除特性
每个需求必须包含至少一个#### Scenario:场景说明,并采用“SHALL/MUST”等强制词。
四、与其他方案对比
| 项目适用性 | 新功能、旧功能均适合 | 适合新项目(0→1) | 变更易分散 | 难以控管 |
| 需求变更追踪 | 明确、可管理两层结构 | 单层结构易混乱 | 多文件追踪困难 | 容易遗漏 |
| 团队协作与可审计性 | 变更、任务、规范集中结构化管理 | 相对松散 | 结构较为分散 | 无 |
五、快速上手指南
1. 安装CLI工具
npm install -g @fission-ai/openspec@latest
确认安装:
openspec –version
2. 初始化项目
cd your-project
openspec init
如选择支持的AI助手,自动生成关联命令和AGENTS.md。
3. 创建变更提案
对话示例:
你:创建一个OpenSpec变更,添加“两步验证”功能。
AI:已自动生成openspec/changes/add-2fa/,包含proposal.md、tasks.md、spec delta。
4. 方案审核与完善
命令核查:
openspec list
openspec validate add-2fa
openspec show add-2fa
与AI交互补全验收标准、细化业务场景。
5. 实现变更任务
AI辅助自动实现tasks.md列出的所有技术任务。例如:
- 数据库新增字段
- 后端实现OTP接口
- 前端集成验证码组件
6. 归档上线
openspec archive add-2fa –yes
自动将变更整合入specs/,归档成功。
六、团队协作与升级维护
- 新成员只需openspec init即可接入标准流程。
- 每个变更会被规范归档,方便持续演进。
- 灵活兼容多种AI助手,团队成员可自由切换。
- openspec update一键刷新命令与指导。
七、实例:用OpenSpec落地“两步验证”功能
通过规范驱动,每一步都可复查、回溯,并且支持跨角色、跨工具协同。
实例细化:用OpenSpec规范驱动“添加两步验证(2FA)”功能
场景背景
假设你正在开发一个Web系统,希望为用户登录新增“两步验证”(OTP/动态验证码),提升安全性。你使用OpenSpec,让AI与团队协同推进需求落地。
步骤一:创建2FA变更提案
或openspec init
openspec list
├ specs/
│ └ auth/
│ └ spec.md # 现有登录/认证规范
└ changes/
└ add-2fa/
├ proposal.md # 为什么要加2FA?改动内容说明
├ tasks.md # 具体实现任务列表
├ specs/
│ └ auth/
│ └ spec.md # 只包含新增/变更内容(Delta规范)
└ design.md # 技术方案、架构决策(可选)
步骤二:细化需求与验收标准
-
proposal.md 示例内容(由AI自动生成并可人工补充):
# 变更提案:增加两步验证
– 目的:提升账户安全,防止盗号风险。
– 影响范围:登录流程;用户数据表需扩展。
– 验收标准:
– 用户登录时需验证动态验证码(OTP)
– 支持短信/邮件/Authenticator APP
– 管理员可强制开启2FA -
specs/auth/spec.md(Delta)示例:
## ADDED Requirements
### Requirement: Two-Factor Authentication
The system MUST require a second factor during login.#### Scenario: OTP required
– WHEN a user submits valid credentials
– THEN an OTP challenge is required#### Scenario: Successful OTP verification
– WHEN a user enters the correct OTP
– THEN allow login and issue JWT#### Scenario: OTP failure
– WHEN a user enters wrong OTP
– THEN deny login, show错误提醒
步骤三:拆解技术任务(tasks.md)
## 1. 数据库设计
– [ ] 1.1 用户表新增OTP密钥(secret字段)
– [ ] 1.2 新建OTP验证日志表(存储验证结果、时间戳)
## 2. 后端实现
– [ ] 2.1 新增生成OTP接口(如RESTful: /api/otp/generate)
– [ ] 2.2 修改登录逻辑,登录成功后进入OTP校验阶段
– [ ] 2.3 新增OTP验证接口(/api/otp/verify)
– [ ] 2.4 支持多种OTP发送方式(短信/邮件/Google Authenticator)
## 3. 前端适配
– [ ] 3.1 登录页面新增OTP输入框与校验步骤
– [ ] 3.2 错误处理与用户体验优化
– [ ] 3.3 可视化展示2FA启用、关闭入口
步骤四:协同完善、审查与对齐
- 在“proposal.md”和“spec.md”中补充实际业务场景、边界情况(如多次失败锁定、备份码等)。
- 让AI或团队成员完善“tasks.md”具体实现细节。
- openspec show add-2fa 展示所有内容,团队或AI共同审核。
步骤五:任务实现与归档
- 按任务清单开发各模块,AI助手可自动标记完成情况(如 [x] 已完成)。
- 任务完成后,运行:openspec archive add-2fa –yes
- 变更自动归档至specs目录,成为系统新业务的“source of truth”。
文件产物举例
- openspec/changes/add-2fa/proposal.md —— 需求与理由说明
- openspec/changes/add-2fa/tasks.md —— 技术任务分解
- openspec/changes/add-2fa/specs/auth/spec.md —— 规范变更Delta
- openspec/specs/auth/spec.md —— 已归档最新业务规范
亮点说明
- 变更从提案到落地,全流程规范、闭环管理,每一步都可溯源、复查与协同。
- AI自动生成高质量任务拆解与场景描述,大大提升效率和准确率。
- 规范落地后,后续团队成员查阅“specs”即可快速了解业务历史和变更细节,适合多人/多工具同步协作。
实践建议与总结
- 每新增一个业务特性,都建议用OpenSpec规范化,保障协同、代码落地与未来迭代的高可控性。
- 团队协作高效,变更、任务、业务场景全链路可视。
- AI助手精准落地,减少需求偏移,支持持续集成迭代。
通过上述详尽分解,开发者可快速参考、复用2FA落地流程,用OpenSpec将复杂需求标准化、结构化,感受AI与“规范驱动开发”的真正威力。
八、总结与最佳实践建议
- 优先建议:对每一项业务特性,都用OpenSpec规范化,AI协助产出的成果可控、可复现、可分享。
- 场景拓展:不仅适合新开发,也适合对既有系统的渐进式调整(brownfield-first)。
- 团队高效协同:提升讨论透明度,减少“需求漂移”和“沟通成本”。
OpenSpec让AI从“自由发挥”变为“有据可依”。规范驱动,团队协同,业务可控,变更归档……每个开发环节清晰高效,让你专注于创意和实现。
九、项目地址
https://github.com/Fission-AI/OpenSpec



