拷问 AI 之前先拷问自己:Matt Pocock grill-me 深度解析
一句话说透
grill-me:在写一行代码之前,让 AI 把你问到烦,直到你们对“到底要做什么”达成真正的共识。7 行 Markdown,27.8 万 Star,这是 2026 年 AI 编程领域最反直觉的一次胜利。
首段先给结论:如果你用 Claude Code、Codex、Cursor 时经常遇到“AI 没按我想的做,500 行写完全要返工”,问题不在模型,在于你们之间缺了一次 grilling session(拷问式对齐)。Matt Pocock 的 /grill-me 就是把这个对齐过程固化成 Skill:无状态、不写文件、不假设是软件,一轮一轮沿着设计树追问,直到前线(frontier)为空。
一、问题描述:AI 时代最常见的失败——“它没按我想的做”
Matt 在 mattpocock/skills 仓库 README 开篇就列了四大失败模式,排第一的就是:
The Agent Didn’t Do What I Want. No-one knows exactly what they want. —— David Thomas & Andrew Hunt《程序员修炼之道》
典型现场你一定见过:
- 你说“给我加个登录”,AI 直接给出自认为合理的方案,根本不问你要不要记住设备、失败几次锁定、Session 多久过期;
- 等你 review 时,500 行已经写完,返工 2 小时;
- Matt 自己的比喻更生活化:去餐厅点了 chorizo 沙拉,上来的是 chorizo 三明治,只能退回去。
这不是模型笨,而是沟通鸿沟(communication gap):你脑中的需求是模糊的,AI 却被默认调教成“赶紧动手”。Claude Code 自带的 Plan Mode 更是加剧了这一点——它急于产出一个 plan 资产,好让自己开工。
grill-me 的解法反其道而行:不许动手,先把想法问清楚。
二、原因分析:为什么是“拷问”,而不是“计划”?
2.1 理论根:Brooks 的设计概念与设计树
Matt 直接引用了 Frederick P. Brooks《设计的设计》(The Design of Design)中的两个概念:
- 设计概念(design concept):多人协作时,真正被创造出来的东西不是文档,而是一种漂浮在所有人脑中的、对“这东西是什么”的隐形共识。它不是资产,是理论。
- 设计树(design tree):一个决策可以拆成多个分支,每个分支再拆。上游决策没定,下游就不能定,否则上游一改,下游全返工。
AI 一上来就写代码,等于根本没和你共享同一个设计概念。错的不是语法,是前提。
2.2 7 行源码,每一句都在反 LLM 默认行为
skills/productivity/grill-me/SKILL.md 全文加 frontmatter 不到 15 行,核心只有 7 行:
---
name: grill-me
description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
---
Interview me relentlessly about every aspect of this plan until we reach
a shared understanding. Walk down each branch of the design tree,
resolving dependencies between decisions one-by-one. For each question,
provide your recommended answer.
Ask the questions one at a time.
If a question can be answered by exploring the codebase, explore the
codebase instead.
逐句拆解,这是 Yu’s Cyber Desk 那篇深度拆解也强调的重点:
relentlessly:压制 LLM“问 1-2 个就觉得差不多了”的倾向,不许放过;design tree:强制把需求当树处理,先问树根(鉴权方式),再展开子节点(Session 怎么管、Token 存哪);one-by-one:禁止打包提问。如果选了 SSO,下游的密码策略问题就直接消失,先定上游能省掉大量下游;recommended answer:神来之笔。每问都给推荐答案,你只需要点头/摇头/纠正,节省 80% 打字;one at a time:防止一次甩你 10 个问题,让你挑软柿子捏;explore instead:项目里已有的事实(用的什么测试框架),自己去看,别问人。
7 行,但每一行都对应一种 LLM 行为偏置,工程美学极高。这也是它被截图转发最多的原因:Skill 不一定要长。
2.3 人是谁:从声乐老师到 250 万美元课程
理解 grill-me,得理解 Matt Pocock:
- 6 年声乐老师,自学编程做了个 Web Audio 共振分析器,为了找远程工作;
- 靠给 XState 做类型安全工具被创始人 David Khourshid 发掘,进 Stately 拿“美国工资”;
- 去 Vercel 谈了个一周 3 天的兼职合同,对冲自己的 Total TypeScript 课程,结果预售直接赚了 Vercel 年薪的 30-40 倍,课程总收入超 250 万美元;
- AI 来了之后,他把知识分为两层:
what(语法/知识)已经极度便宜,why(判断/智慧)一点没变容易。Total TypeScript 收入下滑,AI Hero 崛起,2025 年 12 月 Opus 4.5 寒假后他彻底转向 AI Coding。
沟通能力是他的作弊器:能把技术讲清楚的人,在 AI 时代做 Skill 同样是降维打击。grill-me 的灵感他自己承认来自 Anthropic Claude Code 团队的 Thariq Shihipar(Tariq)的一条推文:让 Agent 反过来采访你,效果出奇好。
三、分步解决方案:安装到落地的完整链路
3.1 安装:别只装一个 delegate
grill-me 本体是个委派器,新版只有一句话:Call the Skill tool with "grilling"。真正的拷问逻辑在 grilling 这个 model-invoked Skill 里。所以:
# Claude Code(订阅制,自动更新)
claude plugins install mattpocock-skills
# 会话内
/plugin install mattpocock-skills
# Codex / Cursor / 其他(可编辑拷贝)
npx skills@latest add mattpocock/skills
# 必选 grill-me + grilling,grill-with-docs 还要加 domain-modeling
npx skills add mattpocock/skills --skill grill-me grill-with-docs grilling domain-modeling to-spec to-tickets implement tdd code-review setup-matt-pocock-skills -a codex
最常见的故障就是只装了 grill-me 没装 grilling:表现为“它回复了但从不采访你”。补装目标 Skill 即好。
每个仓库跑一次:/setup-matt-pocock-skills,它会问你 issue tracker 用什么(GitHub/GitLab/本地 Markdown)、triage 标签词表、GLOSSARY 和 ADR 放哪,并写入 docs/agents/ 和 CLAUDE.md。后面的 to-spec/to-tickets/code-review 都读这些文件。
3.2 使用:新鲜会话 + 一句话想法
- 开一个全新会话,别在已有 plan 上面叠加;
- 用一句话说想法,可以极度模糊:“我想给博客加个评论功能”;
- 输入
/grill-me(插件版是/mattpocock-skills:grill-me,Codex 是$grill-me); - AI 开始一轮一轮问,每问带推荐答案,你点头/纠正/说“I don’t know”;
- 一般 20-50 问后给总结,不要清空上下文,直接
/to-spec转成 PRD,或丢给/tdd开干。
想控轮次可以加一句:“Limit to 10 questions, focus only on architecture.” 但 Matt 不推荐——问得多正是价值,砍到 10 问就退化成 Plan Mode 了。
3.3 进阶分叉:三选一
- Anything, anywhere:用
grill-me。无状态,不写文件,商业决策、写作大纲、人生选择都能问; - 有代码库要对齐:用
grill-with-docs。同样拷问,但同步写GLOSSARY.md和docs/adr/。Matt 自己的例子:原来要说“ghost lesson 里 ghost section 里 ghost course 变 real 时要传 file path”这种 30 字长句,现在只说“materialization cascade 出问题了”,Agent 直接能 grep 到; - 大到一次装不下:用
wayfinder。先画地图,中心是已定事项,迷雾是未知,每次 grill 点亮一块,再沿 ticket 有向图走到终点。
走完 grill,同会话 /to-spec 生成含用户故事、实现决策、测试决策、非目标的 spec,标 ready-for-agent;/to-tickets 切成纵向可演示切片;每个 ticket 开新鲜会话 /implement(内含 tdd + code-review 再 commit);发 PR 前再 /code-review main 跑 Standards + Spec 双子 Agent。
四、验证结果:数字不会说谎
- 仓库热度:
mattpocock/skills截至 2026-10 约 27.8 万 Star、2.3 万 Fork,Matt 自述 1100 万次下载, newsletter 6 万人,AI Engineer London 演讲《Software Fundamentals Still Matter》120 万播放; - 问多少:新视频编辑器功能 16 问收敛;复杂功能 30-50 问;极复杂 100 问、45 分钟。Gergely Orosz(Pragmatic Engineer)亲测:一个简单 API 端点被问了 35 问,bearer token 还是 JSON、限流怎么做,全是他没想过的;
- 样题实录:clip 可重排还是只能增删?删 clip 留源文件吗?undo 要几步?预览在浏览器渲染还是走后端?全是产品决策,但每个都决定几百行代码形状;
- 体感拐点:前 5 问最难受,熬过去就上瘾。第 5 问往往暴露你根本没想过的东西。
五、grill-me vs Plan Mode:一张表看懂
| 维度 | Plan Mode(Shift+Tab) | /grill-me |
|---|---|---|
| 默认目标 | 尽快产出可执行 plan | 先达成共识,plan 是副产品 |
| 问题数 | 0-5 | 20-100 |
| 提问格式 | 一段话多个问题 | 一次一问 |
| 给推荐答案 | 否 | 是 |
| 主动探索代码 | 偶尔 | 显式要求,能查就不问 |
| 适用场景 | 已经想清楚,求确认实现 | 还没想清楚,需要被逼想清楚 |
Matt 原话:“Plan mode is extremely eager to create an asset. It really wants to just create a plan and start working. Whereas I think it’s a lot nicer to reach a shared design concept first.”
实战建议:想清楚了用 Plan Mode 求快,没想清楚用 grill-me 求对。Leave plan mode off 去 grill,是 Matt 的默认工作流。
六、常见坑点:三种死法与解法
6.1 被动式点头:agreed 40 次,产出自信的垃圾
aihero 官方文档点名批评的最大失败模式:全程“同意同意同意”,出来一个 Agent 写的、你点头的计划,看起来很确定,其实你什么都没决定。
解法:主动 steering。觉得问题太粗就打回去,觉得范围漂了就喊停,不会就理直气壮说“I don’t know”。grill-me 是帮工程师,不是替代工程师,产出质量取决于你的答案质量,不是问题数量。
6.2 范围太大:问了 200 问还在问
通常是你把“做个 Stripe 克隆”这种 15 万 token 装不下的东西一次扔进来。上下文窗口一满,问题质量进入 dumb zone(蠢区),越问越水。
解法:先拆小再逐个 grill,或上 wayfinder。数轮次不数问题,46 问 4 轮是正常会话。
6.3 不可 grill 问题:硬问只会发散
“一个长表单还是三个页面?”“这个交互手感如何?”——这类问题没东西可看就答不上来,叫 ungrillable。
解法:停下,去 /prototype 做个可丢弃单文件原型,看完回来一句话就能答。试图用嘴聊出感觉,Agent 会不断换说法重问,范围越聊越大。
另两条经验:小到改 typo 别 grill;觉得烦就坚持 5 问;不想纠结的技术细节直接回“your call”,它会接过去继续。
七、深度分析:为什么它恰好在这个时间爆了?
- Leading words(牵引词)理论:模型训练语料里沉淀了经典书的短语,你一说
tracer bullet(曳光弹),它就不再分层建库、分层建 UI 到最后才联调,而是先跑通一条纵向金路径。deep modules(深模块)、ubiquitous language(统一语言)同理。Matt 的方法是回头翻老书,找能改变 Agent 行为的词,grill-me 就是“interview relentlessly”这个牵引词的胜利。 - 战术编程已死,战略编程当立:借 Ousterhout 的区分,AI 吃掉了战术层(语法、样板),留给人的是战略层(建什么、边界在哪、 trade-off)。grill-me 恰好卡在战略层,所以 Total TypeScript 过时了,它却爆了。
- Memento 式开发:Agent 像《记忆碎片》主角,每天醒来失忆。人可以用头撞代码墙撞出记忆,Agent 每次都是新人。所以代码库必须为失忆者优化——术语一致、可 grep、决策有 ADR。这正是
grill-with-docs在 grill 时同步写文档的原因,也是 DDD 统一语言在 LLM 时代的复活。 - User-invoked vs Model-invoked 的架构洁癖:以
/触发的只能你调,只能编排;可被模型自调的沉淀可复用纪律。grill-me单行委派给grilling,grill-with-docs再加domain-modeling,组合而非大一统,对应了他反对 GSD/BMAD/Spec-Kit“接管流程”的哲学:小、可改、可组合。
八、FAQ
Q1:grill-me 和 Claude Code 自带 Plan Mode 有什么本质区别?
Plan Mode 急于产出可执行计划,平均只问 0-5 个问题。grill-me 以达成共识为目标,常问 20-100 个问题,每问附带推荐答案,且主动探索代码库,适合想法还很模糊的阶段。
Q2:grill-me 需要安装哪些依赖才能正常工作?
只装 grill-me 本体无法工作,必须同时安装它委托的 grilling;grill-with-docs 还需要 domain-modeling。推荐用 npx skills add 一次装全,或用 Claude Code 插件全量订阅。
Q3:一次 grill-me 会话通常要问多少个问题?
新功能约 16 问,复杂功能 30-50 问,超复杂重构可达 100 问、45 分钟。若超过 200 问,多半是范围太大,应先拆分再逐个拷问。
Q4:grill-me 只适合写代码吗?
不适合之说恰恰相反。它是无状态的,Matt 本人就用它设计课程大纲、文章结构和内部沟通文档。只要是脑中模糊、值得认真对待的想法都可以 grill。
Q5:什么情况下不该用 grill-me?
改 typo、加一行日志这类极小任务不用;需要眼见为实的感觉型问题也别硬问,先用 prototype 做个可丢弃版本,看完再回来回答,一句话就能收敛。
参考资料
- mattpocock/skills 仓库 README(27.8 万 Star,四大失败模式与安装指南):https://github.com/mattpocock/skills
- aihero 官方文档 The /grill-me Skill(Rounds/Frontier/Stateless 定义):https://www.aihero.dev/skills-grill-me
- Yu’s Cyber Desk《Grill Me: Let AI ask you 50 questions before you write code》(7 行源码逐句解读与 Plan Mode 对比表):https://yudesk.dev/en/docs/notes/matt-pocock-skills/grill-me
- Pragmatic Engineer 播客《AI Skills with Matt Pocock》(Total TypeScript 250 万美元、Thariq 灵感、smart/dumb zone):https://newsletter.pragmaticengineer.com/p/ai-skills-with-matt-pocock
- The Agent Daily 深潜《AI Skills with Matt Pocock: Grill Me, Wayfinder》(27.5 万 Star 统计、tracer bullet/ubiquitous language 牵引词):https://the-agent-daily.org/agentnews/deep-dives/ai-skills-matt-pocock-grill-me-wayfinder
- Unhandled Exception 播客 Ep88 Agent Skills with Matt Pocock(wayfinder/smart zone/personal software):https://unhandledexceptionpodcast.com/posts/0088-mattpocock/
如果这篇帮到你,别忘了订阅本站 RSS,并在 GitHub 上给相关开源项目点个 Star。
原创技术博客 · 开源项目分享 · AI全栈创作社区 idao.fun