Superpowers技能集:让Codex CLI告别随机,成为稳定可靠的AI编程搭档
2026/9/15 15:14:39 网站建设 项目流程

1. Superpowers 是什么:它到底解决了什么问题

1.1 先从一次"开盲盒"式的编码体验说起

如果你用过 Codex CLI 或其他 AI 编程代理,大概率经历过这种场景:同一个需求,上午让它写一个函数,思路清晰、测试完备,简直像身边坐了个高级工程师;下午换了个说法再问,它就开始东一榔头西一棒子,先改配置再改接口,最后还把一个本来能跑的模块拆得七零八落。这种"时灵时不灵"的状态,其实是 AI 编程工具目前最大的痛点——模型本身的推理能力不差,差的是缺少一套稳定的工作方法。

我最早接触到 Superpowers 这个项目,就是在被 Codex CLI 的随机性折磨了好几周之后。当时在 GitHub 上闲逛,看到别人分享说有个叫 superpowers 的技能集合,专门给 Codex CLI 这类工具补充"干活的方法论",装完之后 AI 的行为会稳定很多。说实话,最初我是半信半疑的,因为市面上各种"提示词包"太多了,大多数只是把几条指令拼在一起,换个模型就失效。但实际用了两周之后,我得承认:Superpowers 和那些提示词模板完全不是一回事。

1.2 核心设计:SKILL.md 与 Call-and-Response 机制

Superpowers 的本质,是一套以SKILL.md文件为载体的技能集合。每个技能对应一个 Markdown 文件,里面不是简单写"你要怎么做",而是用一套严格的格式,把 AI 在特定任务中的行为路径固定下来。比如 Planning 技能会强制 AI 先拆解需求、列出约束条件、评估风险,然后才允许写代码;Debugging 技能会引导 AI 按照"复现问题—缩小范围—定位根因—修复—验证"这个链路来走,而不是遇到 bug 就靠猜。

这里最值得说的,是它的Call-and-Response(呼叫-响应)机制。这个机制要求 AI 在每个关键节点,都必须用指定格式向用户"汇报"自己的思路和下一步计划,用户确认之后再继续。听起来好像很啰嗦,但实际用起来你就会发现,它本质上是在给 AI 加了一道"刹车"——每次大动作之前,都有机会把方向扳回来。我实测下来,这个机制对那种"闷头改了一堆文件最后跑不起来"的问题,几乎是根治级别的改善。

还有一个容易被忽视的细节:Superpowers 的技能是叠加式的。它不是一个 monolith 式的"超集提示词",而是把规划、编码、测试、调试、审查拆成多个独立技能。你可以只启用其中两三个,也可以全部启用。这种模块化设计,让我可以按项目的实际需要灵活组合,而不是被迫接受一套固定的" AI 工作流"。

1.3 它和普通提示词模板的本质区别

很多人第一次看到 superpowers 的效果,会以为它只是提示词写得更好。但我实际研究过它的文档和源码之后,发现它不是靠几个精心编排的 prompt 来提高模型表现,而是靠改变 AI 工作的"程序结构"。

普通提示词模板,本质上是"一次性指令"——给 AI 一段话,让它在一次生成中完成尽可能多的逻辑。而 Superpowers 更像是在 AI 的工作环境里装了一套"过程协议":每个技能不是让 AI 一次做完,而是把任务拆成有明确验收标准的多个步骤,每个步骤之间需要用户确认。这样一来,即使模型在某一步跑偏了,损失也被控制在一个很小的范围内。

打个比方:普通提示词像是给一个新人一张任务清单,新人可能一口气干到底,错了就全部返工;Superpowers 则像是给新人配了一个带检查点的作业指导书,每完成一小步都要核验一次。后者看起来效率低,实际上总耗时大幅下降,因为大部分返工都被提前扼杀了。这也是我在这篇文章里会反复强调的一点——对于 AI 编程工具,稳定大于速度,可控大于炫技

2. 环境准备与安装:从零到能跑通

2.1 Codex CLI 的安装与基础配置

在安装 Superpowers 之前,你需要先有一个可用的 Codex CLI。Codex CLI 是 OpenAI 推出的命令行 AI 编程代理,跑在终端里,可以直接读取你的项目文件、执行命令、提交改动。安装方式很简单,前提是你本机已经有 Node.js 环境,然后执行:

npm install -g @openai/codex

装完之后,建议先跑一次codex命令完成初始化配置,它会引导你填入 API Key 或登录账号。这一步必须做,否则后面所有技能调用都会卡在认证环节。

