4371 字
22 分钟
Matt Pocock 技能 - grill-me 介绍

快记快用#

把模糊想法”拷问”清楚:Agent 不写代码,只按决策树轮番追问,直到每个分支都达成共识。无状态、不写文件,结果只留在你脑子里。有值得认真对待却还没想清的想法时用,新开对话输入 /grill-me 即可。

为什么需要使用 grill-me 技能?#

如果你有一个值得认真对待的想法,想要立刻实现,使用 grill-me 技能可以让 Agent 拷问你具体细节,让想法更清晰。并且,值得认真对待的想法不一定有仓库。产品方向、业务决定、一段写作、一件放在脑子里坐不住的事,都属于这一类。

解决了什么问题?#

当你向 Agent 提出想法时,往往会出现这些情况:

  1. 当对全新的 agent 直接说“帮我设计 X”。agent 一次给出整份计划,而不是访谈你;或者反过来,把二百个问题一次倒给你,不分轮次。
  2. 必须先有东西可反应,才能继续追问。这类问题问不出答案,会话会膨胀,范围长满不确定性。
  3. 新的想法会在已有的计划上启动。否则访谈会被已有文字带着走,导致想法数据会被污染。所以技能介绍页要求在 fresh conversation 里开始,不要叠在 agent 已经写好的计划上。

使用方法和运行机制#

输入#

一个还没成形的想法(不要求计划,也不要求主题是计算机软件)
你每一轮的回答
一个 fresh conversation(不要叠在 agent 已经写好的计划上)

处理#

  1. 调用一次 grilling 原语,把你的想法铺成一棵设计树。
  2. 每一轮问完整个前沿,也就是前置条件已经确定的问题;逐个编号,每个附上推荐答案。
  3. 等你的回答,重新计算前沿,再问下一轮。
  4. 前沿空了,并且你确认已经达成共识,访谈才结束。查事实归 agent,做决定归你,这两条定义在 grilling 里。

输出#

  • 一个在你脑子里更锐利的想法。共识只存在于对话里,不写文件,不留工作区。
  • 如果访谈出来的东西确实是软件,可以把同一条对话交给 to-spec,进入构建流程。这是可选项,不是这个技能的目的。
  • 刻意不做的事,也就是 stateless 的全部含义:不写任何文件、不建 CONTEXT.md、不读代码库、不留 workspace。这是它与 grill-with-docs 的唯一区别,同一场访谈,一个有文件产出,一个没有。
  • 它也不产出计划文档。会话本身就是产出计划的过程,计划是你脑子里长出来的,不是它写下来的。

概念总结#

grill-me 技能把一个还没成形的想法访谈成你愿意承诺的东西,不要求仓库,也不要求主题是软件。它的全部正文只有一行,内容是调用 grilling 原语,所以轮次、前沿、编号加推荐答案这些机制都来自 grilling,它自己不加任何指令。它在流程里的位置是 standalone:任何话题、任何地方都能跑,不写文件、不留工作区,产出只有你脑子里那个更锐利的想法。grilling 的六条原则在它身上原样成立,分别是先共识后行动、用一张图管住复杂度、顺序由依赖决定、让回答方省力、事实归 agent 决定归你、完成要同时满足两个条件;grill-me 只把“共识只在对话里”这一条守到极致。

源码解读#


description 与调用锁写在 frontmatter 里#

---
name: grill-me
description: A relentless interview to sharpen a plan or design.
disable-model-invocation: true
---

译文

名字:grill-me。介绍:一场追根究底的访谈,把一个计划或设计磨得更锐利。disable-model-invocation: true 表示这个技能不能由模型自己触发。

说明

把这段 frontmatter 与 grill-with-docs 对照,能看到两处刻意的区别。

  • 第一处是 description:grill-with-docs 写的是 “A relentless interview to sharpen a plan or design, which also creates docs (ADR’s and glossary) as we go.”,前半截与 grill-me 完全相同,只多出 which also creates docs 那半句。前半截相同是有意保留的,两者跑的确实是同一场访谈,区别只在要不要写文档。

  • 第二处是调用锁。disable-model-invocation: true 加上 skills/productivity/grill-me/agents/openai.yaml 里的 allow_implicit_invocation: false,两个平台都锁死为只能由人调用。它不写文件,却仍然只让你调用,理由不是副作用,而是“这个想法值不值得花一轮一轮问答”这个判断只能由你做。

