openSpec + superpowers | 学习文档

3204 字
16 分钟
openSpec + superpowers | 学习文档

openSpec + superpowers | 学习文档#

提示

本文面向使用 AI 辅助编程的开发者,系统整理 OpenSpec 与 Superpowers 两个工具的核心能力、配置方法与协同流程。核心目标:建立”规范驱动规划 + 流程驱动执行”的 AI 工程化闭环,降低需求偏差与代码回归风险。


一、介绍#

1.1 Superpowers#

Superpowers 是由 Jesse Vincent(obra)维护的 AI Agent 工程化开发工作流集合,核心理念是 Process over Prompt(流程大于提示词)。它通过一系列结构化的子技能,约束 AI 在编码前完成思考、规划、验收条件定义,在编码中遵循 TDD、子代理审查、代码审查,在编码后完成验证与分支收尾。

核心价值

  • 将资深工程师的工作纪律(TDD、代码审查、验证优先)编码为 AI 可遵循的流程。
  • 防止 AI 一上来就写代码导致方向偏离。
  • 通过强制验证与审查环节,减少”看起来对了但测试没跑”的回归风险。

1.2 OpenSpec#

OpenSpec 是由 Fission AI 开源的规范驱动开发框架,核心理念是 Spec before Code(代码之前先写规范)。它通过结构化工件(proposal、specs、design、tasks)将需求意图、行为契约、技术方案与实现任务固化下来,作为人类与 AI 之间的”真相源”。

核心价值

  • 在 AI 写任何一行代码之前,先对齐需求范围与验收条件。
  • 通过 Delta Specs 机制让规范像代码一样版本化演进。
  • 将 BDD 风格的 Given/When/Then 场景直接转化为测试与验证依据。

二、作用#

2.1 Superpowers 的功能特性与应用场景#

特性说明适用场景
头脑风暴编码前探索需求边界、识别风险、输出验收条件新功能开发、重大重构
TDD 驱动强制先写失败测试,再写实现,最后重构任何需要保证正确性的逻辑开发
子代理开发每个任务派发独立子代理 + 两阶段审查复杂多文件改动
代码审查派发 reviewer 子代理进行五轴审查每次合并前
Git 工作树创建隔离工作区,避免污染主分支并行处理多个变更
验证铁则没有测试通过证据就不能声明完成所有任务交付节点

2.2 OpenSpec 的功能特性与应用场景#

特性说明适用场景
结构化工件proposal / specs / design / tasks 四层文档任何需要需求对齐的项目
Delta Specs用 ADDED/MODIFIED/REMOVED 描述增量变更迭代开发、需求变更
规范归档变更完成后合并到主规范知识沉淀、长期维护
verify 校验检查实现与规范的一致性交付前验收
多工具支持支持 Claude、Codex、Cursor 等 25+ AI 工具跨工具团队协作

三、使用步骤#

3.1 Superpowers 使用步骤#

Superpowers 以 Claude Code 插件形式运行,安装后自动生效。日常开发中 AI 会根据当前任务自动匹配并调用相关子技能。

典型执行流程:

1. 启动任务 → AI 检查适用的子技能
2. brainstorming → 对齐需求与验收条件
3. writing-plans → 拆分为 2-5 分钟粒度的任务
4. using-git-worktrees → 创建隔离工作区
5. subagent-driven-development → 派发子代理逐个完成任务
6. test-driven-development → 每个任务遵循 Red-Green-Refactor
7. verification-before-completion → 提交测试/命令输出作为完成证据
8. requesting-code-review → 子代理审查代码
9. finishing-a-development-branch → 测试通过 → merge/PR/keep/discard

3.2 OpenSpec 使用步骤#

OpenSpec 通过 CLI 与 AI 命令两种方式工作。

快速路径

1. /opsx:propose <change-name>
→ 生成 proposal.md、specs/、design.md、tasks.md
2. 人工审核四个工件,确认意图、范围、验收条件
3. /opsx:apply
→ AI 按 tasks.md 逐项实现
4. /opsx:verify
→ 检查实现是否覆盖所有 Spec 场景
5. /opsx:archive
→ 归档变更,增量规范合并到主规范

探索路径(需求模糊时使用):

/opsx:explore → /opsx:propose → /opsx:apply → /opsx:archive

精细路径(复杂项目、团队协作):

