Superpowers 原理解析:它如何把“会写代码的模型”变成“可交付的软件工程流程”
Superpowers(obra/superpowers)经常被误解成“让 AI 更聪明”的插件。实际上,它更像一套对代理行为进行约束与编排的工程方法论:通过一组可组合的 skills(技能脚本)+ 强制流程门禁(hard gate)+ 任务拆分/审查机制,把一次次“随口一句需求”变成可验证、可回滚、可 review、可持续迭代的开发节奏。
这篇文章从“原理”层面拆解 Superpowers:它到底在控制什么?靠什么机制让代理不乱跑?它为什么强调 TDD、计划、审查?以及它如何跨不同 coding agent 平台适配。
提示:本文的“图”主要用 Mermaid 画,方便又高效。
一句话结论:Superpowers 的核心不是能力,而是“约束 + 编排”
在真实工程里,AI 的主要风险往往不是“写不出来”,而是:
- 没把问题问清楚就动手(返工)
- 一次改太大(难 review、难回滚)
- 不验证就宣称完成(假修复)
- 顺手重构/发明新架构(破坏一致性)
Superpowers 解决这些风险的方式非常“工程化”:
- 把“怎么做事”写成可复用的技能脚本(skills)
- 用硬门禁把行为锁在正确顺序里(先设计→再计划→再实现→再验证→再收尾)
- 用检查清单把“证据”变成必选项(测试、构建、diff 审查、PR 模板等)
换句话说:它不是让代理变得更强,而是让代理变得更不容易犯错,并且更可控。
1. Superpowers 的“技能系统”是什么?(skill = 行为塑形代码)
1.1 Skill 的本质:给代理加载一段“更高优先级的工作说明书”
在 Superpowers 的体系里,skill 不是函数库、也不是工具插件,而是一段强约束的操作手册,典型包含:
- 什么时候必须用(触发条件/描述)
- 做事的顺序(流程图/步骤)
- 哪些行为禁止(anti-pattern、red flags)
- 产物是什么(设计文档、任务列表、验证步骤)
- 什么时候停止并等待人类确认(approval gate)
例如 brainstorming skill 的 HARD-GATE 明确要求:在用户批准设计之前,不得开始实现。它甚至把“这太简单了不需要设计”列为反模式(anti-pattern),因为在简单需求里跳过澄清往往更容易踩坑。
1.2 Skill 的“元数据”:YAML frontmatter 负责“可发现 + 可触发”
Superpowers 的 skill 文件通常带 YAML frontmatter(例如 name、description)。description 里会写清楚“何时必须使用”,比如:
“你 MUST 在任何创作型工作前使用 brainstorming:创建功能、改行为、加组件……”
这类元数据主要目的不是给人看,而是让不同平台的 agent 能列出可用 skills,并在对话里更容易触发正确的 skill。
1.3 “using-superpowers” 的元原则:哪怕 1% 可能相关,也必须先加载 skill
using-superpowers skill 里有一条非常强硬的规则:
只要你觉得某个 skill 有 1% 的可能适用,你就必须先调用 Skill tool 把它加载出来,然后按它做。
这条规则的“原理”很简单:
把“我觉得不用”这种主观判断从系统里移除,避免代理为了赶进度而合理化(rationalize)跳过流程。
Superpowers 甚至专门列了一张“红旗思维表”(Red Flags):当代理脑内出现“这就一个小改动”、“我先快速改一下再说”之类想法时,必须立刻停下回到流程。
2. 指令优先级:它如何避免“skill 覆盖用户意图”?
Superpowers 强调一个很关键的优先级模型(简化后):
- 用户/项目的显式指令(例如仓库里的
CLAUDE.md、AGENTS.md、GEMINI.md、用户在对话里明确提出的要求) - Superpowers skills
- 默认系统提示
这个设计的意义是:skills 可以非常强势,但不能凌驾于用户和项目的明确约束之上。
举个例子:如果某个项目明确说“本仓库不采用 TDD(或某些文件禁止改动)”,那即使 skill 说“必须 TDD”,也要以项目指令为准。
这就是 Superpowers 的“原则性”:它强,但它不夺权。
3. 流程编排:Superpowers 的“基本工作流”像一个状态机
从 README 的 Basic Workflow 可以看出,它把一次开发活动拆成一条很像状态机的链路:
- brainstorming:澄清目标、边界、约束、成功标准 → 产出可读的设计
- using-git-worktrees:为实现创建隔离工作区(新分支/工作树),保持主线干净
- writing-plans:把实现拆成 2–5 分钟颗粒度的任务,每个任务都写清文件路径与验证方式
- subagent-driven-development / executing-plans:按任务执行(可并行子代理),带复核关口
- test-driven-development:实现阶段强推红-绿-重构,强调“证据优先”
- requesting-code-review:每一步或阶段性做 review,对 plan/spec 做符合性检查
- finishing-a-development-branch:收尾验证、决定合并/提 PR/保留/丢弃工作区
你可以把它理解成:
把“会写代码的对话”拆成多个可控阶段,每个阶段都要求产出可检查的东西,并且阶段间有明确的停顿点让人类确认。
4. 关键机制 1:Hard Gate(硬门禁)——阻止“边想边改”
很多 agentic coding 翻车都来自同一个模式:
需求不清晰 → 直接开始改 → 改到一半发现不对 → 继续补丁式修补 → 最终变成不可控的大改动
Hard Gate 的作用就是:把“思考”和“执行”切开。
以 brainstorming 为例,它要求:
- 先探索项目上下文
- 再逐个提问澄清
- 提 2-3 个方案并给推荐
- 分段展示设计并拿到用户批准
- 写成设计文档并让用户 review
- 之后才能进入写计划与实现
这套门禁会显著降低“走偏后返工”的概率,尤其适合每日迭代里那些看似很小、但边界不清很容易扩散的改动(比如登录校验、支付状态机、权限判断等)。
5. 关键机制 2:Checklist(清单化)——把“质量”从自觉变成默认
Superpowers 的 skills 很多都带 Checklist,且要求你把每一项变成待办任务逐项完成。
这在行为科学上很有效:
把“应该做”变成“必须勾选”,能显著减少漏项。
典型会被清单化的内容包括:
- 是否跑过测试/构建/静态检查
- 是否能复现 bug(或写了 failing test)
- 是否展示了完整 diff 让人类确认
- 是否对齐 spec/plan
- 是否做过代码审查(甚至会要求按严重程度分类问题)
这也是为什么 Superpowers 会被描述成“方法论”:它把工程经验沉淀成“默认执行”的脚本。
6. 关键机制 3:小任务 + 可验证(2–5 分钟粒度)——为“每日迭代”优化
writing-plans 强调任务拆分到 2–5 分钟级别,并且每个任务要写清:
- 修改哪些文件、改什么
- 如何验证(具体命令/测试)
- 任务完成的可观察信号是什么
这种粒度非常适合日常迭代(改 bug、加小功能、发 commit),因为它天然导向:
- 小步提交:每一步都能独立形成一条 commit
- 易 review:每个 diff 的意图清晰
- 易回滚:出问题能快速定位到哪一步
- 易并行:适合子代理分发(subagent-driven-development)
换个角度:Superpowers 不是为了“让 AI 一次写完一个系统”,而是为了让你每天稳定交付一小段可合并的进度。
7. 关键机制 4:Subagent-driven development(子代理驱动)——用“上下文隔离”换稳定性
在传统单代理工作流里,长对话容易出现:
- 上下文膨胀 → 注意力漂移
- 前后自相矛盾
- 小错误被累积放大
Superpowers 的一个思路是:把大计划拆成小任务,然后**每个任务启动一个“干净的子代理”**来执行,并在两个层面做 review:
- 是否符合 spec/plan
- 代码质量是否达标(可读性、测试、边界、风格)
这有点像把“工程团队”模拟出来:
一个人写、另一个人审(虽然都是 AI,但上下文隔离能减少自我合理化)。
8. 跨平台适配原理:为什么它能跑在 Claude Code / OpenCode / Copilot / Gemini 等?
Superpowers 很重视“同一套 skills,在不同 harness 下能工作”。其核心做法是:
-
技能内容以 Claude Code 的工具命名为基准(比如
TodoWrite、Task、Skill等) -
在其他平台通过“工具映射”适配(比如 OpenCode 文档提到的映射:
TodoWrite→todowrite,Task→ 通过 @mention 或平台并行机制等) -
插件负责两件事(以 OpenCode 文档为例):
- 注入 bootstrap 上下文,让 agent “意识到自己有 superpowers”
- 注册 skills 目录,让平台自动发现这些技能
你可以把它理解成:
skills 是“行为脚本”,插件只是“装载器 + 适配层”。
这也是为什么 Superpowers 核心强调“零依赖”:它希望最大化可移植性与可控性,减少外部环境变量。
9. 为什么他们对“slop”极度敏感?(从贡献指南看设计哲学)
AGENTS.md / CLAUDE.md 这类贡献指南反复强调一件事:
不要编造、不要想当然、不要批量 PR、不要无证据的理论修复。
这不是“态度强硬”,而是因为 Superpowers 的技能本质上在塑形代理行为——一旦 skill 文本被“润色”成空话,整个系统就会退化成“看似专业但不可执行”的模板。
所以他们提出了非常具体的门槛:
- 改 skill 需要 eval 证据(前后对比)
- 不能随便“合规化重写”技能文本
- PR 必须真实问题、必须有人类审查 diff
从原理上说:
skills 不是文案,是控制系统。
控制系统里最怕的就是“听起来对,但执行时没有约束力”。
10. 你在日常使用中应该怎么“用原理指导实战”?
如果你只记三条:
- 把每次迭代当成一个小工程:先澄清 → 再计划 → 再实现 → 再验证 → 再提交
- 强制证据链:没有 failing test/复现步骤、没有验证命令输出,就不算修复完成
- 小步快跑:2–5 分钟任务粒度 + 小 commit,让 AI 的优势(快)不伤害工程的优势(稳)
Sources
- Superpowers README(工作流/skills 列表/安装方式):github.com/obra/superp…
skills/using-superpowers/SKILL.md(“1% 也必须加载 skill”、指令优先级、红旗思维):raw.githubusercontent.com/obra/superp…skills/brainstorming/SKILL.md(HARD-GATE、流程与 checklist 思路):raw.githubusercontent.com/obra/superp…docs/README.opencode.md(插件如何注入 bootstrap/注册 skills、工具映射):raw.githubusercontent.com/obra/superp…AGENTS.md/CLAUDE.md(对“slop PR”的防御与贡献门槛):raw.githubusercontent.com/obra/superp… 、github.com/obra/superp…