本文由 无忆研习社 独家原创,深度解析这款让 Claude Code 脱胎换骨的开源神器。全文超过 8000 字,从原理到实战,手把手带你玩转 AI 编程新范式。
前言:当 AI 编程遇到瓶颈
相信很多开发者都有过这样的经历:满怀期待地把需求丢给 AI 编程助手,它倒是响应飞快,噼里啪啦生成一大堆代码。结果一运行,控制台满屏报错;仔细一看,业务逻辑漏洞百出;更气人的是,它今天写的代码,明天自己都不认得了。
问题出在哪儿?说白了,现在大多数 AI 编程工具最大的毛病就是"太听话"——它不懂得停下来思考,只会机械地堆砌代码。你说什么它干什么,从不问为什么,也不管结果好不好。
这种"无脑执行"的模式,在处理简单脚本时或许还能凑合,但面对稍微复杂点的项目,就会暴露出各种问题:
- 需求理解偏差:AI 只看字面意思,不懂业务背景
- 代码质量堪忧:没有测试意识,写完就扔
- 架构设计混乱:想到哪写到哪,没有整体规划
- 重构困难:代码耦合严重,牵一发动全身
有没有一种方法,能让 AI 编程助手像真正的资深工程师一样工作——先思考、再设计、后编码、最后测试?
答案是肯定的。今天 无忆研习社 要给大家介绍的这个项目,正是为了解决这些痛点而生。
一、Superpowers 项目概述
1.1 这是什么?
Superpowers 是一个专为 Claude Code(Anthropic 公司推出的终端 AI 编程工具)设计的"技能增强包"。它不是一个新的 AI 模型,而是一套完整的软件开发工作流程系统,建立在一系列可组合的"技能(Skills)"和初始指令之上。
简单来说,安装 Superpowers 之后,你的 Claude Code 就像是打开了"技能树",获得了:
- 头脑风暴能力:不再一上来就写代码,而是先通过提问理解需求
- TDD 测试驱动开发:严格遵循"红-绿-重构"循环
- 计划制定能力:把大任务拆解成可执行的小步骤
- 代码审查意识:写完代码会自我检查
- 子代理协作:能调度多个专门化的 AI 代理并行工作
1.2 项目背景
这个项目的作者是 Jesse Vincent,一位在开源社区颇有声望的开发者。项目于 2025 年 10 月首次发布,借助 Anthropic 新推出的 Claude Code 插件系统迅速走红。截至目前(2026年1月),该项目已经斩获超过 12000 个 Star,多次登上 GitHub Trending 榜首。
项目采用 MIT 开源协议,任何人都可以免费使用、修改和分发。
1.3 核心设计理念
Superpowers 的设计理念可以用四个词概括:
- 测试驱动(Test-Driven):永远先写测试
- 系统化(Systematic):过程优于猜测
- 降低复杂度(Complexity Reduction):简洁是首要目标
- 证据优于断言(Evidence over Claims):验证后才能宣称成功
这些理念被编码进每一个技能文件中,确保 AI 在工作时始终遵循最佳实践。
二、核心原理深度解析
2.1 技能系统(Skills System)是什么?
要理解 Superpowers 的工作原理,首先需要理解什么是"技能系统"。
在 Claude Code 的架构中,技能(Skill)是一种特殊的配置文件,用于指导 AI 在特定场景下应该如何行为。每个技能通常包含:
- 触发条件:什么情况下应该激活这个技能
- 行为规范:激活后应该做什么
- 最佳实践:应该遵循哪些原则
- 注意事项:需要避免哪些坑
技能文件通常以 SKILL.md 的形式存在,使用 Markdown 格式编写,方便人类阅读和 AI 理解。
举个例子,下面是 TDD(测试驱动开发)技能的简化版本:
---
name: test-driven-development
description: 在实现功能时激活。强制执行红-绿-重构循环。
---
# 测试驱动开发技能
## 核心流程
1. 红色阶段:先写一个会失败的测试
2. 绿色阶段:写最少的代码让测试通过
3. 重构阶段:优化代码结构,保持测试通过
## 关键规则
- 在测试存在之前,绝不编写实现代码
- 如果发现代码没有对应的测试,删除它
- 每次只解决一个测试失败
当你要求 Claude Code 实现一个功能时,它会自动检查是否有相关技能可用。如果找到了 TDD 技能,它就会按照技能中定义的流程来工作,而不是直接开始写代码。
2.2 技能是如何被加载的?
Superpowers 的技能加载机制非常精妙。当你安装插件并重启 Claude Code 后,系统会在会话开始时注入一段引导提示:
<session-start-hook>
<EXTREMELY_IMPORTANT>
You have Superpowers.
RIGHT NOW, go read: @/path/to/skills/getting-started/SKILL.md
</EXTREMELY_IMPORTANT>
</session-start-hook>
这段提示告诉 Claude 几件关键的事情:
- 你拥有技能(Superpowers)
- 这些技能赋予你超能力
- 通过运行特定脚本可以搜索可用技能
- 使用技能的方式是阅读它们并按照指示行动
- 如果有技能可以完成某件事,你必须使用它
最后一点至关重要——它确保了 AI 不会绕过技能系统自作主张。
2.3 自动触发机制
Superpowers 中的技能分为两类:
主动技能:需要用户显式调用,比如通过斜杠命令:
/superpowers:brainstorm - 交互式设计完善
/superpowers:write-plan - 创建实施计划
/superpowers:execute-plan - 批量执行计划
被动技能:根据上下文自动激活,例如:
test-driven-development:当检测到要实现功能时激活systematic-debugging:当检测到调试任务时激活verification-before-completion:在宣称任务完成前激活
这种设计让 Superpowers 的使用变得非常自然——你不需要记住复杂的命令,只要正常描述你的需求,合适的技能就会自动生效。
三、完整工作流程详解
Superpowers 定义了一套完整的软件开发工作流程,从需求分析到代码交付,每个环节都有对应的技能支持。下面 无忆研习社 为你逐一拆解。
3.1 第一阶段:头脑风暴(Brainstorming)
这是整个流程的起点,也是 Superpowers 最与众不同的地方。
传统 AI 编程工具的做法:
用户:帮我写一个邮箱验证器
AI:好的,这是代码... [立即输出一大段代码]
使用 Superpowers 后的做法:
用户:帮我写一个邮箱验证器
AI:在开始编码之前,我需要先了解几个问题:
1. 这个验证器的使用场景是什么?注册表单?批量数据清洗?
2. 需要支持哪些验证级别?格式验证?域名检查?SMTP 验证?
3. 对性能有什么要求?每秒需要处理多少个邮箱?
4. 有什么已知的边界情况需要特殊处理吗?
...
头脑风暴技能会通过一系列问题,帮助你和 AI 对齐需求理解。这个过程通常会产生以下输出:
- 需求文档:明确要做什么
- 设计方案:如何做
- 技术选型:用什么技术栈
- 边界条件:需要处理哪些特殊情况
当设计方案确认后,它会自动保存到 docs/plans 目录,为后续开发建立基准。
3.2 第二阶段:Git 工作树设置(Using Git Worktrees)
在设计获得批准后,这个技能会自动激活,完成以下操作:
- 创建一个新的 Git 分支
- 使用 Git Worktree 创建独立的工作空间
- 运行项目初始化命令
- 验证测试基线是否干净
为什么要用 Git Worktree?
Git Worktree 允许你在同一个仓库下同时维护多个工作目录,每个目录对应不同的分支。这样做的好处是:
- 隔离性:新功能的开发不会影响主分支
- 便于回退:如果开发失败,可以直接删除工作树
- 支持并行开发:可以同时进行多个功能的开发
3.3 第三阶段:编写计划(Writing Plans)
有了设计方案后,下一步是将其转化为可执行的实施计划。
这个技能会把大的开发任务拆解成小的、可管理的任务块(Task),每个任务块通常是 2-5 分钟能完成的工作量。
一个典型的任务块包含:
## Task 3: 实现邮箱格式验证函数
### 目标
创建一个函数,使用正则表达式验证邮箱格式
### 文件路径
src/validators/email.ts
### 完整代码
[具体的实现代码]
### 验证步骤
1. 运行测试:npm test -- --grep "email format"
2. 预期结果:所有测试通过
注意每个任务都有"完整代码"和"验证步骤"——这确保了执行者(无论是人还是 AI)可以独立完成任务,不需要额外的上下文。
计划文件通常会写入 docs/plans 目录,长度可能达到 1000 行以上。这不是 AI 在"水字数",而是确保计划足够详细,不留模糊空间。
3.4 第四阶段:执行计划
Superpowers 提供了两种执行计划的方式:
方式一:子代理驱动开发(Subagent-Driven Development)
这是更自动化的方式。Claude 会为每个任务启动一个独立的子代理,每个子代理都有自己的上下文窗口,不会相互干扰。
执行流程:
- 主代理读取任务描述
- 启动子代理执行任务
- 子代理完成后返回结果
- 主代理进行两阶段审查:
- 第一阶段:检查是否符合规格说明
- 第二阶段:检查代码质量
- 审查通过则继续下一个任务,否则让子代理修正
这种方式的优势在于:
- 每个子代理都有完整的上下文容量
- 任务失败不会影响其他任务
- 可以并行执行多个任务
方式二:批量执行(Executing Plans)
这是更可控的方式,适合需要人工介入的场景。
执行流程:
- 按批次执行任务(比如每批 3 个)
- 每批完成后暂停,等待人工检查
- 人工确认后继续下一批
3.5 第五阶段:测试驱动开发(Test-Driven Development)
这是 Superpowers 的核心技能,贯穿整个开发过程。
TDD 的核心是"红-绿-重构"循环:
红色阶段(Red):
- 先写一个测试,描述期望的行为
- 运行测试,确认它失败(这很重要!)
- 如果测试不失败,说明测试写得有问题
绿色阶段(Green):
- 写最少的代码让测试通过
- 不要过度设计,只解决当前的测试
重构阶段(Refactor):
- 在保持测试通过的前提下优化代码
- 消除重复,提高可读性
- 完成后提交代码
关键规则:
## 强制规则
1. 在测试存在之前,绝不编写实现代码
2. 如果发现代码没有对应的测试,删除它
3. 每次只让一个测试从红变绿
4. 必须看到测试失败,才能开始写实现
最后一条规则经常被忽视,但非常重要。如果你没看到测试失败就开始写实现,你怎么知道测试真的在测试你写的代码呢?
3.6 第六阶段:代码审查(Code Review)
在任务之间,这个技能会自动激活,对已完成的代码进行审查。
审查内容包括:
- 是否符合原始计划
- 代码质量如何
- 是否有明显的 Bug
- 是否遵循了项目的编码规范
审查结果按严重程度分级:
- Critical(严重):必须修复才能继续
- Major(重要):应该修复
- Minor(次要):建议修复
- Info(信息):仅供参考
只有严重问题会阻止流程继续。
3.7 第七阶段:完成开发分支(Finishing a Development Branch)
当所有任务完成后,这个技能会接管,执行收尾工作:
- 验证所有测试通过
- 呈现选项:
- 合并到主分支
- 创建 Pull Request
- 保持当前状态
- 放弃更改
- 清理工作树
四、内置技能库全览
Superpowers 内置了丰富的技能库,无忆研习社 为你分类整理如下:
4.1 测试类
|
技能名称 |
功能描述 |
|
test-driven-development |
红-绿-重构循环,包含测试反模式参考 |
4.2 调试类
|
技能名称 |
功能描述 |
|
systematic-debugging |
4 阶段根因分析流程 |
|
verification-before-completion |
确保问题真的被修复 |
4.3 协作类
|
技能名称 |
功能描述 |
|
brainstorming |
苏格拉底式设计完善 |
|
writing-plans |
详细实施计划 |
|
executing-plans |
批量执行与检查点 |
|
dispatching-parallel-agents |
并发子代理工作流 |
|
requesting-code-review |
请求代码审查的前置清单 |
|
receiving-code-review |
响应审查反馈 |
|
using-git-worktrees |
并行开发分支 |
|
finishing-a-development-branch |
合并/PR 决策流程 |
|
subagent-driven-development |
快速迭代与两阶段审查 |
4.4 元技能
|
技能名称 |
功能描述 |
|
writing-skills |
创建新技能的最佳实践 |
|
using-superpowers |
技能系统入门指南 |
五、详细安装与配置指南
5.1 环境准备
在安装 Superpowers 之前,你需要确保以下条件:
必要条件:
- 已安装 Claude Code(版本 2.0.13 或更高)
- Node.js 18+ 环境
- Git 已安装并配置
推荐条件:
- VS Code 或 JetBrains IDE(用于更好的代码编辑体验)
- 稳定的网络连接(用于插件下载)
5.2 Claude Code 安装(如果还没装)
如果你还没有安装 Claude Code,可以通过以下步骤安装:
# 使用 npm 全局安装
npm install -g @anthropic-ai/claude-code
# 或使用 pnpm
pnpm install -g @anthropic-ai/claude-code
# 验证安装
claude --version
首次运行需要登录 Anthropic 账户并获取 API 密钥。
5.3 安装 Superpowers 插件
Claude Code 内置了插件系统,安装 Superpowers 非常简单。
第一步:添加插件市场
打开终端,进入你的项目目录,启动 Claude Code:
cd your-project
claude
在 Claude Code 的交互界面中输入:
/plugin marketplace add obra/superpowers-marketplace
这会将 Superpowers 的官方市场添加到你的插件源列表中。
第二步:安装 Superpowers 插件
继续在 Claude Code 中输入:
/plugin install superpowers@superpowers-marketplace
等待安装完成。
第三步:验证安装
输入帮助命令查看可用指令:
/help
如果安装成功,你应该能看到以下新增命令:
/superpowers:brainstorm - 交互式设计完善
/superpowers:write-plan - 创建实施计划
/superpowers:execute-plan - 批量执行计划
第四步:重启 Claude Code
退出并重新启动 Claude Code:
exit
claude
重启后,Superpowers 会自动注入引导提示,开始接管你的开发工作流。
5.4 其他平台的安装方式
除了 Claude Code,Superpowers 还支持其他 AI 编程工具。
Codex 用户:
在 Codex 中告诉 AI:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.codex/INSTALL.md
AI 会自动获取并执行安装指令。
OpenCode 用户:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md
这些平台的安装相对复杂一些,需要手动配置插件系统。
5.5 插件更新
当 Superpowers 发布新版本时,你可以通过以下命令更新:
/plugin update superpowers
技能会自动更新到最新版本。
六、实战演练:从零构建一个邮箱验证器
理论讲了这么多,现在让我们通过一个完整的实例,看看 Superpowers 是如何工作的。无忆研习社 将带你一步步体验完整流程。
6.1 启动项目
首先创建一个新项目:
mkdir email-validator
cd email-validator
npm init -y
claude
6.2 触发头脑风暴
向 Claude 描述你的需求:
我需要构建一个生产环境级别的邮箱验证器,支持多种验证级别。
由于 Superpowers 的 brainstorming 技能已激活,Claude 不会立即开始编码,而是会开始提问:
Claude: 在开始设计之前,我需要了解更多细节:
1. 使用场景
- 这个验证器会在什么环境下使用?前端表单验证?后端 API?批量数据处理?
- 预期的调用频率是多少?
2. 验证级别
- 需要支持哪些验证级别?
- Level 1: 格式验证(正则表达式)
- Level 2: 域名验证(MX 记录检查)
- Level 3: SMTP 验证(实际连接验证)
- 不同级别应该是可配置的还是固定的?
3. 边界情况
- 需要处理国际化邮箱地址吗?(如 用户@例子.中国)
- 对一次性邮箱服务(如 temp-mail.org)怎么处理?
4. 性能要求
- 有超时限制吗?
- 需要支持批量验证吗?如果是,需要什么样的并发控制?
请逐一回答这些问题,我们再进入下一步设计。
6.3 需求对齐
你逐一回答 Claude 的问题后,它会生成一份设计文档:
Claude: 基于我们的讨论,我整理了以下设计方案。请分段审阅:
## 1. 核心功能
我们将构建一个支持三级验证的邮箱验证器:
- 快速验证(Level 1):正则表达式格式检查,< 1ms
- 标准验证(Level 2):格式 + MX 记录检查,< 100ms
- 完整验证(Level 3):格式 + MX + SMTP 握手,< 2s
这个分段符合你的预期吗?[Y/N]
当你确认后,它会继续展示下一段:
## 2. API 设计
```typescript
interface ValidationResult {
valid: boolean;
level: 1 | 2 | 3;
details: {
format: boolean;
domain: boolean | null;
smtp: boolean | null;
};
error?: string;
}
async function validateEmail(
email: string,
level?: 1 | 2 | 3
): Promise