← 返回主页 14 Skills MIT License obra/superpowers

Superpowers 中文操作手册

完整的软件开发方法论——让 AI Agent 像有纪律的工程师而非野生大模型

1. 什么是 Superpowers

Superpowers 是 Jesse Vincent(前 Twitter 工程师,blog.fsck.com)开源的 AI 编码方法论框架。它由 14 个高度结构化的 skill(markdown 文件)组成,不是命令集合,而是一套软件工程方法论

Jesse 在 README 里的核心承诺

"Claude can work autonomously for a couple hours at a time without deviating from the plan you put together."

(写好计划后,Claude 能连续自主工作几小时不偏离)

它和其他 AI 编码工具的关键差异

维度普通 AgentSuperpowers
触发方式需要你显式说命令自动触发(system prompt 强制)
方法论每次写代码都重头来TDD / 系统调试等被编码成 skill
长时执行1 小时后偏离 plan子 Agent 委派,每个 task 独立 context
强制力"建议" TDD"删除你违规写的代码" 强制 TDD
自我验证说"完成"就完成必须出示运行命令证据

核心组件

Superpowers = 14 个 skill + 初始指令(system prompt 注入)

  • 初始指令:让 Agent 在每次响应前必须 check 是否有相关 skill
  • 14 skill:覆盖 brainstorming、TDD、调试、Git Worktree、子 Agent 委派、代码 review 等核心工程动作

它适合谁?

  • 独立开发者:希望 AI 长时间无人值守工作
  • 资深工程师:受不了 AI "瞎写、瞎改、瞎说完成"
  • 追求代码质量:想强制 TDD、root-cause 调试
  • 团队领导:让 AI 输出符合工程师纪律的代码

2. 安装方式

Superpowers 已支持 8 个 AI 编码 host。每个 host 安装方式不同——如果你用多个 host 要分别安装

2.1 Claude Code(最推荐 host)

方式 A:官方插件市场

/plugin install superpowers@claude-plugins-official

方式 B:Superpowers 自家市场(含其他相关插件)

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

2.2 OpenCode(本机已通过此方式安装)

对 OpenCode Agent 说:

Fetch and follow instructions from 
https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md

Agent 会自动 fetch 安装指令并执行(拉取仓库、注册到 OpenCode 的 plugin/skill 目录)。

✅ 验证本机安装
ls ~/.cache/opencode/packages/superpowers@*/node_modules/superpowers/skills/
应看到 14 个 skill 目录。每次 OpenCode session 启动会自动加载。

2.3 其他 host

Host安装命令
Codex CLI 在 Codex 内输入 /plugins,搜索 "superpowers",选择 Install Plugin
Codex App 侧栏 Plugins → Coding 分类 → Superpowers → 点 +
Factory Droid
droid plugin marketplace add https://github.com/obra/superpowers
droid plugin install superpowers@superpowers
Gemini CLI
gemini extensions install https://github.com/obra/superpowers
gemini extensions update superpowers   # 升级
Cursor /add-plugin superpowers(Cursor Agent chat 中)
GitHub Copilot CLI
copilot plugin marketplace add obra/superpowers-marketplace
copilot plugin install superpowers@superpowers-marketplace
多 host 用户注意 Superpowers 的 skill 是 host-specific 安装(每个 host 单独的 plugin/skill 目录)。如果你既用 Claude Code 又用 OpenCode,要在两个 host 各装一次。

3. 核心理念

3.1 三大铁律(Iron Laws)

Superpowers 在 skill 文件里强制 3 条铁律。新手第一次见到会感到震撼——它真的会执行。

铁律 #1:TDD 不可违反

NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
没有失败的测试,就不能写实现代码
⚠️ 真实违规处理 如果你违反顺序先写了实现代码,test-driven-development skill 会让 Agent 直接删除你写的代码,强制重新先写 test。Jesse 在 SKILL.md 写:"Write code before the test? Delete it. Start over."

铁律 #2:调试不可绕过根因

NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
没找到根因,不允许提出修复方案

systematic-debugging skill 强制走 4 阶段:Reproduce → Isolate → Fix → Verify。每个阶段不完成不能进下一阶段。

铁律 #3:完成必须有证据

NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
没有新鲜验证证据,不允许声称完成

verification-before-completion skill 检查 5 件事:

  1. IDENTIFY:什么命令能证明这个声明?
  2. RUN:执行完整命令(不能复用旧输出)
  3. READ:完整读输出,检查 exit code,统计失败数
  4. VERIFY:输出是否真的支持你的声明?
  5. ONLY THEN:才能说"完成"

