Superpowers Skills:Vibe Coding 时代的软件开发圣经
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | 五道口纳什 |
| 日期 | 2025 |

引言:Vibe Coding 时代的质量困境
在 AI 辅助编程(Vibe Coding)快速普及的今天,开发者面临一个核心问题:如何在使用 Codex、Claude Code 等纯自然语言编程工具时,依然保证代码的准确性与可维护性。本期围绕开源项目 Superpowers(GitHub Star 7 万+)这一组高质量 Skills,系统性地回答这一问题。
Vibe Coding 的工具光谱
讲者将当前 AI 编程工具分为三个层级:
- VS Code(无 AI 插件):纯粹的代码编辑器 / IDE。
- Cursor:带有 Tab 模型(大规模 on-policy RL 训练)的轻量级 AI 辅助,支持对话式开发与 diff GUI。
- Codex / Claude Code:纯自然语言编程 CLI,无 IDE,只需描述需求并验证输出。
传统方法中,代码质量通过 TDD(测试驱动开发)、Code Review、Pre-commit Hook(如 Ruff 静态检查)等流程来保障。在 Vibe Coding 时代,Superpowers 将这些顶级软件工程实践"硬编码"为 AI Coding Agent 的规范操作系统——通过 Skill 指令而非 Hook 脚本,强制 Agent 克服大模型常见的幻觉、懒惰和讨好倾向。
核心理念:"慢其实快"
不加任何 Skill、不加任何约束,模型可能很快就产出代码,但代码不准、不可维护。有了 Superpowers 的约束后,虽然每一步都更慎重,但代码质量有保障,长期迭代效率更高——这就是"慢其实快"。
Skills 的加载机制
Codex 中的 System Prompt 架构
Codex 在用户发出第一条请求之前,已经植入了四条系统消息:
- System 级提示:系统级约束。
- Developer 消息:权限与沙箱规则。
- User 消息(注入):包含
agents.md和所有可用 Skills 的描述——这是 Skills 的第一次暴露。 - Developer 消息:定义协作模式(Plan mode / Agent mode)。
Skill 的匹配与加载流程
- 用户发出真实请求。
- Coding Agent 基于 query 匹配最合适的 Skill。
- Agent 调用
execute_commands工具,执行cat命令加载对应skill.md的全文。 - Skill 内容进入上下文,后续所有交互均基于该 Skill 的描述执行。
- 一个 turn 结束后,用户可继续迭代需求。
agents.md 的两级来源
- 系统级:
\ {}/.codex/agents.md(全局配置)。 - 项目级:代码仓库根目录下的
agents.md(项目专属指令)。
两者都会被注入到第三条 User 消息中。
安装与更新
- Claude Code 通过 plugin 机制安装 Superpowers。
- Codex 通过自然语言让 Agent 自行安装。
- 更新方式:进入 Superpowers 目录执行
git pull,下次开启新会话即自动加载。 - 当前版本支持自主发现:输入
/skills可列出所有可用 Skill。
本章小结
Skills 通过 Prompt Injection 的方式,在 Codex 的第三条 User 消息中暴露目录;Agent 根据用户 query 动态匹配并用 cat 命令加载具体的 skill.md,从而将软件工程流程注入模型上下文。
总控 Skill:Using Superpowers
总控流程
Using Superpowers 是第一个被触发的 Skill("use when starting any conversation")。它定义了整体开发链路:
- Brainstorming(头脑风暴):与用户多轮对话确认修改边界。
- Writing Plans(写实施计划):将设计转化为可执行步骤。
- Development(开发):以 TDD 方式先写测试再写实现。
- Verification(验证):完成前真实运行命令检查结果。
Skill.md 中的强制触发指令
Superpowers 的 skill.md 中包含用 XML 标签包裹的强制指令:"极度重要——如果你认为有 1% 的机会可以使用某个 Skill,一定要触发它。"
流程的形式化定义
Skill 内部使用 Dot 语言(Graphviz)定义流程图——用形式化代码语言描述 SOP,使语言模型更易消化理解。流程中还要求 Agent 宣称(declare)自己正在使用什么 Skill、出于什么目的,并定义一组 Checklist 检查是否完成要求。
本章小结
Using Superpowers 是 Agent 的"操作系统入口",通过 Dot 语言定义的有向图来约束 Agent 行为,并通过宣称机制和 Checklist 确保每一步都有迹可查。
Brainstorming(头脑风暴)
目标与原则
Brainstorming 解决的是 What & Why——"我们要建什么、为什么这样建"。
- 一次只问一个确认性问题。
- 理解用户的真实意图(Purpose)、约束和成功准则。
- 先探索上下文,提出 2--3 个方案,分析各自的 Trade-off。
- 用户确认后,形成并保存 Design Doc(
docs/plans/<date>-<topic>-design.md)。
头脑风暴阶段的禁令
在 Brainstorming 阶段,禁止调用任何实现工具、禁止写任何代码。此阶段的产出物纯粹是概念与决策文档,侧重宏观架构、数据流向、组件交互、异常处理。
流程步骤
- 探索项目上下文。
- 向用户提出确认性问题,明确问题边界。
- 提出 2--3 个解决方案,分析 Trade-off。
- 呈现 Design Section,等待用户批准。
- 用户批准后,自动调用
Writing PlansSkill。
本章小结
头脑风暴是需求澄清的必经阶段,产出 Design Doc,为后续实施计划提供架构基础。其核心纪律是"只设计不编码"。
Writing Plans(实施计划)
目标与原则
Writing Plans 解决的是 How——"如何实现"。它将宏观设计转化为零上下文可执行的细粒度步骤。
三大准则
- DRY(Don't Repeat Yourself):避免写重复代码和重复逻辑。
- YAGNI(You Aren't Gonna Need It):不做"可能以后用得上"的功能。
- TDD:先写测试再写实现,频繁提交、小步迭代。
产出物:Plan.md
计划文档(Plan.md)包含极其具体的细节:
- 要创建哪个确切路径的文件。
- 要修改哪几行。
- 要写什么样的失败测试。
- 要运行什么确切的命令来验证。
消除上下文依赖
计划的编写标准是:假设最终写代码的工程师(或另一个 Subagent)对项目一无所知,仅凭此计划即可完成开发。因此可以另开一个会话,让 Codex / Claude Code / 人类工程师直接执行。
计划完成后的选择
计划写完后不写代码,而是询问用户:
- 在当前会话中渐进式执行(Sequential Development)。
- 开新会话批量执行(Parallel Agents)。
本章小结
Writing Plans 将架构设计"翻译"为任何人/Agent 都能执行的微观步骤清单,是从"想"到"做"的关键桥梁。
TDD:红绿重构
三阶段纪律
红-绿-重构
- 红(Red):先写一个会失败的测试——因为功能尚未实现,测试必然报错。
- 绿(Green):写最少量的代码使测试通过。
- 重构(Refactor):在保持绿色的前提下优化代码结构。
为什么必须"亲眼看着测试失败"?
事后测试证明不了任何事情
- 写完测试后必须运行,并看到预期的报错。
- 如果测试直接通过,说明测的东西是错的,或测的是已经存在的行为。
- 先写代码再补测试,往往只会测试"代码现在的行为",而不是"代码应该的行为"——这就是技术债务的来源。
验证前必须有证据
在宣称完成或测试通过前,必须真实运行命令/工具并检查输出——大量使用断言(assert),对结果有明确预期。
本章小结
TDD 的核心纪律是"先红后绿再重构",强制 Agent 在每一步都用真实的测试结果作为证据,杜绝"假装完成"。
执行模式
Sequential Development(渐进式开发)
在当前会话中按计划逐步执行:每完成一个 task,实施\(\rightarrow\)验证\(\rightarrow\)Code Review,再进入下一个。适用于需要人类步步把关的复杂高风险任务。
Parallel Agents(并发 Subagent)
当计划中的任务彼此独立时,为每个任务派发新的 Subagent 并发执行。完成后进行双重机器审查(规范 + 质量)。
Worktree 隔离
使用 Git Worktree 隔离当前分支,在单个计划执行中强调"实现\(\rightarrow\)规范\(\rightarrow\)Review 代码质量"的顺序。
本章小结
Superpowers 提供了从单线程渐进到多 Agent 并发的多种执行模式,灵活适配不同复杂度的开发场景。
Systematic Debugging(系统化调试)
四阶段流程
遇到 Bug 或测试失败时触发,禁止盲目猜测或试错式修复:
- 根因调查(Root Cause Analysis):找到真正的原因。
- 模式分析(Pattern Analysis):识别重复出现的问题模式。
- 提出假设(Hypothesis):基于证据提出修复方案。
- 最小化实现与验证(Minimal Fix & Verify)。
三次循环未解决则架构有问题
如果上述四阶段循环了三次仍无法解决,说明可能存在架构层面的问题,需要回到 Brainstorming 重新审视设计。
完成前验证 Skill
AI 喜欢"假装完成"或过度自信。此 Skill 要求:在宣布任务完成、测试通过、准备提交之前,必须真实运行验证命令,并根据实际输出来宣称完成。
本章小结
系统化调试用四阶段闭环替代"拍脑袋式"修复,三次未果则升级为架构问题,避免在错误方向上越陷越深。
Code Review 体系
Review 的时机与原则
Review Early, Review Often
- 不是在合并主分支前才审查,而是每个细粒度子任务完成后都必须强制触发审查。
- 防止设计错误"污染"下一个任务。
- Code Review 的输入:用户原始需求/计划 + Git Diff。
请求 Code Review 的 Checklist
- 代码质量:关注点分离、解耦、错误处理、重复代码、边界 Case 覆盖。
- 架构:设计角色是否合理、可扩展性、性能影响、安全隐患。
- 测试:是否测了真实逻辑(而非只是 Mock)、边界覆盖率、集成测试。
- 需求:是否满足计划的所有要求、无功能蔓延、达到生产级完成度。
行为红线
- 严禁不看代码就说"看起来不错"。
- 严禁将次要问题标为致命错误。
- 严禁含糊其词——必须给出最终结论。
接收 Code Review 的准则
Code Review 的本质是基于客观代码的技术评估,而非社交表现:
- 追求技术严谨性:决策基于事实、测试结果、系统架构现状,而非直觉或权威。
- 拒绝表演性同意:不在未验证技术可行性的前提下盲目同意 Reviewer 建议。
- YAGNI 原则:若 Reviewer 建议添加当前系统根本没有调用的功能,应拒绝。
- 验证先于执行:收到反馈后第一步是去代码库中验证,而非立即修改。
- 有理有据的技术反驳(Push Back):发现 Reviewer 建议有误时,使用技术推理反驳——反驳不是为了争吵,而是为了保护代码库。
消除模糊性
如果 Reviewer 提了 6 点意见,其中 2 点描述不清,严禁先做懂的 4 点、把不懂的 2 点留到最后。必须立刻停下来,先询问清楚所有细节——因为软件模块之间高度耦合,部分理解会导致错误的实现方向,返工成本极高。
行动胜于雄辩
当 Reviewer 意见正确时,严禁使用感激或赞美的废话。正确做法是直接修复并简短陈述事实。高效工程文化中,代码本身就是最好的回应。
SOLID 与关注点分离
Code Review 中涉及的架构设计模式:
- 单一职责原则(SRP):避免一个类/文件承担所有事情,必须解耦。
- 开闭原则(OCP):对扩展开放、对修改关闭。
- 里氏替换原则(LSP):子类可替换父类。
- 接口隔离原则(ISP):接口应细粒度。
- 依赖倒置原则(DIP):依赖抽象而非具体实现。
关注点分离是宏观架构哲学:将软件划分为具有不同职责的独立模块,每个模块只解决一个特定的关注点。
本章小结
Code Review 体系包含"请求审查"和"接收审查"两个 Skill,通过 Checklist 和行为红线确保审查的技术严谨性,同时用 SOLID 原则和关注点分离指导架构评估。
代码复用与 DRY
在 Vibe Coding 场景下,模型受限于 Context Window,容易只看部分代码就开始修改,导致工具函数(Utils)出现大量冗余和重复代码。
Superpowers 在 Writing Plans 和 Code Review 中反复强调:
- DRY(Don't Repeat Yourself):杜绝重复代码。
- YAGNI(You Aren't Gonna Need It):坚决杜绝过度设计和过度抽象。
此外,Superpowers 还提供了 Writing Skills 这一 Skill,强调将解决问题的过程提炼为可复用的模式,而非一次性脚本。
本章小结
DRY 与 YAGNI 是 Superpowers 贯穿始终的两大原则,前者防止冗余,后者防止过度工程化,两者构成代码质量的动态平衡。
如何编写好的 Skills
讲者总结了编写高质量 Skills 的要素:
- 足够抽象:Skills 必须是通用的(Common)、有原则的(Principled)、可复用的。
- 形式化描述:使用非常 Formal 的、逻辑性的描述语言(如 Dot 语言流程图)。
- 专家经验沉淀:一定是资深软件开发人员的实践凝练。
- Writing 能力:需要良好的技术写作能力,但可以借助语言模型辅助润色。
本章小结
好的 Skill 是"专家经验 + 形式化表达"的结晶,既要有深度的工程理解,又要有让模型易于执行的结构化描述。
总结与延伸
本期以 Superpowers 项目为核心,系统讲解了 Vibe Coding 时代如何"驾驭"(Harness)AI Coding Agent,使其写出"又对又好又准"的代码。核心要点回顾:
- Skills 加载机制:通过 Prompt Injection 在 Codex 系统消息中暴露 Skill 目录,Agent 动态匹配并加载。
- 总控流程:Using Superpowers \(\rightarrow\) Brainstorming \(\rightarrow\) Writing Plans \(\rightarrow\) TDD Development \(\rightarrow\) Verification。
- TDD 纪律:红-绿-重构三阶段,"亲眼看着测试失败"是不可跳过的第一步。
- 系统化调试:四阶段闭环,三次未果则升级为架构问题。
- Code Review 双向体系:请求审查(Checklist 驱动)+ 接收审查(技术严谨性 + Push Back)。
- DRY & YAGNI:贯穿始终的两大原则。
Superpowers 的意义不仅仅是一组 Prompt,而是将一套经过验证的顶级软件工程实践"硬编码"为 AI 时代的规范操作系统。它代表了 Harness Engineering——通过 Skill 这根"缰绳",驾驭越来越强的 Coding Agent,在效率与质量之间找到最优平衡。
拓展阅读
- Superpowers GitHub 仓库
- Kent Beck, Test-Driven Development: By Example
- Robert C. Martin, Clean Code
- Martin Fowler, Refactoring: Improving the Design of Existing Code