先聊聊 Superpowers 和 Matt Skills
现在聊 AI 编程,基本绕不开两套 Skill 体系:Superpowers 和 Matt Skills。
早期我比较喜欢用 Superpowers。新项目开发阶段,它没什么问题——流程完整,一环扣一环,对把项目从 0 推到 1 确实有帮助。
但当项目进入维护阶段,或者开始接手旧项目之后,问题就慢慢出现了。
我为什么放弃了 Superpowers
Superpowers 的问题在于:流程是固定的,而维护期的任务是碎的。
一个很小的功能维护,大部分时间都花在走流程上,真正改代码的时间反而很少。久而久之就变成了"为了用它而用它"——明明三分钟能改完的东西,硬要先走完一整套仪式。
后来我彻底放弃了 Superpowers,转向更灵活的 Matt Skills 全家桶。
我现在的工作流
Matt Skills 的好处是可以按任务复杂度自由组合。目前我基本固定成三种打法:
| 场景 | 流程 |
|---|---|
| 简单需求 | 直接 Vibe Coding |
| 修复 Bug | grilling + implement |
| 复杂 Feature | grill-with-docs + to-spec + to-tickets + implement |
至于 code-review,它已经隐含在 implement Skill 里了,不需要手工发起。而且它会用 Subagent 做双轴 Review,比我以前手动发起的效果更好。
踩过的坑
用 Matt Skills 期间,我也遇到了几个很折磨人的问题,基本都集中在 Grill 阶段。
坑一:Grill 会脑补出不存在的需求
我丢给 Grill 的内容,大多是口述的——一大段比较混乱的信息。这里面的名词、描述和规则,前后说法经常不一致,但实际指的是同一个东西。
结果是:Grill 会理解出一些原本不存在的内容。它把前后不一致的表述当成了不同的概念,然后顺着这个错误继续推导。
解决方法是:Grill 的第一步不是澄清需求,而是统一术语。
先把需求里的核心术语拎出来,逐一确认它们的定义、范围,以及容易产生歧义的地方。等术语对齐了,再进入需求澄清和边界确认。
参考提示词
请先确认需求中的核心术语,逐一确认其定义、范围和容易产生歧义的地方,完成术语统一后再开始澄清需求和明确边界。
坑二:无休止的拷问
这个问题用过 Matt Skills 的人应该都遇到过:Grill 很容易陷入无休止的提问。
一个明明已经被前置规则排除掉、根本不可能出现的边界,它也会换个说法再拷问一遍。最后,一个很小的 Feature 都能问上七八十个问题。
我的解决办法是使用 「30 + 20」的节奏:
- 完成 30 个问题后,先让 AI 重新检查一次
- 检查三件事:是否还有核心业务需求未明确;是否还有关键边界或异常情况未确认;是否存在相互矛盾的描述
- 如果都没有,就结束提问,输出需求确认文档
通常 Grill 最开始的 10 个问题大概率都和核心术语有关,再往后拷问 20 个左右,就可以做第一次检查。如果检查后仍有要确认的,就继续提问;再完成 20 个问题后,再做一次同样的检查。
这个做法的本质,是把 AI 拉回核心需求、关键边界和相互矛盾这三条主干道上。否则它很容易不断开枝散叶,把大量时间花在根本不影响实现的问题上。
参考提示词
暂停拷问;请重点确认业务目标、使用场景、业务流程、业务规则、异常情况和功能边界是否还有核心业务需求未明确;是否还有关键边界或异常情况未确认;是否存在相互矛盾的描述,如果没有就结束提问并输出需求确认文档。
坑三:上下文压缩会吃掉已确认的内容
Grill 阶段已经拷问并确认过的内容,可能会因为上下文压缩而丢失。这个问题很恶心——你以为已经达成共识的东西,悄悄就没了。
我的处理方式比较粗暴:把每一个已经确认的内容直接写入临时文件。
我不相信上下文压缩后的记忆,已经确认的内容必须落盘。
动手前的最后一道关卡:冲突检查
完成上面这些步骤,差不多就能进入代码生成阶段了。但在真正开始实施之前,我还会做一次冲突检查。
这一步会把需求确认文档,与项目现有的规则类、约束类和术语类文档做对照,例如 CONTEXT.md、AGENTS.md、ADR(架构决策记录)、代码规范、架构规范、术语表和测试规范等。
如果发现冲突,就先解决冲突,不能带着冲突开始生成代码。
参考提示词
编写代码前,将需求确认文档与项目现有的规则类、约束类和术语类文档进行对照,包括但不限于:CONTEXT.md、AGENTS.md、ADR(架构决策记录)、代码规范、架构规范、术语表、测试规范、其他项目约束文档;发现冲突时,先列出并解决冲突;确认不存在冲突后,再开始功能实现。
别忘了定期整理项目文档
如果把 Matt Skills 作为主力开发工具,需要定期让 AI 整理和优化 CONTEXT.md、AGENTS.md 和 ADR。
尤其是多目录的 CONTEXT.md 更需要定期整理——AI 很喜欢把内容四处放置,其中一些还可能互相冲突,或者已经过期。团队多人开发时,这类问题会更加明显。
遇到冲突或过期内容,可以直接让 AI 通过提问的方式逐一确认和解决。
懒人技巧:让 AI 给选项
最后,在整个提问环节中,我比较喜欢让 AI 给出多个选项。
我是个比较懒的人,有选项时只需要选择或补充,不用每次都从头描述一遍。
当然,这种方式的 Token 消耗确实比较高——我每个月的 Token 消耗量在 200 亿以上。
小结
回头看,从 Superpowers 到 Matt Skills,本质上是从"流程驱动"转向"任务驱动":
- 流程是为任务服务的,不是反过来
- Grill 阶段先统一术语,再澄清需求
- 用「30 + 20」的节奏给拷问装上刹车
- 已确认的内容必须落盘,不要相信上下文压缩
- 生成代码前做一次冲突检查
- 定期整理
CONTEXT.md/AGENTS.md/ ADR - 让 AI 给选项,懒人友好,但费 Token