Skip to content
书与尺

OpenSpec

OpenSpec 是 Fission AI 开源的 spec-driven development 框架。核心理念:在写代码之前先定 spec,spec 是产物,代码是实现细节。区别于”先写代码再补文档”的惯性——OpenSpec 把规格书作为唯一事实来源,代码只是对规格书的实现。

Terminal window
npx skills add https://github.com/Fission-AI/OpenSpec --skill openspec

安装后获得三个独立命令。

命令做什么真实用例
/openspec-explore探索需求,理解问题域我们探索一下,如果要制定滚动条鼠标滚动,如何制定
/openspec-propose生成技术规格书(RFC 2119 标准)输出含 Given/When/Then 场景的 spec
/openspec-apply-change按 spec 执行实现对照 spec 逐条实现和验证

探索阶段不做任何决定,只做信息收集。它会搜索现有代码、分析相关模块、理解数据流——然后把发现整理成结构化笔记。

/openspec-explore 我们探索一下,如果要制定滚动条鼠标滚动,如何制定

输出包括:涉及的模块列表、现有行为分析、潜在影响范围、需要澄清的边界条件。

基于探索结果,生成符合 RFC 2119 标准的技术规格书。关键词严格使用 MUST / MUST NOT / SHOULD / MAY。

/openspec-propose 基于刚才的探索结果,生成滚动条鼠标行为的规格书

典型输出结构:

# Scroll Behavior Specification
## Scope
影响范围:文件列表滚动、编辑器滚动、终端滚动
## Requirements
### REQ-1: Mouse Wheel Scroll Direction
The system MUST scroll content in the direction of mouse wheel rotation.
- Given 用户处于文件列表视图中
- When 向下滚动鼠标滚轮
- Then 列表内容向下滚动,视口向上移动
### REQ-2: Scroll Speed
The system SHOULD respect the OS native scroll speed setting.
...

对照 spec 逐条实现,每完成一个 requirement 就验证合规性。

/openspec-apply-change docs/specs/scroll-behavior.md

执行流程:

  1. 解析 spec 中的每个 requirement(REQ-1, REQ-2, …)
  2. 按依赖关系排序
  3. 逐个实现,每个 requirement 实现后验证
  4. 输出合规性报告(PASS/FAIL/PARTIAL)

完整路径:

/openspec-explore → /openspec-propose → /openspec-apply-change

典型场景:接手一个涉及多个模块的需求,不想边改边猜。先探索(了解全貌),再规格化(锁定契约),最后实现(对照执行)。

# 步骤 1:探索
/openspec-explore 用户认证模块目前支持 JWT,要新增 OAuth 2.0 登录
# 步骤 2:生成规格书
/openspec-propose 基于探索结果生成 OAuth 2.0 集成的规格书
# 步骤 3:按 spec 实现
/openspec-apply-change docs/specs/oauth-integration.md
维度OpenSpecSuperpowers
规格标准RFC 2119(MUST/SHOULD/MAY)Markdown 计划文件
场景格式Given/When/Then 强制自由格式
执行方式逐 requirement 验证合规按 task 列表执行
变更追踪内置 requirement 状态手动勾选 task
适合场景需求复杂、多人协作、需要追溯日常功能开发、单人项目
学习曲线高 —— 需要写正式规格低 —— 随手写计划