← 返回博客

拷问 AI 之前先拷问自己:Matt Pocock grill-me 深度解析

AI应用

一句话说透 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《程序员修炼之道》

典型现场你一定见过:

这不是模型笨,而是沟通鸿沟(communication gap):你脑中的需求是模糊的,AI 却被默认调教成“赶紧动手”。Claude Code 自带的 Plan Mode 更是加剧了这一点——它急于产出一个 plan 资产,好让自己开工。

grill-me 的解法反其道而行:不许动手,先把想法问清楚。

二、原因分析:为什么是“拷问”,而不是“计划”?

2.1 理论根:Brooks 的设计概念与设计树

Matt 直接引用了 Frederick P. Brooks《设计的设计》(The Design of Design)中的两个概念:

  1. 设计概念(design concept):多人协作时,真正被创造出来的东西不是文档,而是一种漂浮在所有人脑中的、对“这东西是什么”的隐形共识。它不是资产,是理论。
  2. 设计树(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 那篇深度拆解也强调的重点:

7 行,但每一行都对应一种 LLM 行为偏置,工程美学极高。这也是它被截图转发最多的原因:Skill 不一定要长。

2.3 人是谁:从声乐老师到 250 万美元课程

理解 grill-me,得理解 Matt Pocock:

沟通能力是他的作弊器:能把技术讲清楚的人,在 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 使用:新鲜会话 + 一句话想法

  1. 开一个全新会话,别在已有 plan 上面叠加;
  2. 用一句话说想法,可以极度模糊:“我想给博客加个评论功能”;
  3. 输入 /grill-me(插件版是 /mattpocock-skills:grill-me,Codex 是 $grill-me);
  4. AI 开始一轮一轮问,每问带推荐答案,你点头/纠正/说“I don’t know”;
  5. 一般 20-50 问后给总结,不要清空上下文,直接 /to-spec 转成 PRD,或丢给 /tdd 开干。

想控轮次可以加一句:“Limit to 10 questions, focus only on architecture.” 但 Matt 不推荐——问得多正是价值,砍到 10 问就退化成 Plan Mode 了。

3.3 进阶分叉:三选一

走完 grill,同会话 /to-spec 生成含用户故事、实现决策、测试决策、非目标的 spec,标 ready-for-agent;/to-tickets 切成纵向可演示切片;每个 ticket 开新鲜会话 /implement(内含 tdd + code-review 再 commit);发 PR 前再 /code-review main 跑 Standards + Spec 双子 Agent。

四、验证结果:数字不会说谎

五、grill-me vs Plan Mode:一张表看懂

维度Plan Mode(Shift+Tab)/grill-me
默认目标尽快产出可执行 plan先达成共识,plan 是副产品
问题数0-520-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”,它会接过去继续。

七、深度分析:为什么它恰好在这个时间爆了?

  1. Leading words(牵引词)理论:模型训练语料里沉淀了经典书的短语,你一说 tracer bullet(曳光弹),它就不再分层建库、分层建 UI 到最后才联调,而是先跑通一条纵向金路径。deep modules(深模块)、ubiquitous language(统一语言)同理。Matt 的方法是回头翻老书,找能改变 Agent 行为的词,grill-me 就是“interview relentlessly”这个牵引词的胜利。
  2. 战术编程已死,战略编程当立:借 Ousterhout 的区分,AI 吃掉了战术层(语法、样板),留给人的是战略层(建什么、边界在哪、 trade-off)。grill-me 恰好卡在战略层,所以 Total TypeScript 过时了,它却爆了。
  3. Memento 式开发:Agent 像《记忆碎片》主角,每天醒来失忆。人可以用头撞代码墙撞出记忆,Agent 每次都是新人。所以代码库必须为失忆者优化——术语一致、可 grep、决策有 ADR。这正是 grill-with-docs 在 grill 时同步写文档的原因,也是 DDD 统一语言在 LLM 时代的复活。
  4. 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 做个可丢弃版本,看完再回来回答,一句话就能收敛。

参考资料

如果这篇帮到你,别忘了订阅本站 RSS,并在 GitHub 上给相关开源项目点个 Star。

原创技术博客 · 开源项目分享 · AI全栈创作社区 idao.fun