基础配置里我建议重点关注两个选项:一是默认模型选择,如果你的账号能访问更强的模型,就在配置里指定,因为 Superpowers 里很多技能对模型的指令跟随能力有一定要求,模型太弱效果会打折扣;二是工作目录的权限设置,Codex 默认只能在当前目录下操作,你可以把常用项目目录加进去,省得每次都要确认权限。

配置好之后,先随便让 Codex 做一个小题,比如"给这个 README 加一段使用说明",确认它能正常读写文件、执行命令。这一步很关键,因为 Superpowers 安装完的技能本质上是一堆 Markdown 文件,Codex 需要能正常读取并遵循它们,所以基础链路通畅是前提。

2.2 通过 Codex CLI 安装 Superpowers 技能

Codex 初始化完之后,安装 Superpowers 就变成了一件很直接的事。Superpowers 项目在 GitHub 上有公开仓库,官方提供了一条安装命令,你只需要在项目目录下执行:

codex install superpowers

如果是首次安装,它会把技能文件拉取到 Codex 的技能目录下,通常是~/.codex/skills/或项目内的.codex/skills/目录。装完之后,你可以用下面的命令确认技能是否注册成功:

codex skills list

正常的话,你会看到一长串技能名字,包括但不限于:Planning(规划)、TDD(测试驱动开发)、Debugging(调试)、Code Review(代码审查)、Refactoring(重构)、Documentation(文档撰写)等。

这里我要多说一句安装路径的问题。Superpowers 既可以全局安装(放在用户目录的 skills 目录下),也可以按项目安装(放在项目自己的.codex/skills/下)。我的建议是:如果你有多个项目都在用,先用全局安装,省得每个项目重复配置;当你确定某个项目需要自定义技能变体时,再把技能复制到项目目录做覆盖。我一开始图省事全用全局,后来发现不同项目的技术栈差别很大,于是把 React 相关的技能固定在了前端项目的局部目录,效果好了不少。

另外,如果你安装的是较新版本,Codex 的配置体系里还有一个codex.toml文件,里面可以声明启用哪些技能。默认情况下,技能装进去之后就会对所有会话生效,但如果你想精细控制,可以在这个配置文件里用星号通配符或逐一列举的方式指定:

[skills] enabled = ["planning", "tdd", "debugging", "code-review"]

2.3 在 Trae 等 AI IDE 中安装技能

Superpowers 并不是 Codex CLI 的专属,很多主流的 AI 编程工具都支持以类似方式加载技能。我目前主力配置里就同时给 Codex CLI 和 Trae 装了不同的技能组合,两者互相补充,实用度很高。

Trae 是字节跳动推出的 AI IDE,它底层的技能机制和 Codex 类似,也是通过 Markdown 格式的技能文件来约束 AI 的行为。安装方式我在实际操作中试过两种,都可行。第一种,在 Trae 的扩展市场里直接搜索 "superpowers",如果网络环境允许,它会自动完成下载安装;第二种,手动把仓库克隆到 Trae 约定的技能目录下,然后在配置里声明启用。

需要注意一点:Trae 的技能目录结构与 Codex 稍有差异,它更习惯把技能放在工作区内,也就是项目根目录的.trae/skills/或用户目录下。如果你是从 Codex 那边复制技能文件过来,最好先确认目录结构是否对应,否则会出现"文件在但技能不生效"的怪问题。

我个人的使用习惯是:终端里的快速改动、脚本编写、仓库级别的维护用 Codex CLI + Superpowers;完整功能的开发、代码浏览、多人协作场景用 Trae + Superpowers。两者共享同一套技能体系的好处是,无论在哪边写代码,AI 的工作方式是一致的,不需要重新适应。

3. 核心技能体系拆解:每个技能到底在干嘛

3.1 Planning:让 AI 先想清楚再动手

Planning 技能是我装上之后最先感知到变化的模块。没装之前,问 Codex"帮我实现一个用户登录功能",它会立刻开始写代码,几个文件刷刷地蹦出来,表面上很爽,实际上经常写到一半发现需求理解偏了,返工成本极高。

装完 Planning 技能后,同样的问题,Codex 会先进入"规划模式":它会先复述一遍它理解的需求,然后分条列出它准备改哪些文件、每个文件大概怎么改、有没有依赖风险、是否涉及数据库迁移等敏感操作。这一串输出完毕之后,它不会立刻动手,而是等我确认。

