# OpenSpec:轻量级规范驱动开发

6 阅读3分钟

第3篇:入门级——OpenSpec:轻量级规范驱动开发

让每次改动都有据可查

3.1 概念:什么是OpenSpec?

OpenSpec是一个轻量级的规范驱动开发工具,定位是“变更即代码”。

与传统的重规范(如Spec-Kit需要提前写完整规范文档)不同,OpenSpec采用增量变更模式:每次改动都记录在changes/目录,完成后归档到specs/

3.2 核心理念:变更即代码

OpenSpec的目录结构:

text

openspec/
├── changes/                    # 活跃变更
│   ├── implement-news-agent/
│   │   ├── proposal.md         # 为什么要改
│   │   ├── tasks.md            # 要做什么(可勾选)
│   │   ├── design.md           # 怎么做(技术决策)
│   │   └── specs/              # 规范增量
│   │       └── news-agent/
│   │           └── spec.md     # 新增/修改的规范
│   └── archive/                # 已完成的变更
│       └── 2026-01-15-clarify-requirements/
└── specs/                      # 当前真相(所有规范的最终版本)
    ├── news-agent/
    │   └── spec.md
    └── event-analysis/
        └── spec.md

核心理念:每次变更都是独立的,完成后归档,spec自动合并。

3.3 核心命令

 

命令作用使用场景
/opsx:new创建新变更开始一个新功能
/opsx:explore纯思考模式需求澄清、方案探索
/opsx:apply执行任务按tasks.md逐条实现
/opsx:archive归档变更功能完成后归档

详解:/opsx:explore

这是OpenSpec最独特的功能——只思考、不写代码。

使用示例:

text

/opsx:explore

我想用Yahoo Finance API获取股票新闻,评估一下技术可行性。

输出:

markdown

【代码库调研】
- 发现已有`src/utils/http_client.py`可复用
- 需要新建`src/agents/news_agent.py`

【技术评估】
Yahoo Finance API:
- 免费,无需认证
- 限制:每分钟10次请求
- 返回数据:标题、发布时间、摘要

【建议】
采用yfinance库,已在requirements.txt中

【是否生成spec草案?】

它只输出分析和建议,不写业务代码。

详解:/opsx:apply

这是执行核心。改造后,它会按5阶段流程自动执行每个任务。

3.4 解决什么问题?

 

问题OpenSpec如何解决
改动无记录每个变更都有proposal
不知道为什么这么设计design.md记录决策
合规审计难archive是完整历史
新人看不懂代码specs是当前真相
需求变更混乱每次变更独立,可追溯

3.5 安装方法

bash

# 安装(需要Node.js 20.19+)
npm install -g openspec-cn/openspec

# 在项目根目录初始化
cd your-project
openspec init

3.6 验证是否生效

bash

# 查看当前变更
openspec list

# 创建第一个变更
/opsx:new my-first-change

如果生成openspec/changes/my-first-change/目录,说明安装成功。

3.7 今天对话中的干货

OpenSpec vs Spec-Kit

 

维度OpenSpecSpec-Kit
定位轻量级变更管理重型规范驱动
文档负担低(按需创建)高(前置编写)
学习曲线平缓陡峭
适合场景POC、中小项目大型、合规严格项目

Explore的价值

问:Explore和普通对话有什么区别?

答:普通对话中,AI会忍不住写代码。Explore是纯思考模式,AI被强制“只动脑不动手”。非常适合需求澄清和技术调研阶段。

核心洞见

“OpenSpec的核心不是规范,而是规范的变化。”——它记录的不是最终状态,而是从A到B的完整路径。