从 Superpowers 到 Matt Skills

先聊聊 Superpowers 和 Matt Skills

现在聊 AI 编程,基本绕不开两套 Skill 体系:SuperpowersMatt Skills

早期我比较喜欢用 Superpowers。新项目开发阶段,它没什么问题——流程完整,一环扣一环,对把项目从 0 推到 1 确实有帮助。

但当项目进入维护阶段,或者开始接手旧项目之后,问题就慢慢出现了。

我为什么放弃了 Superpowers

Superpowers 的问题在于:流程是固定的,而维护期的任务是碎的

一个很小的功能维护,大部分时间都花在走流程上,真正改代码的时间反而很少。久而久之就变成了"为了用它而用它"——明明三分钟能改完的东西,硬要先走完一整套仪式。

后来我彻底放弃了 Superpowers,转向更灵活的 Matt Skills 全家桶。

我现在的工作流

Matt Skills 的好处是可以按任务复杂度自由组合。目前我基本固定成三种打法:

场景流程
简单需求直接 Vibe Coding
修复 Buggrilling + implement
复杂 Featuregrill-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.mdAGENTS.md、ADR(架构决策记录)、代码规范、架构规范、术语表和测试规范等。

如果发现冲突,就先解决冲突,不能带着冲突开始生成代码

参考提示词

编写代码前,将需求确认文档与项目现有的规则类、约束类和术语类文档进行对照,包括但不限于:CONTEXT.md、AGENTS.md、ADR(架构决策记录)、代码规范、架构规范、术语表、测试规范、其他项目约束文档;发现冲突时,先列出并解决冲突;确认不存在冲突后,再开始功能实现。

别忘了定期整理项目文档

如果把 Matt Skills 作为主力开发工具,需要定期让 AI 整理和优化 CONTEXT.mdAGENTS.md 和 ADR。

尤其是多目录的 CONTEXT.md 更需要定期整理——AI 很喜欢把内容四处放置,其中一些还可能互相冲突,或者已经过期。团队多人开发时,这类问题会更加明显。

遇到冲突或过期内容,可以直接让 AI 通过提问的方式逐一确认和解决。

懒人技巧:让 AI 给选项

最后,在整个提问环节中,我比较喜欢让 AI 给出多个选项

我是个比较懒的人,有选项时只需要选择或补充,不用每次都从头描述一遍。

当然,这种方式的 Token 消耗确实比较高——我每个月的 Token 消耗量在 200 亿以上

小结

回头看,从 Superpowers 到 Matt Skills,本质上是从"流程驱动"转向"任务驱动":

  • 流程是为任务服务的,不是反过来
  • Grill 阶段先统一术语,再澄清需求
  • 用「30 + 20」的节奏给拷问装上刹车
  • 已确认的内容必须落盘,不要相信上下文压缩
  • 生成代码前做一次冲突检查
  • 定期整理 CONTEXT.md / AGENTS.md / ADR
  • 让 AI 给选项,懒人友好,但费 Token
hithat