0%

superpowers an agent plugin

最近发现一个很牛的plugin:superpowers 先展示效果

什么意思呢? 这些 coding agent 默认的行为是——你一说需求,它就立刻开始写代码。写出来的东西经常跑偏、没测试、结构乱
Superpowers 做的事:它给这些 agent 加了一套强制性的工作流程,让 agent 不再瞎写,而是按一套专业的软件工程方法论来工作。
比如:

  • 你说”帮我加个搜索功能”,装了 Superpowers 的 agent 不会立刻开始写代码
  • 它会先问你:”你说的搜索是全文搜索还是模糊搜索?搜索范围是什么?要不要分页?”
  • 问清楚以后,它会给你一份设计文档,一节一节地让你看
  • 你确认以后,它再写一份实现计划,把任务拆成一个个小步骤
  • 然后它按计划一步步写代码,每一步都先写测试、再写代码,写完自动 review

Superpowers 的核心是一个个 skill(技能)。每个 skill 是一个文件夹,里面有一个 SKILL.md 文件,写着这个技能的指令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
skills/
├── brainstorming/ ← 头脑风暴(设计阶段)
├── writing-plans/ ← 写实现计划
├── executing-plans/ ← 执行计划
├── subagent-driven-development/← 子代理驱动开发
├── dispatching-parallel-agents/← 并行子代理调度
├── test-driven-development/ ← 测试驱动开发
├── systematic-debugging/ ← 系统化调试
├── verification-before-completion/ ← 完成前验��
├── using-git-worktrees/ ← 使用 Git 工作树
├── requesting-code-review/ ← 请求代码审查
├── receiving-code-review/ ← 接收代码审查
├── finishing-a-development-branch/ ← 完成开发分支
├── writing-skills/ ← 写新技能的指南
└── using-superpowers/ ← 技能系统入门

这些技能按什么顺序触发?

它们组成一条强制性的工作流水线

第 1 步:brainstorming(头脑风暴)
→ agent 接到你的需求后,先不写代码,而是反复提问来搞清楚你到底要什么。搞清楚以后生成一份设计文档,分段给你看,你一段段确认。

这是不是就很像kiro的那个spec的requirements.md文档
以前没有这些spec的时候 我们的一个技巧不就是 让ai复述一遍我们的需求 或者把他们的理解write到一个文档里

比如你说”帮我做一个 TODO 应用”,agent 会问:

  • “要持久化存储吗?用数据库还是本地文件?”
  • “要不要用户系统?”
  • “前端用什么框架?”

第 2 步:using-git-worktrees(使用 Git 工作树)
→ 设计确认后,agent 创建一个隔离的工作空间(worktree + 新分支),不在你的主分支上乱搞。

先解释 Git worktree:Git 允许你在同一个仓库里同时 checkout 多个分支到不同的文件夹。比如你的主分支在 ./my-project,agent 可以在 ./my-project-feature-search 里 checkout 一个新分支来干活,互不干扰。

第 3 步:writing-plans(写实现计划)
→ agent 把设计文档拆成一个个能完成的小任务。每个任务写明:改哪个文件、写什么代码、怎么验证。

比如一个计划可能长这样:

1
2
3
4
5
任务 1:创建 src/models/todo.ts,定义 Todo 接口
任务 2:创建 src/services/todoService.ts,实现 CRUD
任务 3:为 todoService 写单元测试
任务 4:创建 src/routes/todoRoutes.ts,接入 API
...

第 4 步:subagent-driven-development(子代理驱动开发)
→ 这是最核心的执行阶段。主 agent 不自己写代码,而是给每个小任务派一个新的子 agent 去完成。

⚠️ :为什么不让一个 agent 自己从头写到尾?为什么要用子 agent?

因为 AI agent 有 上下文窗口限制——它一次能记住的信息是有限的。如果让一个 agent 连续写几个小时的代码,到后面它会”忘掉”前面的上下文,代码质量就崩了。每个任务启动一个全新的子 agent,它只需要关注当前这一个小任务,代码质量更高。
这个在kiro里 你也可以感受到的

子 agent 写完以后,还有两阶段 review

  1. 规格合规性审查(spec compliance):写的代码符不符合设计文档?
  2. 代码质量审查(code quality):代码写得好不好?

第 5 步:test-driven-development(测试驱动开发)
→ 在实现过程中强制执行 RED-GREEN-REFACTOR 循环。

RED-GREEN-REFACTOR:

  • RED:先写一个测试,运行它,看到它失败(红色)。这证明测试是有效的。
  • GREEN:写最少的代码让测试通过(绿色)。
  • REFACTOR:代码能跑了,再整理代码结构,保持测试还是绿的。

比如:

1
2
3
RED:    写一个测试 → expect(add(1,2)).toBe(3) → 运行 → 报错(因为 add 函数还不存在)
GREEN: 写 function add(a,b) { return a+b; } → 运行测试 → 通过了
REFACTOR: 看看有没有需要优化的地方

⚠️ 重点:如果 agent 在写测试之前就先写了代码,Superpowers 会要求它把代码删掉,先写测试。 这不是建议,是强制规则。

第 6 步:requesting-code-review(请求代码审查)
→ 每完成一个任务,agent 自动 review 一下,对照计划检查。严重问题会阻止继续进行。

第 7 步:finishing-a-development-branch(完成开发分支)
→ 所有任务完成后,agent 跑一遍全部测试,然后给你选择:合并到主分支?提一个 PR?保留分支?还是丢弃?最后清理 worktree。

安装

claude code 运行

1
2
3
4
5
# 第 1 步:注册插件市场
/plugin marketplace add obra/superpowers-marketplace

# 第 2 步:安装 superpowers
/plugin install superpowers@superpowers-marketplace

如果你用 Codex 或 OpenCode:

直接告诉 agent:

1
Fetch and follow instructions from <https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.codex/INSTALL.md>

安装完以后怎么用?

什么都不用做。 这就是 Superpowers或者说skill 的设计理念——技能是自动触发的。

附上源github链接 https://github.com/obra/superpowers