3.2 自动触发机制

不像 gstack 需要你手动 /skill,Superpowers 通过 using-superpowers skill 在 system prompt 注入这段:

If you think there is even a 1% chance a skill might apply 
to what you are doing, you ABSOLUTELY MUST invoke the skill.

IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. 
YOU MUST USE IT.

This is not negotiable. This is not optional.

结果:Agent 看到任何"创造性任务"都会自检:是否要先 brainstorming?是否要 using-git-worktrees?这种自动检查在每次响应前发生。

3.3 指令优先级体系

三层优先级,用户指令永远最高

优先级来源含义
🥇 最高 用户在 CLAUDE.md / AGENTS.md 中的明确指令 "这个项目不要 TDD" — Superpowers 让步
🥈 中 Superpowers skill 覆盖默认 system prompt 行为
🥉 低 默认 system prompt Claude / OpenCode 等的原始行为
这是好设计 如果 PoC 阶段不想被 TDD 强制,在项目根写一行:
# AGENTS.md
This is a prototype, skip TDD. Move fast.
Superpowers 立即让步。

4. 14 个 Skill 详解(含触发条件、设计原因、使用好处)

每个 Skill 都给出 4 个维度的解释:

  • 触发条件:什么场景下 Agent 会自动调用它
  • 具体行为:被调用后做什么
  • 为什么这样设计:背后的工程学原理
  • 这样用的好处:相比"AI 直接写"能避免什么坑

元能力(2 个)

using-superpowers

Meta · 总入口

触发条件:每次会话开始(system prompt 强制注入)。Agent 收到任何用户消息前,必须先 check 是否有相关 skill 适用。

具体行为

  • 注入"1% 规则":哪怕只有 1% 可能某 skill 适用,也必须 invoke
  • 建立优先级:用户指令 > Superpowers skill > 默认 system prompt
  • 提供 platform tool 映射(Claude / OpenCode / Gemini 各自的工具名)

为什么这样设计

Skill 默认是被动的——Agent 想用才用。但 AI 经常"觉得不需要"而跳过 brainstorming,直接写出错误代码。using-superpowers 把"是否使用 skill"从偏好变成强制,关闭了 Agent "走捷径"的退路。

这样用的好处

  • 方法论真的会被执行:不是"AI 想起来才用"
  • 用户指令永远最高:你说"skip TDD",立即生效
  • 跨平台一致:同样的 skill 在 Claude/OpenCode/Gemini 行为相同

writing-skills

Meta · 自定义

触发条件:用户要求"创建新 skill"或"修改现有 skill"时自动激活。

具体行为

  • 引导你写符合 Superpowers 规范的 SKILL.md
  • 强制包含 frontmatter(name + description)
  • 提供测试方法论(怎么验证 skill 有效)
  • 检查 skill 是否会与现有 14 个冲突

为什么这样设计

Superpowers 官方不接受社区贡献新 skill(维护成本高)。但 Jesse 提供了 writing-skills 让你在自己的项目 / 团队内写私有 skill。这是一种"授人以渔"——核心 14 个 skill 不变,但你可以扩展。

这样用的好处

  • 团队规范代码化:把"我们项目的约定"写成 skill
  • 跨项目复用:在 A 项目写的 skill 拷到 B 项目
  • 方法论沉淀:踩过的坑写成 skill,团队不再重复踩

协作类(10 个 - 核心)

brainstorming · 入口 Skill

⚠️ HARD-GATE · 必经

触发条件:你说"做一个 X"、"加一个 Y"、"改一下 Z" 时必须激活。HARD-GATE 规则:「在你完成 brainstorming 并获得用户对设计的确认前,禁止调用任何实现 skill、写任何代码、scaffold 任何项目。」

具体行为(9 步 checklist):

  1. 探索项目上下文(读文件 / docs / 最近 commit)
  2. (如有视觉问题)单独发一条消息"是否要开 visual companion"
  3. 苏格拉底式追问(一次只问一个):理解目的 / 约束 / 成功标准
  4. 提议 2-3 个方案,含 trade-off 和推荐
  5. 分章节展示设计,每节让用户确认才继续
  6. 写 design doc 到 docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md 并 commit
  7. Spec 自检(看是否有占位符、矛盾、模糊、范围问题)
  8. 让用户 review 写好的 spec
  9. 转交 writing-plans skill

为什么这样设计