/opsx:new → /opsx:continue(逐个审核) → /opsx:apply → /opsx:verify → /opsx:archive

四、相关 Skill#

4.1 Superpowers 子技能#

Superpowers 共包含 14 个子技能,覆盖完整 SDLC:

类别Skill用途
核心开发test-driven-development强制 TDD:先写失败测试,再写实现
核心开发systematic-debugging4 阶段调试:复现→定位→修复→验证
核心开发verification-before-completion没有验证证据就没有完成声明
计划设计brainstorming动手前必须先头脑风暴
计划设计writing-plans拆分为 2-5 分钟的细粒度任务
计划设计executing-plans批量执行任务 + 人工检查点
代理统制subagent-driven-development每个任务派发新子代理 + 两阶段审查
代理统制dispatching-parallel-agents独立任务并行派发
代理统制using-superpowers元技能:始终检查是否有适用的技能
协作 Gitrequesting-code-review派发 code-reviewer 子代理
协作 Gitreceiving-code-review技术性评估反馈
协作 Gitfinishing-a-development-branch验证测试 → 4 选项 → 执行 → 清理
协作 Gitusing-git-worktrees创建隔离工作区 + 基线验证
协作 Gitwriting-skills用 TDD 方法写新技能

4.2 OpenSpec 命令与能力#

命令作用
/opsx:explore需求模糊时先调研,输出方案对比
/opsx:propose <name>生成 proposal、specs、design、tasks 四个工件
/opsx:apply按 tasks.md 逐项实现
/opsx:verify检查实现与 Spec 的一致性
/opsx:archive归档变更,合并增量规范
/opsx:new <name>创建新的变更工作区
/opsx:continue逐个审核并继续执行
/opsx:ff快速切换变更上下文

五、安装#

5.1 环境要求#

  • Node.js:≥ 20.19.0(OpenSpec CLI 要求)
  • AI 客户端:Claude Code(Superpowers 与 OpenSpec 命令均支持)
  • Git:用于工作区隔离与变更归档

5.2 安装 Superpowers#

Terminal window
/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplace

安装后无需手动触发,AI 会在每次任务前自动检查适用的子技能。

5.3 安装 OpenSpec#

Terminal window
# 安装 CLI
npm install -g @fission-ai/openspec@latest
# 在项目根目录初始化
cd your-project
openspec init --tools claude

初始化后会生成 .openspec 目录和 AGENTS.md 文件:

openspec/
├── specs/ # 系统当前行为规范(真相源)
│ └── <domain>/
│ └── spec.md
├── changes/ # 每个变更的工作区
│ └── <change-name>/
│ ├── proposal.md
│ ├── design.md
│ ├── tasks.md
│ └── specs/ # 增量规范(Delta Specs)
└── config.yaml

六、卸载#

6.1 卸载 Superpowers#

Terminal window
/plugin uninstall superpowers

卸载后,AI 不再自动调用 Superpowers 子技能。已创建的工作区与 Git 分支不受影响。

6.2 卸载 OpenSpec#

Terminal window
# 卸载全局 CLI
npm uninstall -g @fission-ai/openspec

6.3 残留清理#

清理 Superpowers 残留:

Terminal window
# Claude Code 插件目录(默认位置)
rm -rf ~/.claude/plugins/superpowers

清理 OpenSpec 残留:

Terminal window
# 删除项目内的 OpenSpec 目录与文件
rm -rf .openspec
rm -f AGENTS.md
# 可选:删除已归档的变更记录
rm -rf openspec/

七、协同使用方法#

7.1 协同场景#

单独使用 OpenSpec,可以解决”想清楚”的问题;单独使用 Superpowers,可以解决”做对了”的问题。两者结合时,Spec 成为 TDD 的输入源,TDD 成为 Spec 的质量保障。

适合协同使用的场景:

  • 新功能开发:需求需要结构化对齐,代码需要 TDD 与审查保障。
  • 复杂重构:涉及多文件改动,需要明确边界条件与回归测试。
  • 团队协作:Spec 作为人类与 AI 之间的契约,降低沟通歧义。
  • 长期维护:archive 沉淀知识,worktree 隔离风险。

7.2 协同优势#

