1. Superpowers 到底是什么:先搞清楚它在解决什么问题
如果你最近在 GitHub 或者技术社区刷 AI 编程相关的内容,大概率会反复撞见 superpowers 这个词。别误会,这不是什么励志课程的名字,在 2025 年的 AI 辅助开发圈子里,superpowers 特指 Jesse Vincent(GitHub 用户名 obra)给 Claude Code 做的一套 skills 技能框架。它解决的问题非常朴素:Claude Code 默认状态下是一个“你问一句、它答一句”的对话工具,同一件事你换一种说法,得到的质量可能天差地别。而 superpowers 把项目开发中最常用的高质量流程——头脑风暴、系统设计、写实施计划、TDD 开发、调试、代码审查——全部打包成一个个标准化的 skill,装进 Claude Code 的技能目录里,让 Claude 在干活时能主动读取并执行这些流程,而不是每次都靠临场发挥。
这篇文章写给正在用或者打算用 Claude Code 的开发者。我会从它背后的 Skills 机制讲起,把安装方式、技能清单、调用方法、自建技能这几个关键环节全部过一遍,最后把我实际踩过的坑整理成一张问题速查表。无论你是刚装好 Claude Code 的新手,还是已经在用它做项目的老人,这篇文章都能帮你省下不少试错时间。
1.1 Claude Code 的 Skills 机制
先说底层机制。Claude Code 从某几个版本开始支持了 Agent Skills,简单讲就是:在用户级目录~/.claude/skills/或者项目根目录.claude/skills/下放一个文件夹,里面写一个SKILL.md文件,描述这个技能是干什么的、应该怎么执行。Claude 在对话过程中会根据任务的语义自动匹配相关的 skill,把里面的步骤读进上下文,然后按步骤干活。
这个机制可以类比成给一个能力很强但没受过培训的新人一份 SOP 手册。平时手册不碍事,遇到对应任务时他自动翻手册、按流程走。和普通 prompt 模板最大的区别是:skills 是一个“目录 + 文件 + 可能附带脚本”的结构化包,可以做版本管理、可以团队共享、可以迭代修改。换句话说,它把“流程”变成了项目资产,而不是散落在聊天记录里的几句话。
1.2 Superpowers 的核心设计:技能集合加调度器
superpowers 本身不是一个单一工具,而是一个“技能的集合 + 一个调度技能”。这套设计很有想法。调度技能叫 superpowers,是一个 meta-skill,专门负责判断当前任务该调用哪个下游技能。比如你丢给它一句“帮我把这个功能写出来”,它会先判断需求是否清晰:不清晰就先走 brainstorming,然后走 system_design 和 writing_plans,最后才进执行阶段。这整套路由逻辑,很像一个资深技术负责人接手需求时的工作习惯。
每个子技能对应一个具体流程。比如test_driven_development规定 Claude 必须红灯阶段先写失败测试、再写实现、再重构,而不是上来直接甩实现代码。之所以要强调流程,是因为 AI 写代码最大的问题不是能力不足,而是“生成即自信”——它不会像人一样先想清楚再动手。skill 的作用就是强制注入类似人类的工程纪律。一个团队里最优秀工程师的工作习惯被固化成文件后,所有用这套框架的人都能复现接近这种质量的输出。
1.3 适合谁、不适合谁
先说不适合的:如果你只是想快速问答、一句话要一个结果,会觉得它啰嗦。因为 brainstorming 和规划阶段确实会多出几轮对话,这是故意为之的。
再说适合的:每天用 Claude Code 正经做项目的开发者,尤其是希望输出质量稳定、工作流可复制的人;以及想把 AI 使用规范统一起来的团队。团队场景下,你完全可以把整个 skills 目录提交到 git 仓库,所有成员共用一套流程,新人进来也不用重新摸索 prompt 技巧。我目前就是把项目里自定义的 skill 放在独立仓库里,换电脑 clone 一下就能恢复完整工作流。
2. 安装与引入:两条路我都给你踩过了
安装 superpowers 有两条主流路径:插件市场安装和手动部署。两条路我都实际试过,各有优劣,下面分别说清楚。
2.1 方式一:插件市场安装(推荐)
这是官方推荐的路径。打开 Claude Code 的交互界面,依次输入两条命令:
/plugin marketplace add obra/superpowers-marketplace /plugin install superpowers@superpowers-marketplace第一条命令把 marketplace 仓库添加进来,第二条命令从这个市场安装 superpowers 插件。执行过程中 Claude Code 可能会弹出确认窗口,提示这是第三方内容,选接受即可。装完后输入/plugin,应该能看到 superpowers 处于已启用状态。
需要提醒的是,插件市场功能在较新的 Claude Code 版本里才稳定。如果你的版本比较老,装之前先检查一下客户端版本,或者直接看官方更新日志确认当前版本支持 Agent Skills。我当时就是在一个旧版本上折腾了半天,升级之后一条命令就搞定了,属于相当典型的版本坑。
2.2 方式二:手动部署(适合想改源码的人)
第二种方式更像传统开源项目的玩法:克隆仓库或者直接下载技能文件夹,把里面的各个 skill 目录复制到~/.claude/skills/下。也可以保留仓库在你自己的目录里,用软链接指过去,方便统一升级。
手动部署的好处是方便定制。你想改某个技能的步骤,直接编辑对应的SKILL.md就行;想删掉用不上的技能,移走对应文件夹即可。缺点是升级时需要自己手动同步,不像插件市场一条命令就能拉新版本。下表把两种方式的关键差异列一下,方便你按自己的情况选。
| 对比维度 | 插件市场安装 | 手动部署 |
|---|---|---|
| 上手难度 | 低,两条命令 | 中,需要懂目录结构 |
| 升级维护 | 命令一键更新 | 手动同步,容易忘 |
| 定制能力 | 一般,改文件会被覆盖 | 完全可控 |
| 适合场景 | 日常使用、团队标准化 | 深度二次开发、学习原理 |
2.3 验证安装是否成功
装完之后别急着开干,先确认技能真的被加载了。我自己会做三个检查。
第一,直接问 Claude:“你现在有哪些可用的 skills?”。如果它开始列举 brainstorming、debugging、writing_plans 这些名字,说明技能目录已经被扫描到了。第二,检查文件系统,看~/.claude/skills/或者插件实际安装目录下有没有对应的技能文件夹。第三,也是最有效的,跑一个最小任务验证流程是否真实生效。我当时让它用test_driven_development写一个很简单的工具函数,如果它先写失败测试再写实现,说明流程被正常执行了;如果它直接甩实现代码,说明技能没被加载,大概率是路径或者权限问题。
3. 它到底带了多少 skills:清单与使用场景
我最初以为 superpowers 只是个把多个 prompt 模板打包在一起的工具,真正读了一遍它的技能目录后才发现,它的技能设计是有体系的。下面按实际用途给你过一遍。
3.1 调度技能:superpowers 本身
superpowers 这个技能不是拿来干具体某件事的,它的工作是“路由”。它的SKILL.md里写清楚了如何根据任务性质选择下游技能:需求模糊就调 brainstorming,涉及架构就调 system_design,要落地执行就调 writing_plans 和 executing_plans,要修 bug 就调 debugging。你可以显式对它说“用 superpowers 处理这个任务”,也可以不提,让 Claude 的语义匹配机制在对话过程中自动把相关技能加载进来。
这里有个关键提醒:不要以为装了 superpowers,它就会自动帮你做完整个流程。Claude 是否会真正加载某个技能,取决于它在上下文里是否匹配到了对应的 description。所以关键任务里,我建议你在 prompt 中明确点名“使用 xxx skill”,而不是指望它自己判断。被动加载适合顺手的任务,主动调用适合重要的任务。
3.2 常用技能速查表
下面这张表是我项目里实际用下来比较高频的技能,列清楚了每个技能的职责和触发方式。注意,技能清单是持续演进的,以你安装版本里的实际目录为准。
| 技能名称 | 核心职责 | 典型触发语 |
|---|---|---|
| superpowers | 元技能,调度其他技能 | “用 superpowers 处理这个任务” |
| brainstorming | 需求梳理、方案发散 | “帮我头脑风暴一下这个模块怎么设计” |
| system_design | 系统架构设计,输出设计文档 | “给这个服务出个架构方案” |
| writing_plans | 把方案拆成可执行的任务计划 | “把方案拆成实施步骤” |
| executing_plans | 按计划逐条执行、更新进度 | “按这个计划开始写代码” |
| test_driven_development | TDD 红绿重构流程 | “用 TDD 方式实现这个函数” |
| debugging | 结构化根因排查 | “这个 bug 帮我查一下” |
| review | 代码审查、找问题 | “帮我把这个改动过一遍” |
| committing | 生成规范化提交信息 | “帮我写 commit message” |
| defer_to_subagent | 把子任务委派给 subagent | “把这个子任务拆给 subagent 做” |
3.3 什么时候该用哪一套技能组合
单一技能解决单项任务,组合起来就能覆盖完整开发链路。我总结了几条高频使用链路,你可以直接当模板套。
新功能开发走“brainstorming 到 system_design 到 writing_plans 到 executing_plans”这条线,执行阶段穿插 TDD,保证每个功能都有测试兜底。修 bug 走“debugging 到 test_driven_development”这条线:先用 debugging 找到根因,再写一个能复现 bug 的失败测试,最后修复。收尾阶段走“review 到 committing”这条线:先让 Claude 审查自己的改动,确认没问题后生成规范化的 commit message。
这几条链路不是强制的,你可以只用其中一个技能。但如果你想把 AI 辅助开发的整体质量拉上去,我建议至少把“计划再执行”这条链路用起来,它带来的稳定性提升是立竿见影的。
4. 实操:从一个需求到一次完整交付
说再多理论不如跑一遍。这一节我用一个实际的开发场景,把从模糊需求到代码落地的完整流程拆给你看。场景就定为:给内部工具加一个批量重命名文件的功能。
4.1 用 brainstorming 把模糊想法变成清晰需求
如果我对 Claude 直接说“帮我加个批量重命名功能”,它大概率会直接开始写一个rename.py,至于重命名规则是什么、要不要预览、冲突怎么处理,全凭它猜。用了 brainstorming 技能之后情况完全不同。我给它一句“使用 brainstorming 技能,帮我想清楚批量重命名功能的需求”,它会先进入一个结构化访谈阶段,一轮一轮问我:目标用户是谁?重命名规则有哪些类型?是否需要先预览再执行?冲突文件怎么处理?
这个过程大约持续五到十轮问答,最后它会输出一份“需求与方案备忘录”,里面写清楚功能边界、核心规则、验收标准。这个产物可以直接作为下一步设计的输入。我实际用下来的感受是,它比我手动写需求文档快得多,而且因为它会主动追问边界,很多我没想到的细节都被补上了。说白了,它逼我在动手前把问题想清楚,而不是边写边改。
4.2 用 writing_plans 把方案拆成可执行的步骤
有了需求备忘录,下一步是让 Claude 把方案落成实施计划。我会说“使用 writing_plans 技能,把上面的方案拆成实施计划”。它做的事不是把需求换个说法再输出一遍,而是真正的任务拆解:每个任务都有明确的验收标准、依赖关系、涉及的文件路径。它会把计划保存成项目里的plans/目录下的 Markdown 文件,方便后续执行阶段读取。
这一步的价值在于“动手前的风险排查”。我在实际使用中好几次看到它拆出的任务里包含了我没想到的数据备份步骤,或者把 UI 和核心逻辑分成了两个阶段。如果拆出来的任务粒度太大、有遗漏,直接让它修改计划再执行,别急着往下走。计划改到你觉得靠谱了,才进入执行。
4.3 用 test_driven_development 和 executing_plans 真正干活
执行阶段,我会说“使用 executing_plans 技能,按计划开始实现,测试用 TDD 方式写”。executing_plans 会逐条读取计划文件,每完成一个任务更新一次进度,并且会在阶段结束时汇总当前的改动。TDD 则约束它必须先写失败测试,再写实现,最后重构。
这两个技能配合起来,整个执行过程会明显“更稳”。我观察到 TDD 模式下 Claude 写出来的代码边界更干净,因为它必须通过测试来证明实现正确,而不是靠自信。特别是重命名这种涉及文件操作的逻辑,测试能把规则和异常路径都兜住。中途如果某个任务卡住了,它会停下来向你报告问题,而不是假装完成了然后继续往下走。这一点我很看重——AI 编码最大的风险不是写不出来,而是写出了“看起来很对但实际没做完”的代码。
4.4 用 debugging 处理翻车现场
开发过程中免不了遇到诡异 bug。以前我的做法是直接把报错扔给 Claude,它经常会回一段看似合理的修复代码,但根因其实没找到,改完一个 bug 带出三个新 bug。用 debugging 技能之后,流程变成了:先复现问题,再缩小排查范围,形成根因假设,验证假设,修复,最后补一个回归测试。
这套流程本质上就是科学方法。它强制 Claude 区分“事实”和“猜测”,每一步都有可回溯的依据。我的使用结论是:它可能不会比一个特别熟悉代码库的老手更快,但排查过程是透明的、可追踪的,特别适合用在你不熟悉的代码库里。遇到问题时我现在的习惯是直接说“使用 debugging 技能,帮我查一下这个问题”,而不是简单贴个报错。
5. 自己写 skill:把团队的规范固化下来
用了一段时间现成技能后,你会发现真正的杠杆在于自定义 skill。毕竟每个团队都有自己独特的代码规范、提交规范、文档格式,与其每次不厌其烦地在 prompt 里描述,不如直接写成一个 skill 让 Claude 永久记住。
5.1 SKILL.md 的结构
一个 skill 本质上是一个文件夹,结构如下:
my-skill/ ├── SKILL.md └── scripts/ └── helper.pySKILL.md是核心,它由两部分组成。开头是 YAML frontmatter,至少包含name和description两个字段。其中description是灵魂,它决定了 Claude 在什么情况下加载这个技能,所以要把触发场景写得很具体。正文部分是 Markdown 格式的流程说明,包括任务目标、前置条件、步骤、输出格式、示例。如果有辅助脚本,放在scripts/下,正文里指示 Claude 在特定步骤运行脚本即可。
5.2 一个最小可用 skill 示例
拿生成 CHANGELOG 这个场景举例。团队里每次发版都要手动更新 CHANGELOG,效率低还容易漏。我写了一个changelogskill,代码如下:
--- name: changelog description: 在代码提交完成后,根据最近的 git 提交记录生成符合团队规范的 CHANGELOG 条目。当用户提到“更新 CHANGELOG”“生成变更日志”或准备发版时使用。 --- # 任务 根据最近一次版本发布后的 git 提交记录,生成 CHANGELOG 条目。 # 前置条件 - 确认当前在 git 仓库根目录 - 确认存在 CHANGELOG.md 文件 # 执行步骤 1. 运行 `git log --oneline -10` 查看最近提交 2. 按 Conventional Commits 格式将提交分类为:Features、Bug Fixes、Documentation、Other 3. 对每条提交提炼一句话描述,忽略 chore 类型的重复提交 4. 找到 CHANGELOG.md 中当前版本标题,在其下方插入新增条目 5. 输出变更后的 CHANGELOG.md 片段供确认写完后放到~/.claude/skills/changelog/目录下,重启 Claude Code 就能生效。以后再遇到更新 CHANGELOG 的需求,Claude 会自动加载这个技能并按步骤执行,不会再出现格式五花八门的条目。
5.3 自己写 skill 的三个原则
我写了几十个自定义 skill 之后,总结出三个原则,基本能避开大部分坑。
第一个原则是 description 写触发场景,而不是功能名词。“为代码提交后生成规范化的 CHANGELOG 条目”远好于“changelog 工具”,因为前者给了 Claude 明确的语义匹配锚点。第二个原则是步骤要可验证。每一步之后尽量有检查方式或者明确产出物,让 Claude 能确认自己有没有做对,也能让你在事后审查。第三个原则是保持小,一个 skill 只做一件事。把十个流程塞进同一个文件,看起来省事,实际会让 Claude 在加载时因步骤太长而跳步,还不如拆成多个独立技能分组调用。
6. 常见问题与排查技巧实录
最后把我在实际使用中遇到的典型问题整理成一份速查表。这些坑我基本都踩过一遍,每个都附上了有效的排查思路。
6.1 marketplace 添加失败
如果你执行/plugin marketplace add时没反应或者报错,先检查仓库地址是否拼写正确,再确认是否能正常访问 GitHub。常见情况是网络不通导致命令直接失败,这属于环境问题。其次,插件市场命令偶尔会有缓存问题,重启 Claude Code 再试一次往往就好了。如果报错信息是 404,不用怀疑,就是仓库地址写错了,回官方仓库复制一条最新的完整命令最稳妥。
6.2 安装成功但技能没有生效
装好插件但发现 Claude 完全没有新行为,优先检查路径。旧版本 Claude Code 可能会把技能装到插件缓存目录而不是标准 skills 目录,需要确认是否被扫描。其次检查文件名,必须是严格意义上的SKILL.md,大小写和扩展名都不能错。最后检查 description 的匹配性,如果描述写得太宽泛,语义匹配命中不了,遇到相关任务时直接显式点名“使用 xx skill”绕过这个问题。
6.3 Claude 不按技能步骤走
明明加载了技能,但 Claude 还是跳步,这个问题我遇到得不少。最常见的原因是上下文里其他指令覆盖了技能提供的步骤,导致优先级混乱。解决方案是把任务拆到新会话里单独执行,只保留必要的上下文。还有一种情况是技能步骤里涉及运行命令或脚本,但被 Claude Code 的权限系统拦截,流程被迫中断。这时候允许相关命令执行或者调整权限规则,再重试即可。
6.4 版本兼容问题
插件市场功能在旧版 Claude Code 里不稳定,如果你升级后仍行为异常,建议查一下更新日志中 skills 相关的改动。另一个实用的兜底方案是:干脆回到手动部署方式,把技能目录直接放到~/.claude/skills/下,这能绕开插件系统本身的兼容问题。手动部署不依赖插件版本,只要 Claude Code 支持 Agent Skills 就能工作,是在版本乱斗时期最稳妥的选择。
最后说一点个人体会。用 superpowers 一段时间之后,我最深的感受是它真正值钱的地方不在于让 AI 多写了几行好代码,而是把“AI 怎么干活”这件事变得透明了。你可以打开任何一个 skill 的SKILL.md,清楚地看到 Claude 正在被要求按什么流程走,这意味着团队的工程规范第一次能以这种形式直接传导给 AI。我的建议是,不要装完就只当工具用,花一个下午把仓库里的技能全部读一遍,然后照着它们的写法,把你团队里最想固化的那个流程也写成自己的 skill。这个过程本身,可能比任何 prompt 技巧都更有长期价值。