让 AI 写代码前先”想想“,Superpowers 这个神器做到了

1. 写在前面的
最近购买了火山引擎的 codeplan,但是正在做的项目没用多少,token 没有被“极限压榨”。正好最近发现了 Superpowers 这个非常实用的 skill,于是借这个机会验证一下它的实战效果。本次使用 Superpowers 实战开发一款儿时经典的游戏:坦克大战。使用的编程语言是 Python,看看它能做到什么程度。
2. Superpowers 是什么
在开始实战之前,先简单介绍一下 Superpowers。
Superpowers 是一个面向编程智能体(Coding Agent)的开发方法论框架,由开源大佬 Jesse Vincent(Obra)创建,目前在 GitHub 上已有不小的影响力。它的核心理念很简单:让 AI 写代码之前,先学会"想清楚再动手"。
我们平时让 AI 写代码,最常见的问题就是:你说一句,它写一段,写完发现方向不对,又推倒重来。效率低不说,代码质量也堪忧。Superpowers 就是来解决这个问题的——它把软件开发的最佳实践封装成一个个"技能"(Skill),让 AI 在执行任务时自动遵循这些流程。
Superpowers 目前包含 15 个技能,分为四大类:
| 类别 | 技能 | 作用 |
|---|---|---|
| 测试类 | test-driven-development | 红绿重构循环,强制先写测试再写代码 |
| 调试类 | systematic-debugging | 4 阶段根因分析,先找原因再修 Bug |
| verification-before-completion | 确保修复真正生效,不报假喜 | |
| 协作类 | brainstorming | 苏格拉底式提问,先细化需求再动手 |
| writing-plans | 将工作分解为 2-5 分钟的细粒度任务 | |
| executing-plans | 批量执行加检查点 | |
| subagent-driven-development | 子代理快速迭代 + 双阶段审查 | |
| dispatching-parallel-agents | 并发子代理工作流 | |
| requesting-code-review | 代码审查前检查清单 | |
| receiving-code-review | 响应审查反馈 | |
| using-git-worktrees | 并行开发分支管理 | |
| finishing-a-development-branch | 合并/PR 决策工作流 | |
| 元技能类 | writing-skills | 创建新技能的最佳实践 |
| using-superpowers | 技能系统入门引导 |
看起来有点多?没关系,你不需要一个个去记。Superpowers 的核心工作流其实就三个字:想、拆、做。
- 想:收到需求后,先通过 brainstorming 细化需求,明确要做什么
- 拆:把需求拆解为详细的实施计划,每个任务控制在 2-5 分钟
- 做:按计划执行,过程中遵循 TDD,完成后做代码审查
这套流程,其实就是一个有经验的程序员的工作方式。Superpowers 做的事情,就是把这种工作方式"教"给 AI。
3. 开始
3.1. 安装 Superpowers
安装 Superpowers 很简单,在 Claude Code 中执行以下命令即可:
/install-github-skill obra/superpowers