维度单独 OpenSpec单独 Superpowers组合使用
需求对齐Spec 结构化对齐靠 brainstorming 口头对齐Spec 结构化对齐 + brainstorming 深度探索
代码质量无强制测试TDD 铁则TDD + Spec 双保险
知识沉淀archive 归档只有 Git 历史规范 + 代码 + 决策全保留
隔离性变更目录隔离worktree 隔离两层隔离,互不干扰
审查verify 自动检查子代理审查自动 + 子代理双重审查
回滚变更目录可追溯Git 分支可回滚规范回滚 + 代码回滚

7.3 协同操作步骤#

┌─────────────────────────────────────────────────────────────┐
│ Phase 1: 规划(OpenSpec 主导) │
│ │
│ /opsx:explore ← 需求模糊时先探索 │
│ ↓ │
│ /opsx:propose ← 生成 proposal + specs + design + tasks│
│ ↓ │
│ 人工审核工件 ← 确认意图、范围、验收条件 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Phase 2: 执行(Superpowers 主导) │
│ │
│ git worktree 隔离 ← using-git-worktrees │
│ ↓ │
│ brainstorming ← 对每个 task 做需求对齐 │
│ ↓ │
│ TDD 实现 ← 先写失败测试 → 写实现 → 重构 │
│ ↓ │
│ 验证 ← verification-before-completion │
│ ↓ │
│ 代码审查 ← requesting-code-review │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Phase 3: 收尾(两者协同) │
│ │
│ /opsx:verify ← 检查实现是否匹配 Spec │
│ ↓ │
│ finishing-a-branch ← 测试通过 → merge/PR/keep/discard │
│ ↓ │
│ /opsx:archive ← 归档 + 合并规范 │
└─────────────────────────────────────────────────────────────┘

7.4 实战示例:实现订单导出功能#

Step 1:OpenSpec 规划

Terminal window
/opsx:propose order-export

需求描述:

实现订单导出接口,支持按时间范围导出 CSV。单次最多 5000 条,时间范围不超过 31 天,只能导出当前租户数据。

OpenSpec 生成四个工件。审核后确认关键内容:

# proposal.md 要点
- 目标:订单导出 CSV 接口
- 范围内:CSV 生成、权限校验、数量限制、时间范围校验
- 范围外:异步导出、邮件通知、Excel 格式
# specs/ 关键场景
Given 用户是 tenant-A 的管理员
When 请求导出 tenant-A 在 2024-01-01 到 2024-01-31 的订单
Then 返回 CSV,字段为 order_no, amount, status, created_at
Given 用户尝试导出 tenant-B 的数据
When 请求导出
Then 返回 403,错误信息为 "无权访问该租户数据"
# tasks.md 清单
1.1 创建 OrderExportController
1.2 实现 OrderExportService(查询 + CSV 生成)
1.3 添加权限校验(只能导出当前租户)
1.4 添加数量限制(≤5000 条)
1.5 添加时间范围校验(≤31 天)
1.6 编写单元测试(覆盖 4 种边界场景)

Step 2:Superpowers 执行

进入执行阶段后,Superpowers 自动接管:

🧠 brainstorming:对 task 1.1 做需求对齐
→ 确认 Controller 路径、请求参数格式、返回体结构
🌿 git worktree:创建隔离工作区
→ git worktree add ../project-order-export -b feat/order-export
🔴 TDD:先写失败测试
→ test: 导出正常路径返回 CSV
→ test: 超过 5000 条返回 400
→ test: 越权租户返回 403
→ test: 时间范围超限返回 400
🟢 实现:让测试通过
→ 实现 Controller、Service、权限校验
🔵 验证:verification-before-completion
→ 贴出 mvn test 输出
→ 贴出 git diff --stat
🔍 代码审查:requesting-code-review
→ 子代理检查权限绕过风险、SQL 注入、边界条件

Step 3:协同收尾

Terminal window
/opsx:verify # 检查实现是否覆盖所有 Spec 场景
/opsx:archive # 归档,增量规范合并到主规范

Superpowers 的 finishing-a-development-branch 负责最终的测试验证与 Git 清理。

7.5 关键协同点#

  1. Spec 是 TDD 的输入源:OpenSpec specs/ 中的 Given/When/Then 场景可直接转化为测试用例。
  2. verify 对齐 Spec 与实现:Superpowers 的 verification-before-completion 关注”测试通过没”,OpenSpec 的 verify 关注”实现跟 Spec 对上了没”。
  3. archive 沉淀知识:OpenSpec 归档规范,Superpowers 归档代码,两者共同形成可追溯的变更记录。

