openspec基础实战

一、项目安装

1.1、安装依赖

复制代码
# 全局安装
npm install -g @fission-ai/openspec@latest
# 校验版本
openspec --version

1.2、 项目初始化

复制代码
# 交互式初始化(选择集成Cursor/Claude/opencode等)
openspec init

初始化生成目录:

复制代码
openspec/
├─ specs/          # 项目永久规范基线(系统事实源)
└─ changes/
   ├─ [change-name]/  # 开发中变更目录
   └─ archive/     # 已归档完成需求
└─ AGENTS.md    #AI 配置

二、OpenSpec命令

OpenSpec 分Core 默认快速流程(极简 4 步) 、**Expanded 扩展全流程(团队复杂项目)**两类。

2.1、Core 命令

OpenSpec 安装后的默认模式,提供 4 个命令:

|---------------|-------------------|
| 命令 | 用途 |
| /opsx:explore | 开发前梳理思路 |
| /opsx:propose | 一步创建变更 + 生成全部规划制品 |
| /opsx:apply | 执行任务、编写代码 |
| /opsx:archive | 归档已完成的变更 |

工作流程

流程链路- 小型需求**:**

复制代码
需求探索  →    创建变更 & 生成规范 → 编码落地 → 归档闭环
/opsx:explore → /opsx:propose → /opsx:apply → /opsx:archive
阶段 1:explore 需求探索
复制代码
/opsx:explore "需求描述:新增用户JWT登录,账号密码校验、异常拦截"

作用:需求模糊、调研技术方案。仅对话梳理需求,不生成任何项目文件,用来澄清边界、技术选型调研。

阶段 2:Propose 创建变更
复制代码
/opsx:propose user-login "新增用户JWT登录功能,数据库存储账号、密码加密存储"

自动在changes/user-login/生成 4 个核心文件:

  • proposal.md:需求目标、业务价值
  • specs/:功能约束、入参出参、边界用例(项目规范源)
  • design.md:架构、数据库、接口方案
  • tasks.md:拆分可落地编码任务清单

作用:生成全套设计文档

阶段 3:Apply 落地编码
复制代码
/opsx:apply user-login

作用:AI 按规范写代码。AI严格依照 specs+design 约束逐个完成 tasks 任务编码,禁止超范围开发,规避 AI 幻觉乱加功能。

阶段 4:Archive 归档
复制代码
/opsx:archive user-login

作用:功能验收完成,闭环。自动先执行 sync 合并规范,再将changes/user-login移入归档目录,正式完成需求生命周期。

2.2、Expanded 命令解析

|--------------------|----------|------------------------|
| 命令 | 核心功能 | 一句话总结 |
| /opsx:new | 创建变更脚手架 | 只建目录,不生成制品 |
| /opsx:continue | 逐步创建制品 | 按依赖关系生成下一个制品 |
| /opsx:ff | 快速生成所有制品 | 一步到位,类似 core 的 propose |
| /opsx:verify | 验证实现 | 检查代码和规格是否一致 |
| /opsx:sync | 同步规格 | 把增量规格合并到主规格 |
| /opsx:bulk-archive | 批量归档 | 一次归档多个变更 |
| /opsx:onboard | 引导式教程 | 用实际代码库学习完整流程 |

完整链路:

复制代码
新建变更→全量生成文档→迭代完善→编码→校验→同步→批量归档 
/opsx:new → /opsx:ff → /opsx:continue → /opsx:apply → /opsx:verify → /opsx:sync → /opsx:bulk-archive
斜杠命令 作用
/opsx:new order-pay "订单支付对接微信" 空目录新建变更脚手架,只创建文件夹不生成内容
/opsx:ff order-pay FullFill 一键自动生成全套 spec/design/tasks
/opsx:continue order-pay 分步生成文档,分步评审,精细化管控
/opsx:verify order-pay 对照 spec 校验代码合规性、检查实现是否偏离约定
/opsx:bulk-archive 批量归档多个已完成变更
/opsx:edit order-pay 手动修订规范文档,锁定约束后再编码

三、目录结构

