OpenSpec 与 Superpowers
OpenSpec 负责规格的沉淀与归档(做什么、为什么做),Superpowers 负责 AI 编码的执行纪律(TDD、调试、review、验证);两者互补,在 Claude Code 中组合使用时需在 `CLAUDE.md` 里划清职责,避免一个需求产生两份文档。
title: "OpenSpec 与 Superpowers:Claude Code 里的两套 AI 开发工作流,怎么选、怎么用" date: 2026-10-13 tags: [Claude Code, OpenSpec, Superpowers, Spec-Driven Development, AI Coding] description: 一篇讲清 OpenSpec 与 Superpowers 的定位差异、适用场景、在 Claude Code 中的安装与使用,以及组合使用和常见踩坑。
OpenSpec 与 Superpowers:Claude Code 里的两套 AI 开发工作流,怎么选、怎么用
用 AI 写代码,最常见的两类问题是:需求没对齐就开始写,以及写的过程中不讲纪律(跳过测试、不查根因、说"完成了"却没验证)。
OpenSpec 和 Superpowers 就是分别针对这两类问题的工具。社区里经常把它们放在一起比较,但它们其实是互补关系,不是二选一。本文整理了它们的定位、适用场景,以及在 Claude Code 里的具体用法和踩坑记录。
本文基于 2026 年 10 月的资料整理,命令名和默认行为在不同版本之间可能有调整,请以官方文档为准。
一、先搞清楚:它们分别管什么
一句话概括:
- OpenSpec 管"产物层":要做什么、为什么做,以及规格(spec)怎么沉淀、变更、归档。它是文档优先的。
- Superpowers 管"行为层":AI 在讨论、规划、编码时按什么纪律做事。它是对话优先的。
| 对比项 | OpenSpec | Superpowers |
|---|---|---|
| 解决的问题 | 需求和规格不清、变更无记录 | AI 编码缺乏纪律 |
| 核心产物 | proposal / specs / design / tasks | 设计文档、实施计划 |
| 工作方式 | 文档驱动,规格落在仓库里 | 对话驱动,skills 自动触发 |
| 形态 | CLI + 生成的 skills / commands | Claude Code 插件(一套 skills) |
| 强项 | 可 review、可版本化、可归档 | TDD、系统化调试、子 agent、code review |
二、分别适合什么场景
OpenSpec 适合
- 团队协作:规格需要被 review、被版本化,让多人对"要做什么"有共识。
- 需求变更要留痕:它覆盖 proposal、spec 生命周期和归档。
- 长周期、跨会话的功能:规格落在仓库里,会话中断后 AI 能接着读,不用重新猜进度。
- 单仓库项目:规格放在被描述的仓库内部,单仓库体验很好;跨仓库协作则比较吃力。
Superpowers 适合
- 个人开发或一次性任务:上手顺手,但产出的 spec 不是为团队复用设计的。
- 需求模糊,想先理清思路:brainstorming 会通过追问把规格"聊"出来。
- AI 总是跳过测试、乱改代码:想用 TDD 约束代码质量。
- 任务可拆分、适合并行:可以用子 agent 并行执行。
快速选择表
| 场景 | 建议 |
|---|---|
| 小改动、bug 修复、个人小项目 | 都不用,或只用 Superpowers 的 TDD |
| 个人做中等功能,想要纪律 | Superpowers |
| 团队协作,需求要评审和归档 | OpenSpec |
| 团队协作,且对代码质量要求高 | OpenSpec 管规划 + Superpowers 管编码 |
| 多仓库协作 | 单靠 OpenSpec 不够,需要额外的编排方案 |
三、OpenSpec 在 Claude Code 中怎么用
安装与初始化
OpenSpec 对 Claude Code 是官方内置支持的,不需要另外找 skill 来装:
npm install -g @fission-ai/openspec@latest
cd your-project
openspec init # 可用 --tools claude 指定只为 Claude Code 生成
这里要分清两类命令:
openspec ...在终端里运行(如openspec init、openspec update)。/opsx:...在 AI 助手的对话框里运行。
openspec init 的作用,就是把后者安装到你的 AI 工具里。
生成了哪些文件
在 Claude Code 里,OpenSpec 会生成 skills 和 commands 两种形式:
- skills:
.claude/skills/openspec-*/SKILL.md - commands:
.claude/commands/opsx/<id>.md
这些文件在项目目录里,打开该项目的 Claude Code 就能直接用。
为什么输入 / 后看到"重复"的指令
初始化完成后,输入 /opsx 或 /openspec 会看到两套名字不同但功能相同的指令。这并不是装重复了,而是同一功能的 command 版和 skill 版:
| command 版 | skill 版 | 作用 |
|---|---|---|
/opsx:explore |
/openspec-explore |
探索想法、调研问题,不要求固定结构 |
/opsx:propose |
/openspec-propose |
提出新变更,一次生成规划文档 |
/opsx:update |
/openspec-update-change |
修改已有变更的规划文档 |
/opsx:apply |
/openspec-apply-change |
按任务清单实现代码 |
/opsx:sync |
/openspec-sync-specs |
把变更里的 delta specs 合并到主 specs |
/opsx:archive |
/openspec-archive-change |
归档已完成的变更 |
两者功能等价,一般用更短的 /opsx: 形式即可。
典型流程
/opsx:explore(可选)→ /opsx:propose → /opsx:apply → /opsx:archive
↑ │
└ /opsx:update ←┘(中途改方案时)
- explore:开工前先想清楚,想法成型后再转到 propose。
- propose:例如
/opsx:propose add-dark-mode,一次生成 proposal、specs、design、tasks 等规划产物。 - update:实现中发现设计有问题时用。如果变更已经实现过,它会建议接着跑 apply,让代码跟上修改后的计划;如果修改改变了需求的本意,应该另开新变更。
- apply:实现 tasks,并按需更新文档。
- sync:把 delta specs 合并进主 specs,通常在 archive 时自动完成,一般不用单独跑。
- archive:把变更移到
openspec/changes/archive/日期-名称/,需要时会提示先同步 specs。
默认的 core 配置只包含上述几个命令。想用扩展命令(new、continue、ff、verify、bulk-archive、onboard),先运行 openspec config profile 选择,再运行 openspec update 应用。
升级 CLI 后,记得在项目里再跑一次 openspec update,让生成的 skills 和 commands 同步到最新版。
四、Superpowers 在 Claude Code 中怎么用
安装
Superpowers 是一个 Claude Code 插件,在 Claude Code 里运行:
/plugin install superpowers@claude-plugins-official
它现在已进入 Anthropic 官方插件市场。也可以使用作者自己的市场:
/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplace
装完新开一个会话,用 /help 验证。
使用方式:自动触发
和 OpenSpec 需要手动敲命令不同,Superpowers 的 skills 会自动触发。你只需要描述想做什么,它就会引导 Claude 走完整流程。装好之后,写代码之前应该先触发 brainstorming。
完整流程
- brainstorming:以苏格拉底式追问打磨想法,保存设计文档(默认在
docs/superpowers/specs/)。 - using-git-worktrees:建立隔离的工作区。
- writing-plans:把设计拆成约 2–5 分钟一个的小任务,带文件路径和验证步骤(默认在
docs/superpowers/plans/)。 - subagent-driven-development / executing-plans:按计划执行。
- test-driven-development:强制 red-green-refactor,先写代码后补测试会被要求删掉重来。
- requesting-code-review:派 reviewer 检查,并按严重程度分级。
- finishing-a-development-branch:收尾分支。
14 个 skills 速查
设计与规划
brainstorming:追问式打磨想法,保存设计文档,在写代码之前触发。using-git-worktrees:用隔离分支做并行开发,通常在设计获批后触发。writing-plans:把设计拆成小而可验证的任务。
执行
executing-plans:按计划逐项执行。subagent-driven-development:为每个任务派子 agent,完成后做两阶段 review,先查规格符合度,再查代码质量。dispatching-parallel-agents:同时启动多个 agent 处理相互独立的任务,例如让 3 个 agent 分别调查三个各自失败的测试。test-driven-development:强制 red-green-refactor 循环。
质量把关
systematic-debugging:没找到根因,不许直接修。requesting-code-review:提交 review 前的检查清单和结构化请求。receiving-code-review:处理 review 反馈并据此修改代码。verification-before-completion:宣称"修好了""做完了"之前,必须用证据确认,比如实际跑测试。
收尾
finishing-a-development-branch:收尾分支,完成流程的最后一步。
框架本身
using-superpowers:路由器,初始化框架并把任务引到合适的 skill。writing-skills:按最佳实践创建新 skill,想自己扩展流程时才用得到。
手动指定 skill 的场景
自动触发不稳定,或只想单独用某个能力时,可以手动调用,比较常用的有:
- 修 bug:
/superpowers:systematic-debugging - 不想让它急着说"完成了":
/superpowers:verification-before-completion - 多个独立任务想并行:
/superpowers:dispatching-parallel-agents - 代码写完想审一遍:
/superpowers:requesting-code-review
升级
/plugin update superpowers
skills 会随插件一起更新,更新完新开一个会话让新版本生效。
五、两者组合使用:避免"一个需求两份文档"
最常见的搭配是:OpenSpec 管规格沉淀,Superpowers 管执行纪律。
但要注意,它们不会自动衔接。同时装上之后,Superpowers 的 brainstorming 会自动触发并写一份设计文档,你再跑 OpenSpec 的 propose 又会得到第二份 spec,一个需求出现两份文档。
解决办法是在项目的 CLAUDE.md 里写明路由规则:
- 规划阶段只由 OpenSpec 负责,不运行 Superpowers 的
brainstorming和writing-plans。 - OpenSpec 生成规划产物,Superpowers 只负责编码阶段(TDD、子 agent、code review、验证)。
另外,Superpowers 的约束密度对日常小改动偏重,完整流程 token 消耗也大。小任务直接让 Claude 做,不必触发整套流程。
六、踩坑记录
坑 1:openspec init 成功了,输入 /opsx 却没有命令
Claude Code 是在会话启动时才扫描 .claude/commands 和 .claude/skills 的。如果 openspec init 是在 Claude Code 已经打开之后运行的,新文件不会被加载。排查顺序:
- 刷新会话:新开一个对话,或用
Ctrl+Shift+P运行Developer: Reload Window。 - 确认工作区目录:Claude Code 只读取当前工作区根目录下的
.claude/,要确认 VS Code 打开的就是运行openspec init的那个文件夹。 - 确认文件存在:检查是否有
.claude/commands/opsx/*.md和.claude/skills/openspec-*/SKILL.md。 - 换个关键词:skills 可能以
/openspec-propose这类名字出现,commands 才是/opsx:propose。 - 用终端版对比:在项目目录里直接运行
claude,输入/看列表。终端版能用而扩展里不能,通常是扩展版本问题,更新扩展再试。
坑 2:VS Code 扩展里运行 /plugin 提示 "isn't available in this environment"
这不是 Superpowers 的问题,而是 VS Code 里的 Claude Code 扩展不支持 /plugin 命令。终端版 Claude Code 里这个命令是可用的。扩展里的替代方案:
- 图形界面:输入
/,在菜单底部 Customize 区域点 Manage plugins,在界面里查看版本并更新。 - 终端命令:在 VS Code 的终端里(不是对话框里)运行
claude plugin update superpowers,不确定子命令时先运行claude plugin --help。 - 更新后运行
/reload-plugins,或新开会话,让新版本生效。
坑 3:升级后命令对不上
命令名和 skill 行为会随版本调整。升级后用 /help 看一下当前可用的命令,并检查 CLAUDE.md 里针对旧版 skill 名写的路由规则是否仍然匹配。
七、总结
- OpenSpec 解决"做什么、为什么做",把规格变成可 review、可版本化、可归档的文档,适合团队协作和长周期变更。
- Superpowers 解决"怎么做",用一套自动触发的 skills 约束 AI 的编码纪律,适合个人开发和对代码质量有要求的场景。
- 两者互补,组合使用时务必在
CLAUDE.md里划清职责,避免一个需求出现两份文档。 - 小改动不要上完整流程,先在一个中等大小的功能上试跑一轮,再决定要不要全面采用。
参考资料
- OpenSpec 官方文档:https://openspec.dev/docs/opsx
- OpenSpec 命令工作方式:https://openspec.dev/docs/how-commands-work
- OpenSpec v1.0.0 发布说明:https://github.com/Fission-AI/OpenSpec/releases/tag/v1.0.0
- Superpowers 仓库:https://github.com/obra/superpowers