八、常见问题#

Q1:OpenSpec 与 Superpowers 必须一起使用吗?#

A:不是必须。OpenSpec 更适合需求复杂、需要结构化对齐的场景;Superpowers 更适合任何需要工程纪律的编码任务。两者组合可覆盖完整闭环,但单独使用也能产生价值。

Q2:Superpowers 安装后为什么不生效?#

A:检查以下三点:

  1. 是否正确执行了 /plugin install 命令;
  2. Claude Code 版本是否支持该插件;
  3. 当前任务是否触发了相应的子技能(部分子技能只在特定场景下激活)。

Q3:OpenSpec 的 Spec 应该写到什么粒度?#

A:Spec 应描述行为契约(Given/When/Then),不写实现细节。判断标准:如果实现方式变了但外部行为不变,就不该出现在 Spec 里。

Q4:如何处理开发过程中的需求变更?#

A:回到 OpenSpec 修改 Spec,重新生成 Delta,然后再用 Superpowers 执行。不要在代码里绕过 Spec。

Q5:团队如何协作使用 OpenSpec?#

A:将 .openspec 目录纳入版本控制,每个变更独立目录,通过 PR 流程审核 proposal 与 specs。归档后的主规范作为团队共享的真相源。


九、总结#

  • OpenSpec 管”想清楚”:通过结构化工件将需求、设计、任务固化,作为人类与 AI 的对齐依据。
  • Superpowers 管”做对了”:通过 TDD、审查、验证铁则确保代码质量。
  • 协同使用时:Spec 成为 TDD 的输入源,TDD 与 verify 共同保证”做对了且做对的事”。

推荐工程流程:

/opsx:explore → /opsx:propose → 人工审核 → /opsx:apply
↓ brainstorming / writing-plans
↓ git worktree / TDD / verification / code review
↓ /opsx:verify → finishing-a-branch → /opsx:archive

对于短期原型,可以精简流程;对于需要长期维护的代码,建议完整执行上述闭环。


参考资料#

openSpec + superpowers | 学习文档
https://tblog.mmzhiku.xyz/posts/ai/ai-openspec-superpowers-workflow/
作者
MmzMing
发布于
2026-06-03
许可协议
CC BY-NC-SA 4.0

评论区

看板娘
公告
友链 互换友链

正在招募技术类博客友链,要求原创、稳定更新。点击了解更多。

查看详情
维护 服务器升级

本周日凌晨 2:00-4:00 进行服务器维护,期间站点可能短暂无法访问。

欢迎 关于我的介绍

欢迎来到我的博客,我是深耕java、python和react技术开发。热爱技术、持续学习,欢迎同好交流探讨,也欢迎大佬互换友链。

查看详情
音乐
封面

音乐

暂未播放

0:00
0:00
暂无歌词
标签
# AI 6 # 认证 5 # 安全 4 # 登录 3 # Skill 2 # Redis 2 # Bitmap 2 # 部署 2 # Java 2 # 并发编程 2 # 性能优化 2 # 前端 1 # 博客 1 # Prompt 1 # 工作流 1 # RAG 1 # Cloudflare 1 # 缓存设计 1 # 高性能 1 # Bot 1 # Umami 1 # Vercel 1 # 线程池 1 # 虚拟线程 1 # 分布式 1 # JWT 1 # OAuth2 1 # MinIO 1 # 文件存储 1 # 扫码登录 1 # WebSocket 1 # Agent 1 # Oracle 1 # 数据库 1
目录

隐私政策

更新日期: 2026/5/19
生效日期: 2026/5/19

导言#

MmzMing的知识库 是一款由 MmzMing(以下简称“我们”)提供的产品。您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。

本《隐私政策》与您所使用的 MmzMing的知识库 服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。

您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。

如对本《隐私政策》或相关事宜有任何问题,请通过 784774835@qq.com 与我们联系。

1. 我们收集的信息#

