1. superpowers到底解决了什么问题
1.1 先说清楚它是什么
我第一次装superpowers这个技能包,是在一个连续加班修bug的深夜。当时正在用Claude Code帮我改一个老项目的模块,代码生成速度没问题,但每次都要我反复强调“先看上下文、列改动方案、再动手实现”,来回拉扯非常消耗精力。装上obra/superpowers之后,情况明显不一样了——它自带一堆工程“技能”,Claude Code会在合适的场景自动调用,像一位经验丰富的老工程师在边上搭手。
这里的superpowers,指的是GitHub上开源的obra/superpowers项目,作者是Jesse Vincent。它本质上是一套给Claude Code用的可插拔技能集。你不需要再反复在对话里写“请你扮演资深架构师”“请务必先审查再动手”这类提示词,而是把专家级的操作流程固化成了一个个SKILL.md文件,让Claude Code按需加载、按步骤执行。
如果你也在用Claude Code写代码、做代码审查、接手陌生项目,或者总觉得自己写出来的提示词不够稳定,这篇内容会比较适合你。读完你会发现,所谓“超能力”,并不是魔法,而是把好习惯重复一百遍的过程。
1.2 核心设计:一个技能就是一份“操作手册”
superpowers的核心机制其实不复杂。每个技能对应一个目录,目录里有一个SKILL.md文件。这个文件用Markdown编写,开头是YAML格式的元信息,其中包括技能名称和触发条件。Claude Code启动时会扫描这些技能文件,把里面的内容注入到自己的工作上下文里。
当对话内容命中某个技能的触发描述时,Claude Code就会“翻出”这份操作手册,按照里面写好的步骤执行。你可以把这个过程理解成后厨的菜谱架:AI是主厨,平时不需要把每道菜的做法都背下来,客人点了菜,直接从菜谱架抽出对应卡片就好。
这个设计最聪明的点在于:prompt和技能集的复用成本完全不同。以前写prompt,每次都要重新组织语言,换个项目就失效了;而技能文件是独立存在的,一次写好,到处引用。项目级可以用,团队级可以共享,发布到社区还能让全世界的开发者一起维护。
1.3 为什么不是“提示词”,也不是“插件市场里的大杂烩”
很多人第一次接触superpowers,会把它和普通的prompt库混淆。我的理解是,prompt库是“一次性台词”,而superpowers是“标准化流程”。前者靠模型临场发挥,后者靠流程约束产出。举个例子,你让AI做代码审查,普通prompt可能只会得到“这里有个bug、那里风格不一致”这类表面结论;而superpowers里的code-review技能,会引导AI按“正确性、可维护性、安全性、性能”几个维度逐项检查,最后给出一份可执行的修改建议。
它和普通插件的区别,在于技能的自主触发机制。普通插件更像一个工具箱,用户得自己打开箱子拿工具;superpowers则更像一个主动的助理,它会根据你的对话内容自动判断需要调用哪个技能。这也是我后来习惯在项目里常驻它的原因之一。
2. 拆开看看:superpowers里到底有哪些skills可用
2.1 先用一张表看清整体分类
我刚接触这个项目的时候,第一反应也是去翻它到底带了多少技能。官方仓库给出的技能类别很多,我把实际用得上的主要技能整理成了下面的表格:
| 技能类别 | 核心能力 | 推荐使用时机 |
|---|---|---|
| Bootstrapping Skills | 新项目初始化、目录结构设计、基础配置生成 | 新开仓库,或接手目录结构混乱的旧项目 |
| Engineering Logs | 自动维护工程日志,记录改动背景和决策过程 | 每次完成一次重要修改之后 |
| Code Review Skills | 代码审查,覆盖正确性、可维护性、安全、性能 | 提交PR前,或拿到别人代码准备合并时 |
| Debugging Skills | 系统化问题定位,日志分析、二分排查、最小复现 | 线上问题难以复现,或逻辑链路太长时 |
| Security Skills | 依赖漏洞检查、硬编码密钥识别、敏感信息扫描 | 发布前做安全自查,或审计密钥相关代码 |
| Performance Skills | 性能剖析,定位瓶颈点,给出优化建议 | 接口响应变慢、页面加载耗时异常时 |
| Testing Skills | 测试计划生成、用例设计、覆盖率评估 | 新增功能,或做回归修复时 |
| Documentation Skills | README、接口文档、交付说明生成 | 项目交接、开源仓库整理时 |
| Technical Design Skills | 技术方案设计、架构决策分析 | 做模块设计、评估重构方案时 |
这张表里展示的,是superpowers里相对成熟、社区反馈也比较好的一批技能。实际项目里不需要全部启用,建议按团队需要裁剪。后面我挑几个自己用得最多的重点讲。
2.2 最常用的三个技能,我实测下来的体验
先说Bootstrapping Skills。它不是简单地“生成一个目录”,而是会先问你业务背景、团队技术栈、部署方式、代码规范这些信息,然后一次性给出一个可以直接跑起来的项目骨架。我拿它初始化过一个内部小工具,省了大概大半天时间。更实用的场景是接手旧项目:即使代码很乱,你也能让它先按现有依赖和目录结构生成一份项目地图,快速建立起整体认知。
再就是Debugging Skills。这个技能教给Claude Code的,是一套相对严谨的排查路径:先确认问题现象,再收集日志,然后构造最小复现,最后用二分法缩小范围。过去我直接对AI说“帮我看看这个接口为什么报错”,它往往上来就猜一个原因,改完还是不行;装了superpowers之后,它会先给出完整的排查计划,等确认一个步骤完成后再进入下一步。说实话,这种“有节奏感”的AI协作,是我最认可这个项目的地方。
Code Review技能也很值得单独说。它能按照“正确性—可维护性—安全—性能”四个维度给出结构化审查意见,而不是像普通对话那样只挑几个明显的bug。我用它审过一次一个同事提交的前端模块,它不仅指出了React hooks依赖数组的问题,还提醒了潜在的权限绕过风险。虽然不能完全替代人的判断,但作为第二双眼睛,性价比很高。
2.3 多个技能怎么组合使用
superpowers里的技能不是孤立的,它们可以串联成一条完整的工作流。比如我刚接手一个不熟悉的后端服务时,习惯的顺序是:先用Engineering Logs记录当前问题和背景,接着用Bootstrapping Skills生成项目结构总览,再跑一轮Code Review摸清代码质量底细,后续改代码碰到疑难杂症时再用Debugging Skills系统排查。
这种组合方式的好处是,每次交互都有明确的上下文承接,不会出现“AI刚看完A模块,转头又把B模块的结论套进来”的情况。技能文件本身写得越清晰,Claude Code在不同环节里的状态切换就越自然。这也是我在团队里推广它时,最愿意强调的一个使用思路。
3. 安装与引入:让技能真正跑起来
3.1 安装之前的准备
安装superpowers本身不复杂,但对环境版本有一定要求,建议先确认你的Claude Code是较新版本。因为superpowers依赖新版Agent Skills机制,版本太旧可能无法正确识别SKILL.md文件。我用的环境是官方最新版CLI,Node环境正常,没有额外装其他辅助工具。
另外要明确一点:安装和引入是两个动作。安装是把superpowers这个插件拿到本地,引入是把它的技能挂载到某个项目或当前会话里。很多人卡在“装好了却没用上”,其实就是第二步没做对。
3.2 两种安装方式,我都试用过
第一种最省事,直接在Claude Code对话框里输入:
/plugin install obra/superpowers@latest输入后会在会话里看到拉取进度,等它跑完,按提示重启会话即可。这种方式是自动化的,插件目录、技能索引都会处理好,适合大多数场景。
第二种是本地源码方式。如果你想改技能内容,或者暂时不方便走自动拉取流程,可以把仓库clone到本地:
git clone https://github.com/obra/superpowers.git然后在Claude Code的插件管理界面里,选择本地插件目录,指向clone下来的文件夹。这种方式的优点是可以随时改SKILL.md,加了自定义技能后立即生效;缺点是后续更新需要自己手动git pull,比自动安装多一步操作。
3.3 安装后怎么确认生效
重启会话后,可以先在对话框里直接问一句:“你现在加载了哪些superpowers技能?”如果插件正常,Claude Code会列出一串技能名称。也可以输入/plugin查看插件状态,确认superpowers在列表里且是启用状态。
如果列表是空的,或者AI回答说“没有加载任何技能”,通常说明插件没有挂载成功。这时候回到第4章的排查思路去查,不要反复重启浪费时间。
3.4 如何把技能引入到具体项目
superpowers自带的技能集中在插件目录里,但你也可以把任何技能放到自己想用的位置。项目级技能放在项目根目录下的.claude/skills/,全局技能放在用户目录下的~/.claude/skills/。放在项目级意味着跟着仓库走,团队成员拉下代码后也能共享同一套技能;放在全局则适合个人使用习惯的积累。
我自己更推荐项目级。因为技能的触发描述往往和项目上下文强相关,跟着仓库走,能保证CI环境、其他协作者看到的行为一致。下面是一个自定义技能文件的示例:
--- name: api-contract-review description: 当用户要求审查API接口定义、前后端联调契约或字段兼容性时使用,重点检查命名规范、错误码设计和版本兼容性 --- # API Contract Review ## 执行步骤 1. 先梳理接口路径、方法、入参、出参的完整定义。 2. 对比调用方的实际使用方式,找出字段名或类型不一致点。 3. 检查错误码是否覆盖了超时、限流、参数非法等常见异常。 4. 输出一份结构化审查报告,按“阻断/建议/可选”三档标记问题。把上面内容保存为.claude/skills/api-contract-review/SKILL.md,重启会话,这个技能就进入可调用状态了。触发词不需要写得很复杂,只要覆盖真实对话中会出现的高频表达,比如“review一下API”“看看接口契约”即可。
3.5 一个具体的实战调用示例
装好之后,实际使用中你不需要背任何命令。比如我想让Claude Code帮我审查一个模块,只需要说:
“帮我用code-review技能过一遍src/services/order.js,重点看异常处理和性能。”
这种表达方式会直接命中code-review技能的description,Claude Code会自动加载对应的操作步骤,按照技能文件里定义的维度逐项检查。我实测下来的感受是:它输出的报告,比平时直接聊出来的内容更有条理,也更容易让团队成员照做。
同样,排查接口偶发500的问题时,我会说:“这个接口偶尔报500,帮我用调试技能走一遍流程。”它会先让我确认最近一次改动、再看错误日志、构造复现条件,而不是直接甩一个猜测性的修复代码。这套流程看起来慢,但实际效率很高。
4. 实战排坑:我在使用superpowers时遇到的几类问题
4.1 技能“不生效”,先查这三处
我一开始遇到过好几次“装好了却感觉没用”的情况,后来总结下来,问题基本出在三个地方。
第一是目录位置。技能文件必须放到Claude Code能扫描到的目录里,比如.claude/skills/下面,并且SKILL.md这个文件名不能改。第二是没有重启会话。插件扫描技能文件的时机一般是在会话启动阶段,装完或改动技能后不重启,当前会话里基本不会生效。第三是触发描述写得太窄。如果description里全是专业术语,而日常对话里不会那么说,AI就识别不出来。
提示:排查技能不生效时,最快的办法是直接问Claude Code“你现在能用的技能有哪些”。它能答上来,说明机制正常;答不上来,再去查目录和版本。
4.2 技能太多了,怎么管理和精简
superpowers自带的技能数量不少,如果全量启用,会在上下文中占用不少空间,也可能导致误触发。我现在的做法是按项目裁剪:新项目只保留Bootstrapping、Code Review、Debugging、Engineering Logs这四类,其他技能等需要时再手动引入。
裁剪方式很简单,不需要的技能目录在.claude/skills/里移除或重命名即可。技能文件的description写得越具体,误触发的概率越低。比如把“用户请求审查时使用”改成“当用户要求审查Python后端代码且重点关心数据库查询性能时使用”,匹配准确性会高很多。
4.3 技能之间的冲突和优先级
多个技能描述出现重叠时,可能会发生冲突。比如code-review技能和security技能都可能在你提到“检查敏感信息”时被触发。处理办法是让description里的限定条件更明确:“检查API返回数据结构”和“扫描代码里的硬编码密钥”对应到不同技能,就基本能避免抢答。
关于优先级,我的经验是项目级技能通常比插件自带技能更优先被采用,但不同版本的行为可能略有差异。遇到冲突时,最稳妥的做法是保留更具体的那个技能,把另一个的触发描述加上否定条件,比如“当用户要求审查API契约时,不要使用安全审计流程”。
4.4 更新与团队分享
superpowers本身迭代挺快,我会定期执行/plugin update,或者用本地源码方式时进入仓库目录执行git pull。更新之后,最好重新跑一次“你现在加载了哪些superpowers技能”的检查,确认新版本没有破坏已有技能。
团队分享方面,最简单的方案是把技能目录提交到项目仓库的.claude/skills/下。团队其他成员拉取代码后,只要Claude Code版本支持,重启会话就能自动加载。如果团队里有更好的实践,完全可以基于某个内置技能改一份内部版本,直接覆盖同名文件即可。
尾声:一个小习惯,让superpowers发挥更大价值
我自己用下来的体会是,superpowers真正值得投入时间的地方,不是安装本身,而是花半小时把它的技能文件通读一遍。那些SKILL.md里写的步骤,本身就是很好的工程方法论,哪怕不依赖AI,也值得日常开发时借鉴。
最后分享一个小技巧:在自定义技能时,别把触发描述写得太“书面”。用你平时真实会说的话,比如“帮我看看这个模块哪里有问题”“这个接口为什么慢”,反而更容易被触发。技能只有在你需要的那一刻被准确调起来,才算真正发挥出所谓的“超能力”。