同一个原语可以有两个独立入口,一个无状态一个有状态。grill-me 不写文件,所以正文只需要一行调用;grill-with-docs 要写文档,所以正文要调用两次。外壳携带多少依赖,由需要产出什么决定。


正文只有一行,调用 grilling#

Call the Skill tool with “grilling”.

译文

调用 Skill 工具,参数是 “grilling”。

说明

全文就这一行,单依赖、单调用。对比 grill-with-docs 的正文,它要求调用两次,一次是 grilling,一次是 domain-modeling;grill-me 少了一次调用,因为它不写文档,不需要 domain-modeling。

依赖的数量与产物数量对应:要产出一份文档就多带一个技能,什么都不产出就只带原语。这一行也是指名调用的例子。grill-with-docs 的正文曾因为措辞含糊,出现过只加载 grilling、漏掉 domain-modeling 的问题,这里不存在这个风险,因为本来就只有一个依赖。


每轮问完整个前沿,模糊不是等待的理由#

grill-me takes a loose idea and interviews you until you can commit to it. You do not need a worked-out plan to start: producing one is what the session is for.

译文

grill-me 拿一个模糊的想法,访谈你,直到你能对它做出承诺。开始时不需要一份想清楚的计划,把计划做出来正是这场会话要做的事。

说明

入口条件只有一个,就是有一个值得认真对待的想法,它可以是功能、产品方向、业务决定,也可以是一段写作。想法模糊不影响开始,把模糊的想法变成能承诺的方案,就是这场会话的内容。

It asks in rounds: each round is the whole frontier (every question whose prerequisites you have already settled), so you are never asked something that hinges on an answer it hasn’t heard yet.


译文

它按轮来问。每一轮是整个前沿,也就是所有前置条件你已经定了的问题,所以你永远不会被问到一个还依赖着未获回答的问题。

说明

frontier 机制从 grilling 原样搬来,顺序由依赖决定,不由重要性或紧急程度决定。一轮里的问题互相不依赖,你怎么答都不会前后矛盾。


It is stateless. It writes no files and leaves no workspace behind. The only thing it leaves is a sharper version of the idea, in your own head.

译文

它是无状态的。它不写任何文件,不留下工作区。它唯一留下的东西,是你脑子里那个更锐利的想法。

说明

stateless 是 grill-me 全部可移植性的来源:没有仓库、没有工作区、没有初始化步骤,也不假定这个想法和软件有关。


You invoke this by typing /grill-me; the agent won’t reach for it on its own. Start it in a fresh conversation, not on top of a plan you already had an agent write.

译文

你输入 /grill-me 来调用它,agent 不会自己去拿它。把它开在一个 fresh conversation 里,不要叠在 agent 已经写好的计划上。

说明

fresh conversation 的要求和 stateless 是一对。旧计划留在上下文里,访谈会围着它转,而不是从你的想法出发。调用方式与 frontmatter 的锁一致,只能由你输入 /grill-me。


Reach for it as soon as you have an idea worth taking seriously (a feature, a product direction, a business call, a piece of writing), and long before you have worked out what it involves. Vagueness is not a reason to wait; it is the thing the session eats. If you can already specify the thing precisely, you don’t need to grill it.

译文

只要你有一个值得认真对待的想法,就尽早用它,不必等你想清楚它包含什么。想法可以是功能、产品方向、业务决定或一段写作。模糊不是等待的理由,它是这场会话要吃的东西。如果你已经能精确说明它,你就不需要它了。

说明

模糊正是这个流程要处理的对象。多数规划工具等你把输入想清楚再用,grill-me 反过来:清楚是终点,不是起点。能用一句话精确说明的东西,不需要这场访谈。


Which of the three grilling skills you want depends on what is in front of you:

译文

要挑三个 grilling 技能里的哪一个,取决于你面前有什么。