我刚开始觉得这个流程多此一举,但真正用了一周之后,我发现它带来的最大价值不是"让 AI 想清楚",而是"让我想清楚"。当我看到 AI 列出的实施计划,我会更容易发现自己原本需求描述里的漏洞。比如有次我让它加一个导出功能,它在规划里写道"需要确认导出文件的编码格式",我才想起来确实没考虑过 Excel 打开乱码的问题。这种"被 AI 逼着完善需求"的体验,是普通提示词完全给不了的。

Planning 技能还内置了一个"变更影响评估"的环节。它会在动代码之前,先用工具搜索相关引用,如果发现你的改动会影响其他模块,它会明确提醒。这个功能在改那些老项目的时候特别救急,避免了很多次"改一处炸一片"的惨剧。

3.2 TDD 工作流:测试先行,而不是事后补

Superpowers 里的 TDD 技能,我愿称之为"AI 代码质量救星"。它把测试驱动开发这套人类工程师验证过几十年的方法论,原封不动地移植到了 AI 的工作流程里。

具体工作流是这样的:收到编码需求后,AI 会先分析需求,确定需要什么样的输入输出,然后先写一个(或一批)会失败的测试,用这个测试来锁定期望行为;接着才开始写实现代码,每写一点就跑一次测试;等测试通过之后,再做一轮小重构,确保代码结构干净。整个过程是红-绿-重构(Red-Green-Refactor)的循环。

可能有人会说:"让 AI 先写测试,不就是多写一遍代码吗?"实际体验下来,价值非常大。一方面,测试先行的写法逼着 AI 把需求转化成可验证的标准,减少了"我以为写对了"的情况;另一方面,这轮测试用例会留在项目里,成为后续改动的回归保护网。有一次,Codex 在加了新功能之后,把之前一个接口的行为改了,如果是以前,这个 bug 可能到我手动测试才发现;但那次因为有前面生成的测试,它在改完的瞬间就发现测试挂了,自己就回退了改动。

需要提醒的是,TDD 技能对项目的基础设施有一定要求。如果你的项目连最基础的测试框架都没有,AI 还得先花一些步骤去搭测试环境。所以我的经验是,最好在项目早期就引入这个技能,越早越划算。

3.3 Debugging 流程:治好"瞎猜式修 bug"

我之前用 AI 修 bug 最大的感受是:它特别喜欢瞎猜。问它"这个接口为什么返回 500",它能直接根据错误信息开始改代码,完全不看日志、不复现请求。运气好时能蒙对,运气差时越改越乱,最后代码状态比 bug 之前还糟糕。

Superpowers 的 Debugging 技能把这一套流程彻底改变了。它遵循一个严格的链条:先要求用户提供完整的错误信息,然后主动分析日志,再尝试复现问题;复现成功之后,它会缩小排查范围——可能是定位到某个函数、某个请求参数,甚至是某一行代码——然后才提出修复方案。每一步都有明确的输出格式和确认节点。

我印象最深的一次,是在调试一个并发问题。之前直接让 AI 修,它上来就给我改锁的粒度,结果问题没解决还引入了死锁风险。用了 Debugging 技能之后,它先花时间写了个并发测试脚本来复现问题,然后通过打印线程时间线,发现问题是共享的可变状态在没有保护的条件下被并发读写。它给出的修复方案不仅在代码层加了保护,还建议调整缓存策略,从根源上消除了竞争条件。这次经历让我彻底相信:AI 调试能力的天花板,不取决于模型智商,而取决于调试方法的严谨度

3.4 Code Review 与重构:让代码质量"可传承"

Code Review 技能在多人协作项目里特别有用。它不满足于"这段代码有没有 bug",而是会按几个维度去审:可读性、可维护性、安全性、性能隐患、测试覆盖度。每次审查完,它会产出一份结构化的评论清单,每条都标注了严重等级和修改建议。

我一般是让 Codex 在我提交 PR 之前先做一轮内部评审,很多低级问题(比如日志里打出了敏感信息、忘记处理空指针、命名可疑)它都能提前揪出来。有一次它在审查里提示我某段 SQL 查询没有加索引限制,在大数据量下会全表扫描。这种问题我自己 review 两遍都不一定能发现,AI 却能一步到位。

重构技能则是配合 TDD 使用的。它的特点是"小步重构":每次只做一种类型的变化,比如重命名变量、提取函数、消除重复代码,每做一步都会要求测试保持绿色。这种保守的重构方式,让我那些遗留项目的代码质量能稳步提升,而不用承担"大规模重写"的风险。