Jesse 的核心洞察:"简单"项目恰恰是浪费工作最多的地方——因为它太简单,所以没人 brainstorm,所以隐藏的假设没暴露,所以做出来不是用户想要的。HARD-GATE 把"先 brainstorm"从建议变成宪法

"一次问一个问题" 是认知科学——人脑同时回答多问题会变烂。"分章节确认" 是为了让用户能具体反馈而不是笼统地"看着差不多"。

这样用的好处

  • 错误前置发现:在 design 阶段(5 分钟)发现 = 在代码阶段(5 小时)发现
  • 有 design doc 可追溯:commit 进 git,未来可查
  • 用户参与感强:每章确认 → 用户真的在共建
  • 下游 skill 输入清晰:design doc 直接喂给 writing-plans
常见反模式:用户说"很简单,直接写就行"——别屈服。Jesse 在 SKILL.md 写:"Every project goes through this process. A todo list, a single-function utility, a config change — all of them."

writing-plans

Collaboration · 计划生成

触发条件:brainstorming 完成后自动衔接,或你说"为这个 spec 写计划"时。

具体行为

  • 把 design doc 拆成2-5 分钟粒度的 task
  • 每个 task 包含:完整代码、文件路径、测试、验证步骤
  • Plan header 强制写明:Goal / Architecture / Tech Stack
  • 用 checkbox(- [ ])标记,方便后续追踪
  • 保存到 docs/superpowers/plans/YYYY-MM-DD-<feature>.md

关键设计假设:执行的工程师"对项目零知识、品味差、不会写测试"。所以 plan 必须包含一切——这意味着子 Agent 拿到 plan 就能跑。

为什么这样设计

2-5 分钟粒度不是随意定的——这是子 Agent 不偏离的最优颗粒。粒度太大(30 分钟)→ subagent 中途偏离;太小(30 秒)→ 调度开销大于实际工作。Jesse 的实测:2-5 分钟是甜点。

"假设工程师品味差" 是为了让 plan self-contained——subagent 在隔离 context 下能完成,不用回头问主 Agent。

这样用的好处

  • 每个 task 是原子的:完成 = commit,失败 = 回滚
  • 可暂停可恢复:tasks.md 的 checkbox 即进度
  • 多人接力友好:A 做完 1-3,B 接 4-7
  • 是 subagent-driven 的输入:粒度不对则下游崩

subagent-driven-development · 招牌

Collaboration · 长时执行

触发条件:plan 已写好,用户说"开始"或"go"。需要满足:① 有 plan ② 任务多数独立 ③ 同一 session 执行。

具体行为(每 task 一个循环):

  1. 主 Agent 派 implementer subagent(带 implementer-prompt.md)
  2. subagent 实现 + 测试 + commit + 自我 review
  3. 主 Agent 派 spec reviewer subagent(独立 context)
  4. spec reviewer 检查代码是否匹配 spec → 不匹配则 implementer 修
  5. 主 Agent 派 code quality reviewer subagent(再独立 context)
  6. quality reviewer 审代码质量 → 有问题则 implementer 修
  7. TodoWrite 标记 task 完成,下一个 task 重复

关键纪律:连续执行不停顿。"Should I continue?" 类的提问被禁止——用户说了"开始"就一直跑到完。

为什么这样设计

核心问题:为什么不让主 Agent直接做?答案——上下文污染。主 Agent 跑 1 小时积累的对话历史会让它后续判断变差("我之前是不是说过 X")。Subagent 每次拿全新 context精确构造它需要的信息(plan + 当前 task),跑完即销毁。

两阶段 review(spec 合规 → 代码质量)也是独立 context——避免 reviewer 被 implementer 的"自圆其说"带偏。这相当于三人轮岗盯一个 task。

这样用的好处

  • 长时无人值守:可以连续 2-4 小时不偏离
  • 主 Agent context 干净:保留给协调而非实现
  • 三重审查:implementer + spec reviewer + quality reviewer
  • 失败可定位:哪个 subagent 崩了哪个 task 失败
常见错误:用户中途打断("等等我看看")——会污染主 Agent 上下文。要等当前 task 完成后再介入。

executing-plans

Collaboration · 批量执行

触发条件:plan 已写好,但你想"换 session 执行"或"加人工 checkpoint"。

具体行为

  • 批量执行 task 但每批后停下问用户
  • 适合"开新窗口、用新 agent 跑别人写的 plan"
  • 慢于 subagent-driven(有人工 checkpoint)
  • 但更可控(人工干预点多)

为什么这样设计

