
OpenSpec
OpenSpec 是 Fission AI 开源的 spec-driven development 框架。核心理念:在写代码之前先定 spec,spec 是产物,代码是实现细节。区别于”先写代码再补文档”的惯性——OpenSpec 把规格书作为唯一事实来源,代码只是对规格书的实现。
npx skills add https://github.com/Fission-AI/OpenSpec --skill openspec安装后获得三个独立命令。
三个核心命令
Section titled “三个核心命令”| 命令 | 做什么 | 真实用例 |
|---|---|---|
/openspec-explore | 探索需求,理解问题域 | 我们探索一下,如果要制定滚动条鼠标滚动,如何制定 |
/openspec-propose | 生成技术规格书(RFC 2119 标准) | 输出含 Given/When/Then 场景的 spec |
/openspec-apply-change | 按 spec 执行实现 | 对照 spec 逐条实现和验证 |
/openspec-explore
Section titled “/openspec-explore”探索阶段不做任何决定,只做信息收集。它会搜索现有代码、分析相关模块、理解数据流——然后把发现整理成结构化笔记。
/openspec-explore 我们探索一下,如果要制定滚动条鼠标滚动,如何制定输出包括:涉及的模块列表、现有行为分析、潜在影响范围、需要澄清的边界条件。
/openspec-propose
Section titled “/openspec-propose”基于探索结果,生成符合 RFC 2119 标准的技术规格书。关键词严格使用 MUST / MUST NOT / SHOULD / MAY。
/openspec-propose 基于刚才的探索结果,生成滚动条鼠标行为的规格书典型输出结构:
# Scroll Behavior Specification
## Scope影响范围:文件列表滚动、编辑器滚动、终端滚动
## Requirements
### REQ-1: Mouse Wheel Scroll DirectionThe system MUST scroll content in the direction of mouse wheel rotation. - Given 用户处于文件列表视图中 - When 向下滚动鼠标滚轮 - Then 列表内容向下滚动,视口向上移动
### REQ-2: Scroll SpeedThe system SHOULD respect the OS native scroll speed setting..../openspec-apply-change
Section titled “/openspec-apply-change”对照 spec 逐条实现,每完成一个 requirement 就验证合规性。
/openspec-apply-change docs/specs/scroll-behavior.md执行流程:
- 解析 spec 中的每个 requirement(REQ-1, REQ-2, …)
- 按依赖关系排序
- 逐个实现,每个 requirement 实现后验证
- 输出合规性报告(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与 Superpowers 的对比
Section titled “与 Superpowers 的对比”| 维度 | OpenSpec | Superpowers |
|---|---|---|
| 规格标准 | RFC 2119(MUST/SHOULD/MAY) | Markdown 计划文件 |
| 场景格式 | Given/When/Then 强制 | 自由格式 |
| 执行方式 | 逐 requirement 验证合规 | 按 task 列表执行 |
| 变更追踪 | 内置 requirement 状态 | 手动勾选 task |
| 适合场景 | 需求复杂、多人协作、需要追溯 | 日常功能开发、单人项目 |
| 学习曲线 | 高 —— 需要写正式规格 | 低 —— 随手写计划 |