安装完成后,Superpowers 的技能会被自动注册到你的 Claude Code 环境中。之后每次启动 Claude Code,using-superpowers 这个引导技能会自动激活,确保 AI 在执行任务时优先使用 Superpowers 的工作流。
你也可以手动安装,从 GitHub 仓库 clone 下来后,把技能文件复制到 ~/.claude/skills/ 目录:
git clone https://github.com/obra/superpowers.git /tmp/superpowers
cp -r /tmp/superpowers/skills/* ~/.claude/skills/
提示:Superpowers 不仅支持 Claude Code,还支持 Gemini CLI、Codex CLI、Cursor 等主流编程智能体平台,安装方式略有不同,具体可以参考项目 GitHub 仓库 的 README。
3.2. 实战:用 Superpowers 开发坦克大战
好,现在 Superpowers 装好了,让我们进入正题——开发一款经典游戏:坦克大战。
第一步:头脑风暴(Brainstorming)
安装了 Superpowers 之后,我先是和小米 Mimo 对话告知我的需求,并让它给我写了一份初步的需求文档。然后我把文档复制到项目下,告诉 Claude Code “使用 Superpowers 帮我用 Python 开发一个坦克大战游戏”,并参考初步需求文档时,它并没有直接开始写代码,而是先触发了 brainstorming 技能,通过一系列提问来细化需求:
比方说,它为我们提供了3套架构方案,给出推荐方案,并说明了不同方案之间的优势与不足。最妙的是它是通过一个浏览器的方式直观地展现在我们眼前。

这就是 Superpowers 的厉害之处——它不会让你一上来就写代码,而是先把需求想清楚。以前我让 AI 写代码,经常是写完了一半才发现方向不对,又要推倒重来。有了 brainstorming 这一步,至少方向不会偏。
再比方说,它会帮我设计游戏的布局并同我确认,同样用浏览器的方式展现。当我发现游戏布局不正确的时候,不会迭代方案直至完全正确,符合我们的开放要求。

最后,基于自己和 Ai 的交互,Superpowers 完成了一份详细的设计文档,并和我进行确认。这个确认过程是反复的,直到完成最终的设计文档。

第二步:制定计划(Writing Plans)
需求确认后,Claude 触发了Superpowers 的 writing-plans 技能,为整个开发工作编制实施计划:

并将实施计划拆解为细粒度的任务清单,每个任务都控制在 2-5 分钟的粒度,这确保了每一步都是可验证的。做完一个任务,验证通过,再进入下一个。这种"小步快跑"的方式,比一口气写完再调试要高效得多。

最后它询问我采用子代理驱动方式,还是内联执行方式编写代码。
- 子代理模式是为每个Task派发一个独立子代理执行,任务间审核,快速迭代,也是 Superpowers 推荐采用的执行方式。
- 内联执行是在当前会话中逐步执行,批量执行带检查点,速度较慢,不推荐。
第三步:逐步执行(Executing Plans)
计划制定好后,Claude 开始按计划使用子代理并行执行。这里我挑几个关键节点来展示整个过程。
搭建基础框架
Claude 先创建了项目结构和 Pygame 窗口,跑通了游戏主循环。这一步很顺利,几分钟后就有了一个黑色的窗口在运行。
实现地图与障碍物
这一步 Claude 定义了经典的地图数据结构,用二维数组表示不同的地形元素:
# 地图元素类型
EMPTY = 0
BRICK = 1 # 砖墙 - 可被子弹摧毁
STEEL = 2 # 钢墙 - 不可摧毁
WATER = 3 # 水域 - 不可通过
GRASS = 4 # 草地 - 可通过,遮挡视线
BASE = 5 # 基地 - 被摧毁则游戏结束
然后实现了每种地形的渲染,砖墙是棕色方块,钢墙是银色方块,水域是蓝色区域,草地是绿色区域。看到经典地图一点点在屏幕上重现,那一刻还是很激动的。
玩家坦克控制
这一步实现了玩家坦克的 WASD/方向键移动和空格键射击。坦克的移动是网格对齐的(还原经典风格),每次移动一个格子。子弹发射后有飞行轨迹和碰撞检测。
敌方坦克 AI
敌方坦克的 AI 相对简单——随机方向移动,定时射击。虽然不够智能,但作为第一版已经够用了。后续可以升级为追踪玩家的 AI。
基地保护与游戏逻辑
最后实现了基地保护机制:如果敌方子弹击中基地(老鹰图标),游戏结束。同时实现了计分和关卡系统,每消灭一波敌方坦克后进入下一关,难度递增。
第四步:代码审查(Code Review)
每个阶段完成后,Superpowers 会自动触发 requesting-code-review 技能,对已完成的代码进行审查。审查内容包括:
- 代码是否符合设计规格
- 是否有潜在的 Bug
- 是否有性能问题
- 代码风格是否一致
在实际开发过程中,Claude 发现了几个问题并自行修复:
- 碰撞检测边界问题:坦克在地图边缘时碰撞检测不完整,导致坦克可以"穿墙"
- 子弹内存泄漏:飞出屏幕的子弹没有被及时清除,长时间运行后会导致性能下降
- 敌方坦克生成重叠:多个敌方坦克可能生成在同一位置,互相卡住
这些问题如果没有代码审查这一步,很可能要等到后期测试时才会发现,到时候修复成本就高了。
3.3. 最终效果
经过大约 2 小时的开发,一个可玩的坦克大战游戏就完成了。虽然和经典 FC 版本相比还有很多差距(比如AI 比较简单、画面还不够精致),但核心玩法已经完整:
- ✅ 玩家坦克移动和射击
- ✅ 4 种障碍物(砖墙/钢墙/水域/草地)
- ✅ 敌方坦克 AI(随机移动 + 定时射击)
- ✅ 基地保护机制
- ✅ 道具系统,包括雷、基地钢墙、子弹升级等。
- ✅ 关卡系统
- ✅ 游戏结束/胜利判定

整个开发过程中,我基本只需要回答问题和确认方向,具体的编码、调试、审查都是 Claude + Superpowers 自主完成的。这让我深刻体会到了"饱和式使用"codeplan 的感觉——AI 在干活,我在旁边看着。
4. Superpowers 的核心价值
经过这次实战,我对 Superpowers 有了更深的认识。总结一下它的核心价值:
4.1. 强制"想清楚再动手"
这是 Superpowers 最大的价值。以前让 AI 写代码,最大的问题就是:它太急了。你说一句,它就写一段,写完发现方向不对又重来。有了 brainstorming → writing-plans → executing-plans 这套流程,AI 会在动手之前把需求、设计、计划都理清楚,大大减少返工的概率。
4.2. 小步快跑,每步可验证
Superpowers 把任务拆解为 2-5 分钟的细粒度,每完成一个任务就可以验证。这比一口气写完再调试要安全得多——如果某个任务出了问题,你只需要回退一步,而不是推翻整个项目。
4.3. 自动代码审查
代码审查这个环节很容易被忽略,尤其是个人项目。Superpowers 在每个阶段完成后自动触发审查,确保代码质量。这次实战中就发现了 3 个潜在问题,都是审查环节捕获的。
4.4. TDD 思维
虽然这次实战中我没有严格走 TDD 流程(毕竟游戏开发的测试不太好写),但 Superpowers 的 test-driven-development 技能一直在提醒:先写测试,再写代码。对于业务逻辑比较明确的项目(比如 API 开发、数据处理),TDD 的价值会更大。
5. 局限性与建议
当然,Superpowers 也不是万能的,这次实战中我也发现了一些局限:
1. 流程开销
对于很简单的任务(比如改个配置、修个简单的 Bug),Superpowers 的 brainstorming → planning 流程反而显得有些冗余。你可能只是想让它改一行代码,它却要先问你三个问题。建议:简单任务可以直接说明"不需要 brainstorming",跳过流程。
2. 游戏开发的 TDD 不太适配
游戏开发中很多逻辑是视觉和交互相关的,不容易写单元测试。Superpowers 的 TDD 技能在这种场景下有些力不从心。建议:游戏开发可以弱化 TDD,重点放在代码审查和手动测试上。
3. 对话上下文会变长
因为 Superpowers 会在每个阶段输出设计文档、计划、审查结果等,对话上下文会变得很长。如果你的 token 预算有限,需要注意控制。建议:定期用 clear 清理上下文,或者把重要的中间产出保存到文件中。
4. 依赖 Claude Code 的能力
Superpowers 本质上是一套方法论,它的效果取决于底层 AI 的编码能力。如果 AI 本身写不好代码,再好的方法论也救不了。建议:搭配 Claude Sonnet/Opus 等强模型使用,效果最佳。
6. 写在最后
这次用 Superpowers 实战开发坦克大战,整体体验是:省心。
以前让 AI 写代码,我需要盯着它,随时纠正方向,生怕它写偏了。有了 Superpowers,流程变成了:我提需求 → 它问问题 → 我回答 → 它出计划 → 我确认 → 它执行 → 它审查 → 我验收。我只需要在关键节点做决策,其他时间 AI 自己就能搞定。
如果你也在用 Claude Code(或者其他编程智能体),我强烈建议试试 Superpowers。它不会让 AI 变得更聪明,但会让 AI 变得更靠谱——而靠谱,比聪明更重要。
🔗 相关链接
- Superpowers GitHub:https://github.com/obra/superpowers
- Superpowers 官方博客:https://blog.fsck.com/2025/10/09/superpowers/
- Superpowers Discord:https://discord.gg/35wsABTejz
(本文首发于微信公众号:字节客栈,未经授权,请勿转载。如需项目完整代码,请关注公众号并回复坦克大战。)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)