背景与目标
AI 辅助开发有两条典型路径:
路径 A(全流程框架型):以 SuperPowers 为代表,走一条完整 pipeline——Brainstorming → Spec → Plan → Execute(subAgent)→ Review。核心价值在于,AI 承担代码搜索、方案生成、批量文件改动和编译排错等体力劳动,人类只在 Spec 和 Plan 两个节点把关。
路径 B(轻量追问型):以 Matt Pocock 的 grill-me 为代表——只有三行核心指令,不写一行代码,只做一件事:把模糊需求一路追问到底。它把每个需求视为一棵"设计决策树",在上游决策确定之前绝不进入下游。实测中有人用它做复杂重构,被追问近 20 个问题(约半小时),生成的计划执行后 100+ 测试一次通过。
用一套现代 AI 编程工具(如 TRAE)复现这两条路径、换一个熟悉的领域做试验,可以验证方法论是否通用。走完一遍后,应该能回答四个问题:
- Plan Agent / Task(subAgent)/ TodoWrite 组合,能否替代 SuperPowers 的刚性流程约束?
- 工具能否模拟 grill-me 式的"设计决策树"追问?追问的深度和准确度如何?
- 在你的领域里,AI 对专业概念的理解深度够不够?如果不够,通过哪类文档喂入最有效?
- 什么时候选轻量追问路径,什么时候选全流程框架路径?
核心思路:两条路径
轻量追问型(grill-me 模式)
只问不做。核心机制是把需求拆成一棵"设计决策树",像走迷宫一样沿着每个分叉问下去:
- 你用手机号登录还是邮箱登录?→ 手机号
- 手机号需要国际区号吗?→ 需要
- 验证码是 SMS 还是语音?→ SMS
- Session 存单表还是 Redis?→ Redis
- ……
它在每一层决策确认之前,绝不跳到下一层。问完之后,你得到一份清晰的需求说明书,而不是一堆假设错误的代码。
工具等价方案:无需任何额外工具。只需要在提示词里告诉 AI"不要写代码,先把需求追问清楚"。如果想让这个过程更体系化,可以提前写一条规则放进 AGENTS.md。
全流程框架型(SuperPowers 模式)
从需求到交付。Brainstorming 澄清需求 → Spec 出方案 → Plan 拆任务 → subAgent 并行执行 → Review 验证。每个阶段都有 HARD-GATE(硬闸门),不通过就无法进入下一阶段。
工具等价方案:Plan Agent(出方案+拆任务)+ TodoWrite(可视化进度)+ Task/general_purpose_task(子代理执行)+ RunCommand(构建验证)。
何时选哪条路径
| 场景 | 推荐路径 |
|---|---|
| 需求只有一两句话,自己都没想清楚 | 轻量追问型 |
| 个人项目、原型验证、快速试错 | 轻量追问型 |
| 涉及多个模块的移植/改造,差异项 ≥ 3 类 | 全流程框架型 |
| 需要模块隔离、零侵入的工程约束 | 全流程框架型 |
| 有明确 Spec 需要 Review 的正式交付 | 全流程框架型 |
两条路径不互斥——完全可以在一个项目里先用轻量追问把需求澄清,再把澄清后的需求丢给 Plan Agent 走全流程执行。
试验前准备
选一个合适的试验项目
项目筛选标准:
- 你熟悉但不会心疼——代码逻辑心里有数,能一眼看出 AI 做对还是做错;就算被 AI 改乱了也不会影响真正的工作。
- 有明确的"移植"或"改造"性质——不是从零新建,而是基于已有代码做差异化修改。
- 差异项 ≥ 3 类——太少测不出工作流的价值,太多则第一次试验成本过高。
几个推荐的试验方向:
| 方向 | 基准代码 | 差异项示例 |
|---|---|---|
| 把 CLI 工具移植到新平台 | 某个 Go/Rust 写的命令行工具 | 配置文件格式从 JSON 换成 YAML;输出增加 CSV 导出;新增子命令;模块隔离 |
| 给已有 Web 应用加一套主题 | 一个 React/Vue 项目 | CSS 变量体系替换;布局差异;组件变体;主题切换自测页 |
| 把一个数据处理脚本适配新数据源 | 一个 Python 数据处理脚本 | 输入 schema 变化;新增清洗规则;输出格式变化;自测用例 |
| 给一个库写新后端适配 | 某个有插件机制的库 | 新 backend 模块;接口适配层;配置注册;集成测试 |
选好项目后,把基准代码放到 workspace 下。
准备项目上下文文件
在项目根目录新建 AGENTS.md,写入 AI 需要知道的全局信息,它会被工具的 workspace rules 自动加载:
# 项目概述
## 目录结构
(画出关键目录树,标注每个目录的职责)
## 构建/运行入口
(编译命令、启动命令、测试命令)
## 关键约束
- 新增代码收拢到独立模块,不动原有代码
- 所有改动必须有对应的自测
- (领域特有的工程约定)
## 术语表
(领域缩写、专有名词解释)
如果涉及外部规格文档(PDF 手册、协议规范等),提前用脚本转成 Markdown 放在项目目录下。AI 读取 Markdown 的准确率远高于直接读 PDF。
路径 A:轻量追问型(grill-me 模式)
适用场景:需求模糊、快速澄清思路、个人项目或原型阶段。
核心理念:设计决策树
把需求看作一棵树。根节点是核心目标(“我要加一个用户登录”),每个分支是一个决策点(用什么方式登录?Session 怎么存?错误处理策略?)。AI 的职责是从根节点出发,逐层向下,在每个分叉点追问,直到所有分支都被确认。
操作步骤
第一步:设定规则
在对话开头或 AGENTS.md 中加入以下约束:
在处理任何开发需求时,遵循以下规则:
- 先追问,后动手:在完全澄清所有需求细节之前,不写一行代码。
- 设计决策树:将需求拆解为决策树,从根节点(核心目标)开始逐层向下。在上一层决策确认前,不跳到下一层。
- 主动搜索代码库:能通过阅读现有代码回答的问题,不要问用户。
- 给出推荐并请用户确认:当有多个合理选项时,给出推荐方案并说明理由,而不是让用户面对空白选择。
第二步:描述你的需求
用一两句自然语言描述要做什么。故意写得模糊一些——这样才能测出追问的质量。例如:
我想在我的 [项目] 里加一个用户登录功能。
如果 AI 直接开始写代码,说明追问规则没生效,检查规则是否写进了 AGENTS.md 或在对话开头明确强调了。
第三步:逐一回答追问
AI 会连续追问,每个问题都应该是选择题或判断题(而不是开放式问题)。典型的好问题长这样:
登录方式有三个选项:A) 手机号+验证码 B) 邮箱+密码 C) OAuth(微信/Google)。考虑到你的用户主要在国内,推荐 A+C 组合,你觉得呢?
而不是:
你想怎么做登录?
第四步:确认需求摘要
追问结束后,让 AI 输出一份需求摘要。逐条确认,这就是后续开发的 Spec 基础。
追问质量判断标准
一次好的追问应该满足:
- 每个问题都是设计决策树上的一个节点,而不是随意发散
- 优先问影响架构的问题(数据模型、接口契约),其次才是实现细节(命名风格、文件位置)
- 能通过阅读代码回答的问题不问用户
- 给出推荐选项,减少用户的认知负担
- 追问的粒度适中——太粗说明没想清楚,太细说明在浪费时间
路径 B:全流程框架型(SuperPowers 模式)
适用场景:多模块移植/改造、需要模块隔离的正式项目、需要 Spec Review 的交付场景。
阶段 1:需求对齐(Brainstorming)
目标:让 AI 理解"要做什么"和"为什么这样做",而不是直接动手。
做法:用自然语言描述需求,但不要一次性把细节全倒出来。采用对话式递进——先给主干差异,等 AI 提问后再补细节。
示例提示词:
我有一个 [项目名],代码在
src/下,当前能在 [原环境] 正常运行。现在要把它移植到 [新目标]。主要差异:
- [差异一]
- [差异二]
- [差异三]
先把你的理解复述一遍,列出你觉得需要澄清的问题。暂时不要改代码。
质量判断标准:
- 追问模糊点,而不是自行脑补(比如你说了"配置取反",它应该问清是哪些字段取反)
- 定位到具体文件,说明它想去改哪里
- 发现描述有矛盾或技术上不可行时主动指出
你的把关动作:确认 AI 的理解与你一致。不一致就纠正,缺漏就补充。
阶段 2:出方案(Spec)
目标:把对齐后的需求转化为一份结构化的方案文档。
让 AI 输出 Spec,包含以下要素:
- 每个差异项对应的落点(改/新建哪些文件)
- 模块隔离方案(新代码放在哪个目录/模块下)
- 数据流/调用链变化(如果改动了接口)
- 验收标准(怎么判断改对了)
- 不改动清单(明确列出哪些文件/模块不受影响)
关键原则:模块隔离(HARD-GATE)
最值得学的一课来自一次失败:第一版 Spec 被驳回,因为 AI 把改动散落在了原有 package 里;第二版要求所有新代码收拢到独立的板级 package,对原代码零修改。在试验中同样要强调:
所有新代码必须在独立模块中,通过注册/挂载机制接入原有系统,不得直接修改原有文件。如果无法做到零侵入,先说明理由。
你的把关动作:逐条检查 Spec 中的落点。一旦发现 AI 把改动塞进了不该动的地方,驳回重写。这是全程最重要的把关点。
阶段 3:拆任务(Plan)
目标:把 Spec 拆成可独立执行的 Task 列表。
做法:使用 Plan Agent,给它 Spec 内容,让它输出 TodoWrite 格式的任务列表;或直接让 Plan Agent 从需求对齐开始全流程规划。
一份合格的 Plan:
- 每个 Task 是自包含的,不依赖其他 Task 的内部实现细节
- Task 之间有明确的先后依赖标注
- 每个 Task 有可验证的完成标准(不是"改好了"这种模糊描述)
- 最后一个 Task 是构建/运行验证
阶段 4:执行(Execute)
目标:按 Plan 顺序执行每个 Task。
使用 Task(general_purpose_task)派发每个 Task。每次只派一个,等它返回结果后再派下一个。
为什么用 subAgent 而不是在主对话里直接改:
- 一个 Task 可能涉及十几个文件的读写,主对话上下文会被挤爆
- subAgent 在独立上下文里完成实现和自测,返回摘要,主对话保持清爽
- 如果某个 Task 失败,不会污染其他 Task 的环境
执行期间注意事项:
- 每个 Task 返回后大致看一眼摘要,不必逐行审查
- 如果编译/运行报错,把错误信息直接喂给 AI,让它自行定位修复
- 如果某个 Task 连续失败超过 3 次,暂停,检查 Spec 是否遗漏了关键信息
阶段 5:验证与收尾(Review)
- 构建验证:跑完整的编译和测试命令
- 功能验证:运行项目,手动验证差异项是否生效
- 代码审查:让 AI 输出改动总结,与 Spec 逐条对照
收尾检查清单:
- 是否有改动意外侵入原模块?(
git diff --stat) - 新建文件是否都在预定目录下?
- 验收标准是否全部满足?
- 自测工具/测试套件是否正常运行?
双路径组合试验(推荐)
最完整的试验是两路径串行:先用轻量追问澄清需求,再用全流程框架执行。
- 故意写一段模糊需求(一两句话)
- 启动轻量追问模式,让 AI 把需求追问清楚,输出需求摘要
- 把需求摘要 + Spec 要求 + 模块隔离约束,一起喂给 Plan Agent
- Plan Agent 输出 TodoWrite 任务列表
- 审核 Plan,确认通过后逐个派 Task(subAgent)执行
- 构建验证,审核收尾
这样在一轮试验里同时测了两条路径。
试验记录建议
走完一遍后,记录以下信息:
## 试验记录
- 项目:
- 领域:
- 使用路径:轻量追问 / 全流程框架 / 组合
- 差异项数量:
- 新建文件数 / 修改文件数:
- 总耗时(人类参与时间 / AI 执行时间):
- 追问次数(轻量路径):
- Spec 被驳回次数(全流程路径):
- AI 自行踩坑次数及类型:
- 编译/运行报错次数及是否 AI 自行修复:
- 最终产物是否可用:
## 路径对比感受
(轻量追问的追问质量如何?追问深度够不够?全流程框架的 Task 拆分粒度是否合理?subAgent 执行是否可靠?)
## 关键收获
(最大的价值在哪里?最大的痛点在哪里?)
## 下一步
(是否值得沉淀为 Skill?哪个环节最需要自动化?)
常见问题
Q: AI 总想把改动塞进原有模块怎么办?
在 Spec 阶段明确约束,在 Plan 阶段再次强调。如果执行阶段仍然犯规,说明 Spec 写得不够硬。可以在 AGENTS.md 里把模块隔离写成铁律。
Q: 轻量追问模式下 AI 追问太少/太浅怎么办?
在规则中补一句:「对每个技术决策,至少追问到数据模型和接口契约层面再停止」。如果 AI 追问的粒度偏粗,在回复里主动引导:「这个点还可以追问得更细,比如 X、Y、Z 这几个维度你还没问到」。
Q: AI 对领域的专业概念理解有偏差怎么办?
给文档。把关键规格书、接口定义、术语表转成 Markdown 喂进去。文档质量直接决定 AI 的理解质量。如果某个概念 AI 反复理解错,单独写一段解释放在 AGENTS.md 或项目 README 的显眼位置。
Q: Task 工具派发的 subAgent 返回后,发现结果不对怎么办?
回到 Spec 确认需求有没有歧义。如果 Spec 没问题,检查 Task 的描述是否把验收标准写清楚了。如果都对了还是出错,可能是 AI 能力边界问题——考虑把大 Task 拆成更小粒度,或者在关键步骤增加人工确认点。
Q: 编译链/运行环境怎么配?
常见工具链(GCC、Python、Node.js 等)可以直接用。如果是特殊工具链,需要提前在本地编译安装好。
进阶:沉淀为 Skill
试验成功后,如果发现这套流程在自己的领域里可复用,可以把它沉淀为一个领域专属 Skill。一个领域 Skill 至少包含:
- 领域知识:术语表、常见文件结构、工程约定
- 差异分类模板:领域里最常见的移植差异类型(例如嵌入式领域的 GPIO/PCIe/Display)
- 隔离方案模板:模块隔离的 BKM 做法
- 验收清单:自测工具的标准实现模式
参考
- AI 辅助 BIOS 主板移植实战 — 基于 SuperPowers 的闭环开发
- grill-me vs Superpowers — 两大 Claude Code Skills 深度对比
- grill-me 核心理念:设计决策树(design tree),逐层追问,不澄清不写代码
- SuperPowers 工作流:Brainstorming → Spec → Plan → Execute(subAgent)→ Review + HARD-GATE