给 claude code 加了个 skill,强迫它先想清楚再动手
最近看到一个挺让我兴奋的东西。字节的 Trae IDE 里有个叫 MTC 的模式,MTC = More Than Coding。它是全流程的 agent:设计、分析、数据生成、文档都能做,顺便也能写代码。有个叫彭超的开发者用它两个小时做了一个完整的解谜游戏,叫 ClassOS,零行手写代码。我看完就想自己也搞一套,但我平时用的是 claude code,不是 Trae,所以就做了个 /mtc skill,把这个工作流复刻了过来。
最近看到一个挺让我兴奋的东西。字节的 Trae IDE 里有个模式叫 MTC,MTC = More Than Coding。它是个管全流程的 agent,设计、分析、生成数据、写文档都能干,顺便也能写代码。有个叫彭超的开发者用它两个小时做了一个完整的解谜游戏,叫 ClassOS,一行代码都没手写。我看完就想自己也搞一套,但我平时用的是 claude code,不是 Trae,所以就做了个 /mtc skill,把这个工作流照着搬了过来。
MTC 的核心是"代码之前的一切"
MTC 作者有个说法我特别认同,MTC 不是 Code 模式的低配版,它是"代码之前的一切"。他做 ClassOS 的时候,剧本改了三版,mock 数据生成了五份文件,竞品分析拆了五个要素,这些全在 MTC 里做完,最后才开始写代码。
大部分 vibe coding 恰恰就是在这个顺序上出的问题。一般的做法是,脑子里有个模糊的想法,就直接让 AI 开写。写到一半发现不对,回头改概念;概念改完要改数据,数据改完又得回去改代码。每个阶段都在推翻上一个阶段,最后出来的东西就是缝缝补补的。
MTC 的做法是把每个阶段的结果定死。每个阶段交一个文件,下个阶段拿它当输入,哪个阶段都不许跳。它自己是这么分的,Phase 1 出剧本文档,Phase 2 出数据设计文档,Phase 3 出系统架构文档,一层一层往下走。
对比 vibe coding 的来回返工与 MTC 每阶段产出文档、单向推进的流水线
我拆成了 6 个阶段
我把这个思路拆成 6 个阶段,做成了 claude code 的一个 skill,具体是这样分的:
- Phase 0: Context Gathering,先问清楚想做什么、给谁做、要什么感觉。这个阶段不出文档,就是把方向对齐。
- Phase 1: Concept & Narrative,反复改故事和概念,强制走 V1 → 自我批评 → V2 → V3。最重要的一条规则是 AI 必须自己批评自己的 V1,不能停在 V1。
- Phase 2: System Design,定机制、解锁链、信息架构,出一份系统设计文档。
- Phase 3: Data & Content,生成 mock 数据。所有数据都得和叙事对得上,比如角色的聊天记录要符合它的性格。
- Phase 4: Build,写代码。这时候前面所有文档都拿来当输入,该做什么前面已经全定好了,AI 只用想怎么实现。
- Phase 5: Polish,不加新功能了,就是补音效、动画、彩蛋这种质感上的东西。
每个阶段出的文件都放进 docs/,下个阶段拿它当输入。每个阶段结束都有一个 checkpoint,用户确认了才往下走。Phase 3 和 Phase 4 子任务多的时候,可以 spawn subagent 并行跑,快一些,这个下面细说。
为什么不允许跳阶段
我一开始也犹豫过,或者说也不算犹豫,就是觉得有点多此一举。概念都已经想清楚了,干嘛还要写文档,直接让 AI 开写不行吗?后来发现不行,原因大概有两个。
第一个原因其实跟 AI 没什么关系,是人自己记不住。你现在觉得想清楚了,三天以后回来看代码,发现有个机制跟概念对不上,这时候已经分不清是当初概念就没想清楚,还是 AI 写的时候跑偏了。如果每个阶段都留了文档,回去就能看到当时为什么这么定,等于给当时的想法存了个档,不用靠脑子记。
第二个原因更要紧,让 AI 批评自己的 V1,必须单独放在一个 phase 里做。你让它一边写代码一边反思概念,它是不会反思的,只会接着写。它自己想不起来要干这件事,得靠工作流硬性要求它做。所以 Phase 1 的规则是,V1 出来以后,AI 必须列出 3 个问题,每个问题给一个 V2 的方向,让用户来选。
Phase 1 强制 AI 批评自己的 V1、列出问题再迭代到 V2 V3 的自我批评回路
做 Inside Job 这个游戏的时候,这条规则帮了大忙。V1 出来我看着觉得挺好,但又说不出哪里不对。claude code 按 Phase 1 的规则自己批评了一遍 V1,把"solid but predictable"拆成了三个具体的问题,每个问题给了一个 V2 方向。我说全要,它就把三个方向揉成了一个三层的叙事结构。V2 出来那一刻我是真的服了。
subagent 在哪几个阶段开
claude code 有个很好用的功能,可以 spawn 子任务,让好几个 agent 同时干活。在 /mtc 里,好处最大的是 Phase 3(数据生成)和 Phase 4(写代码)。比如 Phase 3 生成 mock 数据,一个游戏可能同时要聊天记录、邮件、照片元数据、日历事件,这几种数据互相不依赖,就可以开 4 个 subagent 一起生成。每个 subagent 只管一种数据,更专注,速度也快。Phase 4 写代码也是这个道理,前端组件拆给好几个 subagent 同时写,主 agent 负责把它们拼起来,架构上的决定也由它来做。
但 subagent 并行只在 Phase 3 和 4 开。Phase 1 概念阶段必须单线程,因为概念这个东西得一个脑子从头想到尾,拆开了反而乱。
概念阶段必须单线程,只有 Phase 3 和 4 才 fan out 多个 subagent 并行
最后算一笔账。/mtc 前期大概要花 30-60 分钟,放在一个完整项目里不算多。做 Inside Job 的时候,我先花了 40 分钟出概念和系统设计文档,然后才开始开发。跟我以前直接 vibe coding 做小项目比,这 40 分钟大概省了 2-3 个小时的返工。反正意思就是别让 AI 在一小块 context 里闷头写代码,先把完整的设计铺出来,它写的时候心里就有全局。
Trae 的 MTC 是个好东西,claude code 用户也能用上,就是得自己做个 skill。我这套已经用在三个游戏上了,效果比我预期的好。做游戏的过程我单独开了个系列,叫我是AI游戏制作人,感兴趣可以去看。