我们或我们的第三方合作伙伴提供服务时,可能会收集、储存和使用下列与您有关的信息。如果您不提供相关信息,可能无法注册成为我们的用户或无法享受我们提供的某些服务,或者无法达到相关服务拟达到的效果。

  • 个人信息:您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等。
  • 日志信息:指您使用我们的服务时,系统可能通过 cookies、标识符及相关技术收集的信息,包括您的 设备信息浏览信息点击信息,并将该等信息储存为日志信息,为您提供个性化的用户体验、保障服务安全。您可以通过浏览器设置拒绝或管理 cookie、标识符或相关技术的使用。
  • 位置信息:指您开启设备定位功能并使用我们基于位置提供的相关服务时,收集的有关您位置的信息,包括:
    • 您通过具有定位功能的移动设备使用我们的服务时,通过 GPS 或 WiFi 等方式收集的您的地理位置信息;
    • 您可以通过关闭定位功能,停止对您的地理位置信息的收集。

2. 信息的存储#

2.1 信息存储的方式和期限#

我们会通过安全的方式存储您的信息,包括本地存储(例如利用 APP 进行数据缓存)、数据库和服务器日志。

一般情况下,我们只会在为实现服务目的所必需的时间内或法律法规规定的条件下存储您的个人信息。

2.2 信息存储的地域#

我们会按照法律法规规定,将境内收集的用户个人信息存储于中国境内。

目前我们不会跨境传输或存储您的个人信息。将来如需跨境传输或存储的,我们会向您告知信息出境的目的、接收方、安全保证措施和安全风险,并征得您的同意。

2.3 产品或服务停止运营时的通知#

当我们的产品或服务发生停止运营的情况时,我们将以推送通知、公告等形式通知您,并在合理期限内删除您的个人信息或进行匿名化处理,法律法规另有规定的除外。

3. 信息安全#

我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如 SSL)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。

4. 我们如何使用信息#

我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:

  • 向您提供服务;
  • 在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性;
  • 帮助我们设计新服务,改善我们现有服务;
  • 使我们更加了解您如何接入和使用我们的服务,从而针对性地回应您的个性化需求,例如语言设定、位置设定、个性化的帮助服务和指示,或对您和其他用户作出其他方面的回应;
  • 向您提供与您更加相关的广告以替代普遍投放的广告;
  • 评估我们服务中的广告和其他促销及推广活动的效果,并加以改善;
  • 软件认证或管理软件升级;
  • 让您参与有关我们产品和服务的调查。

5. 信息共享#

目前,我们不会主动共享或转让您的个人信息至第三方,如存在其他共享或转让您的个人信息或您需要我们将您的个人信息共享或转让至第三方情形时,我们会直接或确认第三方征得您对上述行为的明示同意。

为了投放广告,评估、优化广告投放效果等目的,我们需要向广告主及其代理商等第三方合作伙伴共享您的部分数据,要求其严格遵守我们关于数据隐私保护的措施与要求,包括但不限于根据数据保护协议、承诺书及相关数据处理政策进行处理,避免识别出个人身份,保障隐私安全。

我们不会向合作伙伴分享可用于识别您个人身份的信息(例如您的姓名或电子邮件地址),除非您明确授权。

我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明示同意。

随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知您相关情形,按照法律法规及不低于本《隐私政策》所要求的标准继续保护或要求新的控制者继续保护您的个人信息。

另外,根据相关法律法规及国家标准,以下情形中,我们可能会共享、转让、公开披露个人信息无需事先征得您的授权同意:

  • 与国家安全、国防安全直接相关的;
  • 与公共安全、公共卫生、重大公共利益直接相关的;
  • 犯罪侦查、起诉、审判和判决执行等直接相关的;
  • 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
  • 个人信息主体自行向社会公众公开个人信息的;
  • 从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。

6. 您的权利#

在您使用我们的服务期间,我们可能会视产品具体情况为您提供相应的操作设置,以便您可以查询、删除、更正或撤回您的相关个人信息,您可参考相应的具体指引进行操作。此外,我们还设置了投诉举报渠道,您的意见将会得到及时的处理。如果您无法通过上述途径和方式行使您的个人信息主体权利,您可以通过本《隐私政策》中提供的联系方式提出您的请求,我们会按照法律法规的规定予以反馈。

当您决定不再使用我们的产品或服务时,可以申请注销账户。注销账户后,除法律法规另有规定外,我们将删除或匿名化处理您的个人信息。

7. 变更#

我们可能适时修订本《隐私政策》的条款。当变更发生时,我们会在版本更新时向您提示新的《隐私政策》,并向您说明生效日期。请您仔细阅读变更后的《隐私政策》内容,若您继续使用我们的服务,即表示您同意我们按照更新后的《隐私政策》处理您的个人信息。

8. 未成年人保护#

我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。