不是所有场景都适合 subagent-driven。比如:

  • 团队成员 A 写了 plan,团队成员 B 要在自己的 session 执行
  • 高风险变更需要每隔几个 task 人工 review
  • token 预算紧张(subagent 多消耗 token)

这时用 executing-plans

这样用的好处

  • 跨 session 友好:plan 写一次执行多次
  • 人工 checkpoint:高风险场景安全感
  • token 节约:相比 subagent-driven 省 30-50%

dispatching-parallel-agents

Collaboration · 并行加速

触发条件:你面对 2+ 个独立任务(无共享状态、无顺序依赖)。

具体行为

  • 检测任务是否真独立(如有依赖会拒绝并行)
  • using-git-worktrees 创建多个隔离工作区
  • 派多个 subagent 同时跑各自的 worktree
  • 主 Agent 等所有完成后汇总结果

为什么这样设计

大多数 sprint 末期有 5-10 个独立小 feature(404 页 / favicon / 健康检查端点)。串行做要 6 小时,并行做 1.8 小时。独立性是关键——如果 task 2 依赖 task 1 的某个 util 函数,并行会失败。所以这个 skill 先做依赖分析

这样用的好处

  • 3-4× 加速:相比串行
  • worktree 隔离:失败的 subagent 不影响其他
  • 资源利用率高:CPU 闲着不如多线程跑

using-git-worktrees

Collaboration · 工作区隔离

触发条件:开始 feature 工作需要隔离时;或 executing-plans 之前。

具体行为(3 步检测):

  1. Step 0:检测已有隔离 — 通过 git rev-parse --git-dir 判断当前是否已在 worktree。注意排除 submodule 误判。
  2. Step 1a:用平台原生 worktree 工具 — 如果你的 IDE / harness 自带 EnterWorktreeWorktreeCreate/worktree 命令、--worktree flag,用它而不是 git
  3. Step 1b:fallback 到 git worktree add — 没有原生工具时才退回 git CLI

为什么这样设计

"never fight the harness" 是 Jesse 的设计原则。如果你的 IDE 已经有 worktree 管理(如 Conductor),用 git worktree add 会创建幻象状态——IDE 看不见、管不了。先尊重 harness,没有时才 fallback。

Submodule 排除是真实坑——很多 setup 在 submodule 内被误判为 worktree,导致疯狂创建嵌套。

这样用的好处

  • 主分支永远干净:feature 在隔离环境跑
  • 失败可丢弃:worktree 删除即回归
  • 多 feature 并行:每个 worktree 一个 feature

requesting-code-review

Collaboration · 提交 review

触发条件:完成 task / 实现完功能 / 准备合并前。

具体行为

  • 对照 plan 检查每条要求是否完成
  • 测试覆盖度核对(每个新功能有对应 test 吗?)
  • 边界条件 checklist(empty / null / overflow)
  • 错误处理 checklist(每个 await 有 catch 吗?)
  • 按严重度分类问题:CRITICAL / HIGH / MEDIUM / LOW

为什么这样设计

"自检"和"互检"差别巨大——人写完代码后倾向于"看着对",因为大脑模式补全。requesting-code-review 强制 Agent 把 plan 当 checklist 逐条核对,而不是凭感觉。

这样用的好处

  • 客观标准:plan 写了什么必须做到
  • 分级反馈:CRITICAL 的拦截合并,LOW 的可后续
  • 覆盖盲区:边界条件 / 错误处理是 AI 最容易漏的

receiving-code-review

Collaboration · 反对盲从

触发条件:收到 code review 反馈,特别是反馈不清楚或技术上可疑时。

具体行为

  • 不立即认错
  • 验证 reviewer 的论点(reviewer 也会犯错)
  • 如果反馈错误:用技术严谨性反驳
  • 如果反馈正确:实现修复 + 解释思路
  • 区分"主观偏好"和"客观错误"

为什么这样设计

AI 默认是讨好型人格——人类一反对,AI 就改。这导致很多正确的代码被改坏,因为 reviewer 自己也错了但 AI 不反驳。receiving-code-review 教 Agent "performative agreement is worse than disagreement"

这样用的好处

  • 避免"改坏":reviewer 错时 AI 不会盲从
  • 提升 review 质量:reviewer 也会更严谨
  • 团队学习机会:技术分歧公开化讨论

finishing-a-development-branch

Collaboration · 收尾

触发条件:所有 task 完成,准备做最后处置时。