Anything, anywhere: grill-me. It needs no repo and writes no files, and the subject doesn’t have to be code.

译文

任何话题、任何地方,用 grill-me。它不需要仓库,不写文件,主题也不必是代码。


A codebase to align against: grill-with-docs. The same interview, but stateful: it reads your code and keeps what it learns in CONTEXT.md and ADRs.

译文

有一个要对齐的代码库,用 grill-with-docs。同一场访谈,但有状态:它读你的代码,把学到的东西写进 CONTEXT.md 和 ADR。


Too big for one session: wayfinder. It charts the effort as a map and runs grilling sessions inside it.

译文

工作大到装不进一个会话,用 wayfinder。它把整件事画成一张地图,在地图里跑 grilling 会话。

说明

三条按“面前有什么”分开:只有想法就用 grill-me,有代码库要对齐就用 grill-with-docs,大到一个会话装不下就先画地图再用 wayfinder。三者的访谈内容相同,区别只在状态、依赖和规模。


Leave plan mode off. Plan mode primes the agent to rush toward producing a plan, which is the opposite of staying in inquiry.

译文

不要开 plan mode。plan mode 会让 agent 急着产出计划,和停留在询问里正好相反。

说明

plan mode 的目标是尽快给出方案,grill-me 要求停在询问里,把决定一个个问出来。两个方向相反,所以开 plan mode 会削弱访谈。

范围归你所有,被动是失效模式#

The skill asks the questions, but you own the scope. That is the part people miss, and it separates a session that turns an idea into decisions from one that produces confident nonsense.

译文

技能负责提问,范围归你所有。这是人们常常漏掉的部分,也是把想法变成决定的会话与产出自信胡话的会话之间的分界。

说明

责任划分和 grilling 的“事实归 agent、决定归你”一致。范围包括问到哪、问多深、哪些问题值得答,这些都由你掌握,技能只负责问。


The failure mode is passivity: answering “agreed, agreed, agreed” for forty questions and coming out with a plan the agent wrote and you nodded at. It feels productive because it was long. Nothing was actually decided, and the result carries a certainty it hasn’t earned.

译文

失效模式是被动:四十道题一路答“同意、同意、同意”,最后拿到一份 agent 写好、你点过头的计划。它因为长而显得有产出。实际上什么都没定下来,结果还带着一种没挣到的确定性。

说明

时长不是产出。一场没有你 pushback 的访谈,就是一场你不需要的访谈。判断这场会话有没有价值,看定下来多少决定,不看问了多少题。


Being active means steering. Push back on a question pitched beneath the fidelity you need. Say when the scope is drifting. Answer “I don’t know” and mean it. This skill is built to aid an engineer, not to replace one: what comes out tracks the quality of your answers, not the number of questions asked.

译文

主动意味着你来掌舵。对保真度低于你需要的问题 push back。范围开始漂移时说出来。“我不知道”就真的当作一个答案说出来。这个技能是辅助工程师的,不是取代工程师的:产出跟随你回答的质量,不跟随被问的问题数量。

说明

主动有三个具体动作,对问题 push back、指出范围漂移、承认不知道。第三条通常最有价值,答不上来的问题往往说明该去做个原型看看,而不是硬猜。输出失真主要发生在回答方点头,不在提问方偷懒,所以你要为决定的质量负责,不能把答完当成决定完。


The opposite error is real but rarer: staying in the interview so long you never reach code.

译文

反方向的错误也存在,只是更少见:一直留在访谈里,迟迟不进入代码。

说明

访谈的目的是把想法变成决定,不是无限期问下去。范围清楚之后就该结束,进入构建。

可通过追问解决与无法追问解决的问题(Grillable and ungrillable)#


Some questions can be answered by talking. Others can’t, and no amount of grilling will get you there.

译文

有些问题靠谈就能回答。另一些不行,谈多少轮都到不了。

说明

问题分成两类,可以通过追问解决的,和无法通过追问解决的。后一类在当前信息条件下就是没有答案,多问只会消耗会话。


