
最近一个月我几乎把 AI 编程助手从“代码生成器”调教成了“能自动跑测试、能复盘、能写文档的准工程师”靠的就是一个叫 superpowers 的开源技能库。如果你也在用 Codex CLI 或 Claude Code并且觉得 AI 写的代码“能跑但不敢上线”那这套工具很可能就是你缺的那块拼图。这篇文章不是官方文档的翻译而是我从安装到实战、从踩坑到梳理出来的使用指南内容包括安装步骤、核心技能拆解、Java 项目里的完整实操以及一堆文档里不会写的排查经验。适合刚听说 superpowers 的新手也适合已经装上但始终用不明白的进阶用户。1. superpowers 到底给 AI 编程工具加了什么“超能力”1.1 从“聊天生成代码”到“自主执行任务”先说一个很现实的痛点常规的 AI 编程助手本质上是个超强的补全工具。你问它“这个方法怎么实现”它给你一段代码你问它“这个报错怎么回事”它给你一段解释。可一旦涉及完整任务比如“给这个模块补测试、重构逻辑、再更新文档”它就开始露怯——上下文记不住、步骤前后矛盾、做到一半忘了最初的需求。问题不在于模型不够聪明而在于我们只给了它“对话”没给它“工作流”。superpowers 解决的就是这个从对话到工作流的问题。它把工程师日常的隐性流程——先想清楚再做、先写测试再写实现、做完要复盘要记录——显性化为一个个“技能包”。每个技能包就是一个带结构化指令的目录AI 在开始干活前会先读取技能说明就像新人入职先看 SOP然后按步骤执行。我实测下来同样的需求不用 superpowers 时 AI 是“给什么写什么”用上之后它会主动问边界条件、拆任务、写测试、跑测试、再重构行为模式非常接近一个合格的初级工程师。1.2 项目结构技能、命令、流程三者到底是什么关系第一次打开 superpowers 仓库的人很容易被目录结构劝退。其实它的核心关系就三层技能skill、命令command、流程flow。技能是基础单位每个技能对应一个目录目录里必须有一个SKILL.md文件。这个文件用 Markdown 写成头部是 YAML frontmatter写着技能名称和描述正文则是具体的操作步骤。AI 会通过“描述”来判断当前任务是否该调用这个技能。命令是更轻量的快捷动作比如“帮我列出现有技能”本质上是一个高频指令的封装。流程则是多个技能的组合编排比如“从需求到上线”这种端到端的链路就是 brainstorm 技能出方案、plan 技能拆任务、tdd 技能写实现、review 技能做检查。这三个概念不是 superpowers 独创的但它把它们打包得足够工整并且和 Codex、Claude Code 的插件机制做了深度绑定。安装之后技能文件会落到~/.codex/skills或者.claude/skills目录里宿主程序启动时会自动扫描AI 在需要时就能读到这些指令。2. superpowers 安装与初始化新手也能十分钟跑通2.1 前置环境准备在装 superpowers 之前先确认你的机器上已经装好了“宿主”。superpowers 不是独立运行的软件它是增强层寄生在某个 AI 编程 CLI 下面。目前我用过且表现稳定的是 Codex CLIClaude Code 也完全兼容两者选一个就行。需要准备的东西不多Node.js 18 或更高版本。不少技能脚本是用 JavaScript 写的版本太老会直接跑不起来。Codex CLI 或 Claude Code。安装方式各自官方文档都有这里不展开。Git用于从仓库拉取技能文件。装好后先做一轮体检在终端里执行下面三条命令node -v git --version codex --version如果codex不是有效命令说明 CLI 没有加入 PATH去找安装路径然后把 bin 目录加进环境变量。我的建议是不要用太老的 Node 版本18 以下会有各种兼容问题表面上安装成功了实际跑技能脚本时会报SyntaxError排查起来非常头疼。2.2 两种安装方式插件市场与一键脚本现在安装 superpowers 主流有两种方式。第一是走插件市场这也是官方推荐的方式适合 Codex 和 Claude Code 的新版本codex plugin marketplace add obra/superpowerslatest执行完之后用codex plugin list确认插件状态。有些版本的 Codex 需要再手动启用一般是一个交互式操作按提示输入y就行。如果插件市场命令不可用说明你的 Codex 版本太老先升级 CLI 再回来。第二是一键脚本安装适合老版本或者想快速体验的场景curl -sSL https://raw.githubusercontent.com/obra/superpowers/main/install.sh | bash这个脚本会检测你机器上已有的 CLI并把技能文件放到对应的配置目录里。装完之后不要忘了重新打开终端否则环境变量不会刷新。验证是否安装成功最简单的方式是看技能目录ls ~/.codex/skills或者让 AI 自己报一下codex 列出你现在拥有的所有技能如果 AI 能报出一串技能名比如 brainstorming、planning、tdd、memory说明安装成功。我在装的时候踩过一个坑脚本执行完提示成功但技能目录是空的最后发现是网络下载超时导致文件没拉全。重新执行一次脚本网络稳定时就能成功。这里提醒一句如果你的网络环境访问 GitHub 不稳定建议换个时段或者用代理镜像否则很容易碰到半截文件。3. 核心技能解析superpowers 到底怎么改变 AI 的行为3.1 技能调用机制AI 怎么知道该用哪个技能很多人装上 superpowers 之后最困惑的一点是我已经装好了为什么 AI 还是像以前一样乱写关键就在于调用机制。superpowers 给 AI 的是一堆技能卡片但 AI 得先知道“什么时候该翻哪张卡片”。这个判断依据是SKILL.md里的 description 字段。比如 tdd 技能的描述可能是“当需要编写新功能代码时先用测试驱动开发流程编写失败测试、运行测试、实现代码、让测试通过、最后重构”。当任务描述里出现“实现一个功能”“写一个新类”这类词时AI 就会优先加载这个技能文件然后按照里面的步骤执行。所以你在使用时可以做得更主动。直接跟 AI 说“请使用 tdd 技能来完成这个需求”比让它自己猜要可靠得多。我自己写过一个最简单的SKILL.md结构大概是这样的--- name: demo-skill description: 当用户要求生成代码时先输出设计方案再输出实现 --- ## 步骤 1. 阅读需求 2. 列出边界条件 3. 输出设计方案 4. 根据方案写代码 5. 最后输出实现说明不需要任何编程基础这就是一份给 AI 看的说明书。理解了这个机制你就能明白 superpowers 实际上是把你“平时怎么干活”的流程固化成文档然后让 AI 照着执行。3.2 高频技能详解brainstorm、plan、tdd、memory我高频使用的技能有这么几个按使用频率排序。brainstorm 技能适合需求还不清晰的时候。以前直接让 AI“写一个用户注册功能”它可能上来就甩一堆代码。现在我会先说“用 brainstorm 技能帮我分析这个需求的实现思路”它会主动给出两三种方案列出每种方案的优缺点再推荐其中一个。这个技能帮我有效避免了“第一版方案就是错的”这种窘境。plan 技能负责把大任务拆成小步骤。AI 会生成一个带复选框的待办清单存放在 plans 目录下然后一步一步推进。它的价值不在于清单本身而在于AI会定期读这个文件保证不跑偏。我之前让它写一个文件上传模块它自己拆出了接口定义、表单解析、存储策略、异常处理、单元测试五步走完之后代码质量明显比一次生成要高。tdd 技能是超级王牌。它让 AI 严格按“红-绿-重构”循环工作先写测试跑一遍确认失败再写实现代码跑一遍确认通过最后重构。对 Java 项目来说这个技能简直是刚需后面我会用一个完整案例演示它怎么用。memory 技能负责长期记忆。AI 可以把项目的约定、用户偏好、常见坑写入记忆文件下次会话自动读取。比如我会让它记住“本项目单元测试用 JUnit 5 不用 TestNG”“实体类禁止使用 public 字段”这种团队规范。实测下来AI 在后续代码里确实会遵守这些约定这是最省心的一个技能。4. 实操记录用 superpowers 在 Java 项目里完成一个需求4.1 从需求到实现一次完整的 TDD 演示空谈理论没用我拿一个真实项目里的小需求演示完整流程。背景是订单模块需要新增一个“实际支付金额计算器”规则很简单满 100 减 10平台优惠券可叠加计算后金额小于 0 时直接报错。技术栈是 Java 17、Maven、JUnit 5。我启动 Codex 后输入的第一条指令是请使用 brainstorm 技能帮我分析订单支付金额计算器的实现方案AI 读取技能后给了三套方案纯静态方法、策略模式接口、基于金额管线的责任链模式。它推荐了第二种理由是后续还要加“会员折扣”“满赠活动”策略模式扩展性最好。我同意后接着下一条指令使用 plan 技能拆解任务计划存到 plans/order-calculator.mdAI 很快生成计划定义接口、实现默认策略、实现优惠券策略、编写校验逻辑、写测试、跑测试、重构。到这里整个行为已经和真实工程师的开工流程很接近了。接下来是核心部分使用 tdd 技能开始实现先写失败的测试用例AI 自动生成了OrderCalculatorTest.javaimport org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class OrderCalculatorTest { Test void shouldApplyFullReductionWhenAmountOver100() { OrderCalculator calculator new OrderCalculator(); assertEquals(90.0, calculator.calculate(100, 0)); } Test void shouldStackCouponAndReduction() { OrderCalculator calculator new OrderCalculator(); assertEquals(80.0, calculator.calculate(100, 10)); } Test void shouldThrowWhenResultBelowZero() { OrderCalculator calculator new OrderCalculator(); assertThrows(IllegalArgumentException.class, () - calculator.calculate(1, 99)); } }然后 AI 主动执行了mvn test看到红色测试失败接着才写实现public class OrderCalculator { public double calculate(double amount, double coupon) { double afterReduction amount 100 ? amount - 10 : amount; double result afterReduction - coupon; if (result 0) { throw new IllegalArgumentException(支付金额不能小于0); } return result; } }再跑一次mvn test全部通过变绿。最后 AI 做了重构把魔法数字 100 和 10 提取为常量补充了注释还顺手更新了 README。整个流程我没有手动写一行代码只是在关键节点告诉它“用哪个技能”剩下的全是 AI 在遵循技能指令执行。4.2 如何自定义技能并调整参数很多团队用上 superpowers 之后会想把自己的开发规范也固化进去。这个完全可以做到而且很简单。在技能目录下新建一个文件夹里面放一个SKILL.md就行。我举个例子假设团队约定“所有提交信息必须带类型前缀比如 feat、fix、docs”我可以建一个自定义技能skills/commit-style/ SKILL.mdSKILL.md内容如下--- name: commit-style description: 当需要生成 git 提交信息时强制使用 conventional commits 风格 --- ## 规则 - 提交信息必须以 feat: / fix: / docs: 等前缀开头 - 正文不超过 72 个字符 - 重大变更必须写 BREAKING CHANGE以后提交代码时让 AI“使用 commit-style 技能生成提交信息”它就会严格遵守。自定义技能几乎不需要写代码本质上是把你在项目里反复强调的规则变成结构化文档。参数调整方面比较关键的是测试命令配置。superpowers 在 Java 项目里默认执行mvn test如果你的项目用的是 Gradle需要在配置里把测试命令改成./gradlew test否则 tdd 技能会一直找不到正确的测试入口循环卡住。配置一般在插件的配置文件里按注释修改即可。5. 常见问题与排查技巧实录5.1 问题速查表我把自己和社区里碰到的典型问题整理成了一张表方便你直接对照排查问题现象可能原因解决办法安装脚本执行成功但技能目录为空网络中断导致文件拉取不完整重新执行安装脚本网络稳定后重试AI 不响应技能调用插件未启用或版本过旧使用codex plugin list检查状态升级 CLI 后重试技能描述匹配不上任务描述与技能 description 关键词不匹配显式指定技能名称比如“使用 tdd 技能”tdd 流程测试一直红项目使用 Gradle 但默认测试命令是 Maven修改默认测试命令为./gradlew testmemory 内容混乱多个项目共用同一份记忆文件按项目隔离记忆目录定期清理无关内容上下文被技能说明撑爆同时加载太多技能一次只让 AI 使用一个核心技能完成后再切换这张表覆盖了我遇到过的大部分问题。还有一个隐性问题是模型选择如果你用的是很早期的 Codex 版本对长指令的理解能力不足即使加载了技能文件也可能执行不到位。遇到这种情况优先把模型升级到最新版本效果立竿见影。5.2 提升成功率的几条独家经验用 superpowers 三周之后我总结出几条提高成功率的心得。第一不要指望 AI 自己主动调用所有技能。虽然技能库的匹配机制做了优化但在复杂任务里最稳妥的做法是人肉指定。每条指令里都带上技能名比如“用 plan 技能拆任务”“用 tdd 技能写实现”成功率能提高一半以上。第二技能文件不要贪多。我见过有人一次性装了二十多个技能结果 AI 每次光读取技能说明就占用了大把上下文真正写代码的 token 反而不够了。控制在三个核心技能以内量少而精。第三把团队规范写进 memory 技能。Java 项目里最值得让 AI 记住的是“测试框架用 JUnit 5”“Mockito 只用于对外部依赖的模拟”“禁止 System.out 输出日志”。写进去之后AI 生成的代码会自动贴合这些规范代码 review 的通过率高得惊人。第四善用 plan 技能生成的计划文件。这些 Markdown 文件可以直接发给同事评审比在聊天窗口里粘贴一大段对话要清晰得多。我后来甚至把 plan 文件当作简单的项目文档用省了不少写文档的时间。踩过几次坑之后我对 superpowers 的定位有了更准确的理解它不是魔法而是把 AI 从“单次对话执行者”变成“流程执行者”的桥梁。真正重要的不是安装本身而是你有没有把自己的开发工作流说清楚。按照我上面给的流程走一遍在 Java 项目里让 AI 先写测试再写实现跑起来的那一刻你会觉得这个工具确实配得上“superpowers”这个名字。