具体行为

  1. 跑完整测试套件
  2. 验证 baseline(之前通过的还在通过)
  3. 展示 4 个选项让用户选:
    • Merge:合并到主分支
    • PR:开 Pull Request
    • Keep:保留 worktree(继续做)
    • Discard:丢弃工作(实验失败)
  4. 如选 merge/PR:清理 worktree

为什么这样设计

没这个 skill 的常见问题:feature 做完后worktree 留在那,一周后 git worktree list 里有 8 个孤儿。finishing-a-development-branch 把"收尾"变成不可跳过的最后步骤

4 个选项覆盖所有真实情况——包括"丢弃"(PoC 失败也是常见结局)。

这样用的好处

  • 没有孤儿 worktree:项目目录干净
  • "丢弃"被合法化:不需要为失败 PoC 强行 merge
  • 测试 baseline 校验:合并前最后一道检查

测试类(1 个 - 最严格)

test-driven-development · 铁律

⚠️ IRON LAW · 不可违反

触发条件:实现任何 feature / bugfix 之前。

NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST

具体行为(RED-GREEN-REFACTOR):

  1. RED:写一个测试(必须失败,因为函数还不存在 / 行为还没实现)
  2. 验证 RED:跑测试,看到它失败。如果意外通过 = 测试有 bug
  3. GREEN:写最少代码让测试通过(即使是 hardcoded)
  4. 验证 GREEN:跑测试,看到全绿
  5. REFACTOR:重构代码(可能从 hardcoded 改成真正算法),保证测试还绿
  6. commit,进入下一个 task

违反铁律的处理

如果你违反顺序先写了实现代码:

Don't keep it as "reference"
Don't "adapt" it while writing tests
Don't look at it
Delete means delete

→ Implement fresh from tests. Period.

Skill 会强制 Agent 删除你写的代码,重新先写 test。

为什么这样设计

核心原则:"If you didn't watch the test fail, you don't know if it tests the right thing."

这听起来教条,但有深刻原因:测试代码本身也会有 bug。如果你先写实现再写"测试",你的测试可能是"凑出来"匹配实现的,根本不是真测——比如测试了 add(1,1) 但其实你写的是 add(a,b) { return 2 },测试还是过!

"看到 RED" 是验证测试有效的唯一方式——只有先看到失败,才能保证 GREEN 是真的修复了问题。

这样用的好处

  • 测试有效性保障:每个测试都被验证过能 catch bug
  • 设计从外向内:先想"怎么用"再想"怎么实现"
  • 覆盖率自然高:每行实现代码都有对应测试
  • 重构信心:32 个 test 全绿 = 行为快照锁定
例外:可以问"是否跳过 TDD"的场景:throwaway prototype、generated code、配置文件。但 Skill 强调:"Thinking 'skip TDD just this once'? Stop. That's rationalization."

调试类(2 个 - 铁律 + 验证)

systematic-debugging · 铁律

⚠️ IRON LAW · 不可违反

触发条件:遇到 bug / 测试失败 / 意外行为时必须激活特别是

  • 时间紧(紧急情况下乱猜诱惑大)
  • "应该改一下就好"看起来很明显
  • 已经试了几次修复
  • 之前的 fix 没生效
  • 你不完全理解问题
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST

具体行为(4 阶段,每阶段必须完成才能进下一阶段):

Phase 1: ROOT CAUSE INVESTIGATION

  1. 仔细读错误信息:完整读 stack trace,记下 line / file / error code
  2. 稳定复现:写脚本一定能触发,否则没法验证修复
  3. 追数据流:从输入到错误点,每一步状态是什么
  4. 列假设:H1 / H2 / H3,每个写"如何验证"
  5. 逐个验证假设:直到找到真正根因

Phase 2: ISOLATE

  • 用 root-cause-tracing 子技术:反向追踪到最早的"错误注入点"
  • 不是症状(页面白),是根因(getServerSideProps 用模块级变量)

Phase 3: FIX

  • 用 defense-in-depth 子技术:多层防御
  • L1:根因修复(最重要)
  • L2:断言或 invariant,防止类似 bug 再现
  • L3:监控告警,未来出问题能马上发现

Phase 4: VERIFY

  • 用 condition-based-waiting:可靠等待异步条件
  • 触发 verification-before-completion skill 强制出示证据
  • 跑 1000 次复现脚本看是否还崩

为什么这样设计

"症状修复"是软件工程最大祸根——表面修了,根因还在,过几天换种症状再爆。systematic-debugging 的 4 阶段是消除症状修复诱惑的护栏。

"越紧急越要慢"是反直觉但正确的——慌乱中乱试更可能引入新 bug,把 5 分钟问题拖成 5 小时。