“One long form or three pages?” and “how should this interaction feel?” are ungrillable: they need something to react to. When you hit one, stop grilling. Build the throwaway version with prototype, look at it, then come back and answer in one line.

译文

“一页长文还是三页?”“这个交互应该什么感觉?”这类问题是无法通过追问解决的:它们需要先有东西可以反应。撞上这种问题就停下访谈,用 prototype 做一个可丢弃的版本,看一眼,再回来一行答完。

说明

无法通过追问解决的问题需要原型、草稿或某个粗糙的实物当靶子。对策是跨出去做一步再回来,停下访谈、用 prototype 做可丢弃的版本、看一眼、一行答完,把问题改造成可以通过追问解决的问题。技能不会替你察觉这件事,停下和返回都由你负责。


Talking your way through an ungrillable question is where sessions balloon. The agent keeps rephrasing, you keep guessing, and the scope grows to fill the uncertainty.

译文

对着一个无法通过追问解决的问题继续谈下去,就是会话膨胀发生的地方。agent 不断换说法,你不断猜,范围长满来填住那块不确定性。

说明

无法通过追问解决的问题,不会因为多聊几轮就变得可以追问出答案。问答消化不掉的不确定性会通过扩大范围来消化,而范围变大的会话回头又显得更需要谈,变成一个自我强化的循环。识别出“这个问题谈不出来”是访谈双方都要有的能力,识别不出,grill-me 就从锐化工具变成范围膨胀的来源。

standalone 是它在流程里的位置#


grill-me is a standalone you can run anywhere, on anything. Being stateless is what makes it portable: no repo, no workspace, no setup, and no assumption that the idea is even about software. People point it at business decisions, at writing, at what to do next: anything that won’t sit still in their head.

译文

grill-me 是一个 standalone,任何地方、任何对象上都能跑。让它可移植的正是无状态:没有仓库、没有工作区、没有初始化步骤,也不假定这个想法和软件有关。人们把它指向业务决定、写作、下一步做什么,也就是任何在脑子里坐不住的事。

说明

standalone 说明它不在主链上,不需要仓库和前置步骤,这是它区别于 grill-with-docs 的全部原因。没有仓库的场景,就是它的目标场景。


That portability is the whole difference from grill-with-docs, which runs the same interview but reads a codebase to align against and records what it learns as CONTEXT.md and ADRs. Both sit on the grilling primitive; grill-me is the user-invoked front door that carries nothing with it.

译文

这份可移植性就是它与 grill-with-docs 的全部区别:grill-with-docs 跑同一场访谈,但要读代码库来对齐,并把学到的东西记进 CONTEXT.md 和 ADR。两者都建立在 grilling 原语上,grill-me 是不携带任何东西的那个由用户调用的入口。

说明

ask-matt 把 grilling、grill-me、grill-with-docs 放在同一族:grilling 是“问”的原语,由模型触发;grill-me 和 grill-with-docs 是它的两个命名入口,都由用户调用;wayfinder 内部也跑同一场访谈。grill-me 是三者里最薄的一个,grill-with-docs 还借用 domain-modeling 写文档,grill-me 只调一次 grilling。


If what you grilled does turn out to be software, you can hand the same conversation to to-spec and carry on into the build flow (an option, not the point of the skill). When you’re unsure which flow fits, ask-matt routes you.

译文

如果访谈出来的东西确实是软件,你可以把同一条对话交给 to-spec,继续进入构建流程,这是可选项,不是这个技能的目的。不确定该走哪条流程时,由 ask-matt 来指路。

说明

ask-matt 还给出了一个镜像关系,to-questionnaire 是它的逆操作。grill-me 访谈的是你本人,问题在你的脑子里;当问题不在你脑子里而在别人脑子里时,to-questionnaire 访谈你的是“怎么发出去”,也就是发给谁、要回什么,然后把问题对准那个缺口。拿回来的材料可以交给 grill-with-docs 或 to-spec。


第 3 篇,共 7 篇本文属于系列

Matt Pocock 技能 - grill-me 介绍
https://www.choria.top/posts/mattpocock-grill-me/
作者
乔瑞雅·克林威尔
发布于
2026-09-26
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取