复制代码
openspec/
├── AGENTS.md              # AI助手使用指南(自动生成)
├── project.md             # 项目专属上下文(技术栈、编码规范)
├── specs/                 # 权威基准:当前已部署的功能
│   └── [capability]/
│       ├── spec.md        # 需求说明与场景描述
│       └── design.md      # (可选)技术实现模式
├── changes/               # 提案集:进行中的工作
│   ├── [change-name]/
│   │   ├── proposal.md    # 提案背景、内容与影响评估
│   │   ├── tasks.md       # 实现任务清单
│   │   ├── design.md      # (可选)架构决策
│   │   └── specs/         # 增量规格说明
│   └── archive/           # 已完成变更的历史归档
└── config.yaml            # 项目配置(可选)

位置 : openspec/changes/[change-name]/

Artifact 路径 说明
proposal proposal.md 需求目标、业务价值项目背景、变更范围、
design design.md 架构、数据库、接口方案,架构决策表、视觉主题、风险与权衡
specs specs/*/spec.md 功能约束、入参出参、边界用例(项目规范源)Given/When/Then格式
tasks tasks.md 拆分可落地编码任务清单

四、终端 CLI 管理命令

1. 变更 & 规范查看

复制代码
# 查看所有进行中变更+任务完成进度
openspec list
# 查看全项目所有spec基线
openspec list --specs
# JSON格式输出(CI流水线集成)
openspec list --json
# 查看单个变更详情(提案+规范+任务)
openspec show user-login
# 校验变更文档格式合法性
openspec validate user-login
# 快速查看项目仪表盘(交互式UI)
openspec view

2. 变更生命周期 CLI

复制代码
# CLI手动新建变更
openspec new change user-refund
# CLI直接归档(-y跳过确认弹窗)
openspec archive user-refund -y
# 查看单个变更状态
openspec status --change user-refund

3. Schema 规范管理

复制代码
# 列出全部可用规范模板
openspec schemas
# 查看指定schema来源路径
openspec schema which user-domain
# 安装shell命令自动补全
openspec completion install

五、应用场景

5.1、新项目从零开始

场景特点:新项目架构、方案需要技术负责人审核,需求分步细化,多轮迭代完善

1. 初始化项目(仅首次执行)

复制代码
npm install -g @fission-ai/openspec
openspec init

2、 需求探索

复制代码
/opsx:explore "新项目后台用户权限系统,包含角色管理、菜单权限、数据权限,需要适配后续多业务模块扩展"

3. 创建变更+生成初始方案

复制代码
/opsx:propose system-permission "全局权限管理模块"
/opsx:ff system-permission

执行后生成:需求说明、架构设计、数据库设计、接口规范、任务清单(初稿)

4. 人工审核

人工阅读 changes/system-permission/ 下所有文档,判断方案是否可行,执行审核命令收口

复制代码
# 人工审核:打开路径 openspec/changes/【变更名】 审阅4份md
# proposal.md(需求背景)、specs(验收标准)、design.md(技术方案)、tasks.md(开发任务)
/opsx:review system-permission

审核两种结果:

  • 审核通过:直接进入编码阶段
  • 审核驳回/需优化:进入方案迭代调整

5. 方案调整&循环迭代

适用:架构不合理、接口设计问题、需求补充、规则调整

逻辑:手动改本地 md 文档 → /opsx:ff → AI 依据修改内容全量刷新 proposal/spec/design/tasks(官方标准修改机制)

  • /opsx:ff xxx:Fast-Forward,重读当前变更全部文档,联动刷新全份方案(改需求 / 改设计 / 改验收规则统一用它)

  • /opsx:continue xxx:分步逐份刷新文档(精细微调场景,一次只更新一个文件)

    1、评审驳回→修改二选一

    方式A(简易快速):本地直接修改对应md文件
    方式B(终端):openspec edit 变更名
    #2、刷新整套方案(修改必执行)
    /opsx:ff 变更名
    #3、合规校验(可选)
    /opsx:validate 变更名

    循环:审阅→改文档→ff→再审阅,直到人工审核通过

执行效果:AI 增量修改spec/design/tasks,保留历史版本,不新建变更,可反复执行多次迭代

迭代完成后,再次执行人工审核,直至方案通过

6. 方案通过后编码落地

复制代码
/opsx:apply system-permission

7. 编码后小迭代优化

适用:开发中发现细节需求偏差、逻辑优化

复制代码
/opsx:ff system-permission "微调:优化权限校验拦截逻辑,增加空值异常处理"
/opsx:continue <变更名>
/opsx:apply system-permission

8. 收尾闭环

复制代码
/opsx:verify system-permission
/opsx:sync system-permission
/opsx:archive system-permission

5.2、老项目加功能

老项目和新建项目不一样 - 代码已经存在,你未必了解每个细节,而且不能随意改动现有逻辑。OpenSpec 专门为这种情况设计了 Brownfield 工作流。核心区别在于:新项目可以直接 propose,老项目建议先 explore

流程:探索 → 创建变更 → 实施 → 归档

复制代码
# 1. 先探索:理解现有代码、不生成任何文件
/opsx:explore "给老项目添加【用户手机号登录】功能,不影响原有账号密码登录逻辑"

# 2. 创建变更(proposal)
/opsx:propose phone-login "新增手机号验证码登录功能"

# 3. 生成完整方案(spec + design + tasks)
/opsx:ff phone-login

# 4. 按规范编码(AI 只做允许的修改)
/opsx:apply phone-login

# 5. 校验代码是否符合规范(不破坏原有逻辑)
/opsx:verify phone-login

# 6. 同步规范到项目基线
/opsx:sync phone-login

# 7. 归档完成
/opsx:archive phone-login

5.3、老项目修 BUG

修 BUG 和加功能的工作流有个关键区别:粒度更小,重点在于精确定位问题行为

复制代码
# 1. 定位问题(explore 精准描述 BUG 行为)
/opsx:explore "BUG:用户支付成功后,订单状态没有更新,仍然显示待支付"

# 2. 创建修复变更
/opsx:propose fix-order-status "修复:支付成功后订单状态不更新"


# 3. 精准修复代码
/opsx:apply fix-order-status

# 4. 验证修复是否正确
/opsx:verify fix-order-status

# 5. 同步规范
/opsx:sync fix-order-status

# 6. 归档
/opsx:archive fix-order-status

5.4、并行变更

OpenSpec 有个实用的功能:多个变更可以并行进行

比如你正在做 add-dark-mode,突然要修这个登录 BUG。不用放弃暗黑模式的进度:

复制代码
#正在做 add-dark-mode,突然要修这个登录 BUG。不用放弃暗黑模式的进度
/opsx:new fix-login-redirect
#创建新变更,快进生成所有工件
/opsx:ff
#完成修复和归档后,回到暗黑模式继续
/opsx:apply add-dark-mode

5.5、需求修改、方案调整、迭代优化

复制代码
1、手动打开:openspec/changes/my-feature/proposal.md,修改需求 / 变更内容
2、#刷新整套文档
/opsx:ff my-feature
相关推荐
天青色等烟雨..8 分钟前
智慧农林核心遥感技术99个案例实践
运维·人工智能·spring boot·后端·自动化
数智化精益手记局8 分钟前
拆解复杂项目管理流程:用项目管理流程解决跨部门协作低效难题
大数据·运维·数据库·人工智能·产品运营
xhtdj9 分钟前
Uber 如何通过批处理实现单账户每秒30+次更新
大数据·数据库·人工智能·安全·动态规划
yuguo.im15 分钟前
ElevenLabs:用一个 API 让 AI 开口说话
人工智能·eventlabs·voice ai
橙序员小站15 分钟前
从"夯"到"拉":谷歌苹果华为开发者大会,谁在裸泳?
人工智能·后端
Cho1yon17 分钟前
【AI Agent 第十三期:OpenCode 使用指南】
人工智能
EMA24 分钟前
ERP结合多 Agent 项目技术解析文档
人工智能
世间一点尘25 分钟前
我让 Claude Code 修一个 Bug,它却重构了半个项目
人工智能
科技林总25 分钟前
大模型分类测评指标清单
人工智能·可用性测试