这样用的好处

  • 真正修复:根因消除而非症状缓解
  • 纵深防御:L2/L3 防御让类似 bug 不再现
  • 调试可复现:每个假设和验证都记录
什么时候不用? 没有时候。即使是"明显的拼写错"——拼写错为什么没被 lint 抓到?这本身就是问题。

verification-before-completion · 铁律

⚠️ IRON LAW · 不可违反

触发条件:你要声称"work is complete / fixed / passing"前;或要 commit / PR 前。

NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE

具体行为(5 步 Gate Function):

  1. IDENTIFY:什么命令能证明这个声明?
  2. RUN:执行完整命令(不是部分、不是上次缓存的)
  3. READ:读完整输出,检查 exit code,统计失败数
  4. VERIFY:输出是否真支持声明?
    • 如果:陈述实际状态 + 证据
    • 如果:陈述声明+ 证据
  5. ONLY THEN:才能说"完成"

禁用词(红旗 - 看到 STOP):

  • "should" / "probably" / "seems to"
  • "Great!" / "Perfect!" / "Done!"(验证前的满意表达)
  • "trust the agent's report"(信子 Agent 的报告)
  • "just this once"(只此一次)

不充分的证据

声明需要不充分
测试通过测试输出 0 失败"上次跑过"
Linter 干净linter 输出 0 错"看着应该过"
构建成功build exit 0"linter 过了"
Bug 已修原症状测试通过"代码改了"
子 Agent 完成VCS diff 显示改动"agent 报告 success"

为什么这样设计

"声称完成而不验证 = 不诚实,不是高效"。这是 Jesse 的核心信念。AI 经常说"已修复"但实际没跑——因为它"觉得应该好了"。这种认知幻觉是软件 bug 的最大来源之一。

Gate Function 把"我觉得对"变成"我有证据证明"。这种思维习惯一旦养成,会贯穿你所有工程动作。

这样用的好处

  • 消除"AI 装作完成":必须出示运行证据
  • 消除"我觉得过了":用客观输出代替主观感受
  • 训练工程严谨:长期使用会改变你的工程直觉
实战 Tip:看到 AI 说"已完成"时,反问 "verification 命令的输出呢?" — 它会立即触发这个 skill 重新跑命令。

5. 完整工作流

典型的 Superpowers 工作流是自动激活的——你只需要描述要做什么,skill 自动接力:

1brainstorming
苏格拉底设计
2using-git-worktrees
隔离工作区
3writing-plans
2-5 min/task
4subagent-driven-development
每 task 派子 agent
5test-driven-development
RED-GREEN-REFACTOR
6requesting-code-review
review checklist
7verification-before-completion
必须有证据
8finishing-a-development-branch
merge/PR/cleanup

实际对话样例

You: 我想做一个 CLI 叫 myctl,4 个子命令

AI: 我用 brainstorming skill 来精炼需求。

项目背景探索完成。我想问几个问题(一次一个):
Q1: 这是个人玩具还是生产工具?

You: 生产工具,团队 5 人会用

AI: Q2: 配置文件是 YAML 还是 TOML 倾向?
...
[省略 4 个问题]

我提议 3 种方案:
 A. Bun + clipanion(速度快,但生态窄)
 B. Node + commander(生态好,但慢)
 C. Deno + cliffy(现代化但团队不熟)
我推荐 A。你的选择?

You: A

AI: [呈现设计第 1 节] 数据流图...
 [等你确认] OK?

You: OK

AI: [第 2 节] 配置 schema... [等确认]
...

所有节确认后:写 design doc 到
 docs/superpowers/specs/2026-05-20-myctl-design.md

切换到 writing-plans skill
我会拆 14 个 2-5 分钟 task,要进 worktree 吗?

You:

AI: [using-git-worktrees] 创建 ../myctl-feat
 [writing-plans] 14 个 task 写入 plan.md
 请 review plan,确认后说 "go"

You: go

AI: 开始 subagent-driven-development。
 [3 小时后] 14/14 完成。
 切换到 finishing-a-development-branch...
 测试 47/47 通过。要 PR 吗?

6. 实战示例

6.1 夜间长时执行(Superpowers 招牌场景)

22:30  You: 写一个跨平台 CLI 工具叫 myctl,需要 init/add/remove/list
            4 个子命令,配置 ~/.myctl.yaml,TypeScript + Bun
