OpenSpec:在老项目上做增量规格

2,873 字 · 预计阅读 8 分钟

OpenSpec 是给已经跑了一段时间的项目用的。

上一节的 Spec Kit 是从新功能出发的:从头写需求、从头写方案。日常里更常见的是这些:

  • 在一个跑了三年的老项目上,给订单列表加个导出
  • 改一下登录的超时时间
  • 给某个接口加一个参数

这种时候从头写一份完整规格太重。OpenSpec 的做法是:项目里放一份总规格,描述系统现在是什么样;每次改动只写一份增量。

OpenSpec 由 Fission AI 维护,MIT 许可。README 里用五个词描述自己的理念:

  • 灵活而不僵硬:没有阶段关卡,哪个文件有意义就先写哪个
  • 迭代而不是瀑布
  • 简单而不复杂
  • 为老项目设计,不只是为新项目
  • 从个人项目到企业都能用

一、安装

需要 Node.js 20.19 以上。

bash
npm install -g @fission-ai/openspec@latest

macOS 也可以用 Homebrew:brew install openspec。

然后在项目里初始化:

bash
cd your-project
openspec init

它会问你用哪些 AI 工具,选 Claude Code,然后生成:

openspec/
├── specs/       ← 总规格:系统现在是什么样
├── changes/     ← 进行中的改动,一个改动一个文件夹
└── config.yaml  ← 项目配置(可选)

同时在 .claude/ 下装好 OpenSpec 的命令和 Skill。

以后升级 OpenSpec,运行 openspec update 重新生成这些文件。


二、全景图:三条命令

OpenSpec:总规格 + 增量规格,归档时合并

README 开头用一段对话演示了完整的一轮:先 explore 想清楚,再 propose、apply、archive:

OpenSpec README 里的完整一轮

默认安装的是核心配置,日常只用三条命令:

/opsx:propose  →  /opsx:apply  →  /opsx:archive
   提案              实现             归档
命令 做什么 交出什么
/opsx:explore 可选:还没想清楚要不要做时,先和 AI 一起调研、讨论 不产生文件,只是一场讨论
/opsx:propose 一步生成改动所需的全部规划文件 openspec/changes/<改动名>/ 下的四个文件
/opsx:apply 按任务清单实现,做完一个勾一个 代码,tasks.md 里的勾
/opsx:archive 把增量合并进总规格,改动文件夹移到归档区 更新后的 openspec/specs/

还有两个辅助命令:/opsx:update 在你改了主意时同步更新规划文件,/opsx:sync 在不归档的情况下先把增量合并进总规格。

全流程只有两处关卡,都在你手上:

  1. propose 之后:审一遍规划文件,满意了再 apply
  2. archive 之前:确认实现符合规格

和 Spec Kit 比,OpenSpec 砍掉了不少步骤。它的 README 直接说 Spec Kit 很全面,但很重,阶段固定、Markdown 文件多;OpenSpec 选择更轻,容忍来回改。


三、一个改动长什么样

在订单导出的项目里运行:

/opsx:propose 给订单列表加 CSV 导出,按当前筛选条件,最多 10 万行

它会在 openspec/changes/add-order-export/ 下生成四个文件:

openspec/changes/add-order-export/
├── proposal.md      ← 为什么改、改什么
├── specs/
│   └── orders/
│       └── spec.md  ← 增量规格:哪些需求是新增的、修改的、删除的
├── design.md        ← 技术方案
└── tasks.md         ← 实现清单

OpenSpec 自己的仓库就在用 OpenSpec 管理需求:openspec/specs/ 下有 36 份总规格,openspec/changes/ 下是一个个进行中的改动。随便打开一个:

OpenSpec 仓库里一个真实的改动文件夹

除了上面说的四个文件,还有一个隐藏的 .openspec.yaml,记录这个改动的元数据。

1. proposal.md:为什么,改什么

简短的说明:为什么要做这个改动、改动的范围、影响哪些部分。

本文是会员内容

全文 2,873 字,已试读约 30%。开通专业版可阅读全文,并解锁全部官方课程与后续更新。

开通专业版

支持 7 天无理由退款 · 早鸟价 99 元/年(售完恢复365/年)

课程中涉及的第三方项目,其著作权与商标归各自权利人所有;引用处的署名与许可见《开源与来源说明》。