4. 实操:用一个真实需求走通完整工作流

4.1 输入需求与角色设定

为了让你更直观地理解 Superpowers 的实际效果,我用一个具体的小需求来演示完整流程。这个需求是:给一个 Node.js 的待办事项命令行工具,增加"按优先级排序展示"的功能,优先级分为高、中、低三档。

有了 Superpowers 之后,我不会再用大白话直接问 Codex 要代码,而是先让它按照技能体系里的规范来拆解任务。在 Codex CLI 里,我输入了这样一段话:

请使用 Planning 和 TDD 技能,为这个项目实现"按优先级排序展示待办事项"的功能。优先级字段存储在 todo 对象的 priority 属性中,排序要求为:高 > 中 > 低。请先制定计划。

注意我明确指定了要使用的技能,这是 Superpowers 的一个使用技巧——它在技能之间设计了明确的边界,要求用户在合适的时候主动触发,而不是被动地等模型自己去选。这个细节很关键。

4.2 从计划到 TDD 的完整会话

输入完需求之后,Codex 进入了 Planning 模式。它首先复述了需求理解,列出了三个关键点:排序规则、字段缺失时的处理、以及 CLI 输出的格式。然后它给出了实施计划:

1. 修改 src/todo.js,新增 sortTodosByPriority 函数; 2. 在 list 命令中调用该函数,替换原有的按创建时间排序逻辑; 3. 编写单元测试,覆盖正常排序、空列表、缺失 priority 字段三种场景; 4. 更新 README 中的功能说明。

我确认了计划,它才进入 TDD 阶段。它先创建了一个测试文件test/todo.test.js,里面包含三个用例:

test('按优先级排序:高 > 中 > 低', () => { const todos = [ { id: 1, text: '低优先级任务', priority: '低' }, { id: 2, text: '高优先级任务', priority: '高' }, { id: 3, text: '中优先级任务', priority: '中' }, ]; const sorted = sortTodosByPriority(todos); expect(sorted.map(t => t.priority)).toEqual(['高', '中', '低']); }); test('空列表返回空数组', () => { expect(sortTodosByPriority([])).toEqual([]); }); test('缺失 priority 字段时视为低优先级', () => { const todos = [{ id: 1, text: '无优先级任务' }]; const sorted = sortTodosByPriority(todos); expect(sorted[0].priority).toBe('低'); });

写完好,它跑了一次测试,确认三个用例全部失败(红)。然后才开始写实现代码。有意思的是,第一个版本的实现里,它对"缺失 priority 字段"的处理有点问题——直接用了undefined参与比较,导致排序不稳定。因为测试用例提前锁定了期望行为,它跑测试的时候就发现第三个用例挂了,于是自己修正了实现,把它改成对priority做归一化处理:(todo.priority || '低')。整个过程几乎没有我介入,测试用例就变成了"验收标准",AI 自己对着标准改到通过为止。

4.3 会话收尾与代码审查

测试全部变绿之后,Codex 并没有急着宣布"完成了",而是主动进入了 Code Review 模式。它自己审查了自己刚写的代码,产出了几条评论,其中一条建议把排序比重抽取成常量,避免将来优先级档位变化时到处找魔法字符串。还有一条是建议在list命令中增加--sort-by选项,以便用户可以在"创建时间"和"优先级"之间切换。

这两条建议它都没有自动执行,而是列在审查清单里询问我是否采纳。我采纳了第一条,拒绝了第二条(因为用户没有这个需求,YAGNI 原则)。这种"提建议但不擅自扩大范围"的设计,让我对它的印象分高了不少——很多 AI 编程工具特别喜欢自作主张加功能,Superpowers 的流程约束很好地规避了这个问题。

整个流程走完之后,我再自己手动验证了一遍:运行测试、手动添加几条不同优先级的待办事项、执行list命令看输出。一遍通过,没有返工。对比以前直接问 AI 要代码的体验,这个流程多花了几分钟的"确认时间",但省去了至少半小时的调试和改 bug 时间。

5. 常见问题与排查技巧实录

5.1 技能装了但好像没生效

我自己遇到最多的问题,就是技能文件明明装好了,但 Codex 在会话里完全没表现出技能的约束。这种情况别急着骂工具,先按下面几个方向排查:

第一步,确认技能确实被系统加载了。用codex skills list查看,如果列表里能看到技能名,说明文件位置没问题;如果看不到,多半是安装路径不对,检查一下是否存在全局目录和项目目录的覆盖冲突。

第二步,检查模型和 API 版本。有些旧版本的 Codex CLI 对技能支持不完整,建议升级到最新版本。我踩过一次坑:技能文件是最新的,但 CLI 还是半年前的版本,结果很多新语法和指令格式它根本不认,表现就是"技能像没装一样"。

第三步,检查需求描述方式。如果你在对话里直接说"帮我做某件事",模型可能会绕开 Planning 技能直接回答,导致你觉得技能没生效。建议带上技能触发的关键词,比如"使用 Planning 技能""按照 TDD 流程"。这不是说模型不聪明,而是技能的触发机制本身就需要用户在关键节点主动指定,这是设计的一部分。

5.2 模型跑偏或擅自扩大改动范围

Superpowers 本身已经在流程上做了很强的约束,但模型毕竟不是程序,偶尔还是会跑偏。最常见的是:计划里明明只列了三个文件,它写着写着突然开始改第四个、第五个文件,或者擅自把依赖升级了。

遇到这种情况,我的处理方法是立即在会话里使用"刹车指令",明确告诉它"停止当前操作,回到计划中的第 2 步,不要修改未在计划中列出的文件"。Superpowers 的机制在这里帮了大忙:因为计划是明文的、分步骤的,你可以精准地指出它跑到了哪个节点之外,模型能准确理解并回退。如果是没有技能约束的裸 Codex,你连"回到哪一步"都说不清楚。

这里还有一个技巧:在生产项目里,建议在让 AI 干活之前,先把 git 当前状态提交或 stash,保证工作区干净。这样即使 AI 跑偏,你也能用git checkout .快速回退所有改动,不用担心它改了计划外文件——直接丢弃就行了。

5.3 不同工具之间的技能配置差异

我用 Codex CLI 和 Trae 同时跑 Superpowers 的时候,发现两个工具在技能行为上还是有可感知的差异。Codex CLI 更偏"终端工具",它的技能执行更加程序化,每个步骤之间等待用户确认,节奏比较慢但可控性极强。Trae 作为 IDE,它的执行更加流畅,很多步骤会连续执行,不太频繁打断用户,整体体验更顺滑,但相对的,中途纠偏的机会变少了。

我的建议是:根据任务类型选择工具。如果是重逻辑、多步骤、风险高的任务(比如数据库迁移、重构核心模块),用 Codex CLI + Superpowers,严格流程更安心;如果是 UI 调整、简单功能迭代,用 Trae + Superpowers,效率更高。两者共用同一套技能文件的好处是,工作流一致性有保障,你不需要因为切换工具而重新学习一套方法。

另外要注意,技能文件如果从 Codex 目录复制到 Trae 目录,最好用仓库里最新的 release 版本,不要用本地已经被你改过的版本,因为有些本地修改是针对 CLI 行为的,到了 IDE 环境可能水土不服。我在初期踩过这个坑,复制了一个改过的技能文件过去,结果 Trae 里 AI 的行为变得很奇怪,排查了半天才想到是这个原因。

5.4 关于模型选择的一点观察

最后分享一个我测试了多种模型之后的主观结论:Superpowers 这种"强流程 + 结构化输出"的设计,对不同模型的"容错率"差异还挺大的。指令跟随能力强的模型,套上流程之后表现是"如虎添翼",输出稳定、计划合理;指令跟随弱的模型,套上流程之后虽然也会有改善,但偶尔会在关键节点漏掉步骤,导致流程断裂,你需要手动提醒它。

所以如果你在某个模型下体验不佳,先别急着卸载 Superpowers,优先尝试更换更强的模型。就我实测来看,性能越靠前的模型,和 Superpowers 搭配的收益越明显。这也是为什么官方文档里在安装步骤之前,专门花篇幅讲模型配置——流程协议再好,也需要一个能"听懂指令并严格执行"的底座。

我个人在实际操作中的体会是:Superpowers 这类项目的出现,标志着 AI 编程工具正在从"会写代码的聊天机器人"进化成"有职业素养的结对程序员"。它不一定能让 AI 变得"更聪明",但它能让 AI 的能力发挥得更稳定、更可控。如果你也在为 AI 编程的不确定性头疼,不妨花半小时装上它,用一个真实需求走一遍完整流程,你可能会和我一样,第一次感觉到"AI 终于像个靠谱的同事了"。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询