22:30  brainstorming: 14 个澄清问题完成
22:35  writing-plans: 14 个 task 计划已写入 plan.md
22:36  You: go
22:37  using-git-worktrees: 创建 ../myctl-feat
22:38  Subagent-1: task-1 (init 子命令)
       TDD RED: 测试 init creates ~/.myctl.yaml ... FAIL ✓
       TDD GREEN: 实现 src/commands/init.ts ... PASS ✓
       review: 通过 spec + quality
22:43  Subagent-2: task-2 (add 子命令)
       ... [每个 4-6 分钟]
01:18  task-13 完成(互不依赖的并行被自动调度)
01:24  task-14 完成(文档)
01:25  finishing-a-development-branch: 47 个测试全过
       提示:merge 还是 PR?

08:00  You: 看到 plan 100%,发个 PR 吧
08:01  AI: 已开 PR #42 https://github.com/.../pull/42

实战 Tips

  • 布置任务后不要打断 subagent,让它跑完。打断 = 污染主 Agent 上下文
  • 早上看 plan.md 进度,能快速判断是否需要介入
  • 失败的 task 会被标记 BLOCKED,主 Agent 会停止等你

6.2 强制 TDD 重构遗留代码

You: 重构 calculatePricing 函数(800 行 god function),
     拆成 5 个小函数,行为完全不变

AI [TDD skill 自动激活]:
启用 TDD 模式重构。

第 0 步:写 32 个 characterization tests 覆盖现有行为
- 7 个边界(0、负数、null、empty)
- 12 个折扣组合
- 8 个货币转换
- 5 个 promo code
全部 PASS ✓ —— 现在我有"行为快照"

Refactor 1: 抽 calculateBasePrice
  跑 32 个 test... 32/32 PASS ✓

Refactor 2: 抽 applyDiscounts
  跑 32 个 test... 31/32 PASS ⚠️
  
  [verification-before-completion 触发]
  我不能声明完成。失败:
    ✗ test_promo_VIP_with_stacking
  
  分析:promo "VIP" 的折扣顺序变了。
  回滚 refactor 2。

Refactor 2 (重试): 保留原折扣顺序
  跑 32 个 test... 32/32 PASS ✓
  commit
  
... [继续 refactor 3-5]

最终:5 个新函数,32/32 测试通过,行为完全一致。

6.3 系统化调试:复杂 race condition

You: 帮我修这个偶发空白页 bug,每天 1-3 次,重启就好

AI [systematic-debugging skill 自动激活]:
启用 systematic-debugging。铁律:未完成 Phase 1 不能 fix。

═══════════════════════════════════════
Phase 1: REPRODUCE
═══════════════════════════════════════
读 logs/2026-05-15-bug.log...
21 次空白页都发生在 60s 内有 ≥3 个并发请求。

写 stress-test.ts 模拟:
  - 60s 内 5 个并发 SSR 请求
  - 本地复现率 100% ✓

REPRODUCE 阶段完成。

═══════════════════════════════════════
Phase 2: ISOLATE
═══════════════════════════════════════
root-cause-tracing:
  用户请求 → SSR → getServerSideProps → 数据 fetch
  
发现:getServerSideProps 中的 globalCache 是
模块级变量,第二个请求覆盖了第一个的 ctx。

ISOLATE 阶段完成。根因:模块级状态 + SSR 并发。

═══════════════════════════════════════
Phase 3: FIX
═══════════════════════════════════════
defense-in-depth 三层防御:
  L1: globalCache 改为 per-request scope (AsyncLocalStorage)
  L2: 加 invariant 断言不允许跨请求复用
  L3: 加 telemetry 监控异常情况

Fix 实现 ... commit ✓

═══════════════════════════════════════
Phase 4: VERIFY
═══════════════════════════════════════
[verification-before-completion 触发]
- 跑 stress-test.ts 1000 次 → 0 个失败 ✓
- 单元测试覆盖 race 场景 → PASS ✓
- 部署 staging 监控 30 分钟 → 0 异常 ✓

确认:bug 已修复(不仅"我觉得修了")。

7. 实战经验总结

1核心红利:长时自主执行(数小时)

这是 Superpowers 最值钱的能力。其他工具的 Agent 跑 1 小时就开始偏离 plan,Superpowers 的 subagent 每个跑完即退出,主 Agent 只负责调度,上下文污染最小

2布置任务后不要打断

看到 subagent 在跑,不要中途插话。要等它跑完一个 task 或 BLOCKED 后再介入。打断会污染主 Agent,让后续 task 偏离。

3写 plan 时让 AI 拆到极细

Plans 拆到 2-5 分钟/task 的粒度才能真正 subagent-driven。粒度太大(30 分钟+)的 task 容易在 subagent 内部偏离。

4TDD 在 PoC 阶段开关

在项目根写 AGENTS.md / CLAUDE.md

# PoC 阶段
This is a prototype. Skip TDD for now. Move fast.

# 转生产前删除上面这行

用户指令优先级最高,Superpowers 让步。

5用 git worktree 做真并行

using-git-worktrees + dispatching-parallel-agents 组合可同时开 3-5 条独立分支。每个分支隔离,即使一个 subagent 写崩了不影响其他。

6调试不要让 AI 跳过 Phase 1

"赶时间也要走 Reproduce 阶段"。systematic-debugging 的 4 阶段顺序不可跳跃。新手最爱跳到 FIX,结果"修了一处坏了三处"。

7verification-before-completion 是反"AI 装作完成"的终极武器

AI 经常说"已修复"实际没跑。这个 skill 强制:声明完成 = 必须出示运行命令的 fresh 输出,否则不算。看到 AI 说"完成"时记得追问"verification 命令的输出呢?"

8worktree 用完一定要 finishing-branch 清理

Superpowers 的 git worktree 用完要 finishing-a-development-branch 收尾,否则一周后你会发现有 8 个孤儿分支。

9受不了"AI 太啰嗦" → 那是优势

新手常觉得 Superpowers 的 Agent 反复确认很烦。这是它的核心机制——确认本身就是减少错误的关键。如果你只想要"快速生成代码",Superpowers 不适合你(用普通 Agent + Tab 补全更好)。

10跨项目复用方法论

Superpowers 是方法论级别的工具。在 A 项目用熟了 TDD / 系统调试这套,在 B 项目同样适用。不像 gstack / OpenSpec 是项目级配置,Superpowers 是个人能力升级

Superpowers 的局限
  • 没有产品视角的"挑战需求"机制(gstack 强项)
  • 没有 spec 文件持久化(OpenSpec 强项)
  • 对真实浏览器 QA、PR 自动 ship 不太管
  • 新手常觉得"啰嗦"——它确实会反复确认
  • token 消耗大(每个 task 一个 subagent)

8. 常见问题

Q1:装了但 Agent 没自动触发 skill?
  • 检查 system prompt 是否包含 using-superpowers 指令(OpenCode 用户在对话开头应能看到)
  • 确认 skill 目录存在:ls ~/.cache/opencode/packages/superpowers@*/node_modules/superpowers/skills/
  • OpenCode 重启 session 试试
Q2:subagent 跑到一半失败怎么办?

Superpowers 的设计:subagent 报告 BLOCKED → 主 Agent 停止等你 → 你给信息 → 主 Agent 派新 subagent 重试该 task。

不要试图让原 subagent 继续——它的 context 已坏。

Q3:TDD 让我无法写"探索性代码"?

解法 1:在项目根 CLAUDE.md 写 "skip TDD for prototyping"

解法 2:在该次任务说 "skip TDD this time, prototype only"

解法 3:用 git worktree 开 prototype 分支,不开 TDD,验证 idea 后切回主分支重写

Q4:subagent token 用得太多?

这是 Superpowers 的设计 trade-off:用 token 换正确性。优化方向:

  • plan 阶段拆得更细,subagent 上下文更小
  • 避免在 brainstorm 阶段塞过多无关项目背景
  • 预算紧时用 Sonnet 做 subagent,Opus 做主 Agent 调度
Q5:和 OpenCode 自带的同名 skill 冲突?

OpenCode 内置一些 skill(如 brainstorming)。Superpowers 的 skill 优先级更高,因为它在 system prompt 强制注入。冲突时 Superpowers 覆盖。

Q6:如何升级 Superpowers?
Host升级方式
Claude Code大多数自动;手动重装 plugin
OpenCode对 Agent 说 "fetch and follow … INSTALL.md" 重新安装
Gemini CLIgemini extensions update superpowers
其他各自的 plugin update 命令
Q7:能贡献新 skill 吗?

官方注明:一般不接受新 skill 贡献。原因是 skill 必须在所有支持的 host 上工作,新 skill 维护成本高。

但你可以用 writing-skills 在自己项目里写私有 skill,或者 fork 仓库自用。

Q8:和其他工具冲突吗?

不冲突。三个 AI 编码工具命名空间隔离:

  • Superpowers:自动触发(system prompt)
  • OpenSpec:/opsx:*
  • gstack:/<skill-name>

9. 参考资源

配套阅读