grill-me:动手写代码前,先让 Agent 把你问清楚

前言

用 AI 编程工具写功能时,常见的失败往往不是模型写不出代码,而是需求和方案还没对齐,Agent 就已经开始动手。你随口说一个想法,它很快给出目录结构、接口和实现步骤;看起来很完整,事后才发现几个关键分支从来没被问过:要不要兼容旧数据、错误怎么暴露、边界情况归谁处理。

Matt Pocock 把这类失败看成人和 Agent 之间的沟通缺口。他在公开技能仓库 mattpocock/skills 里给出的应对方式,是先开一场 grilling session:不急着出方案,而是按决策树把假设问清楚。面向用户的入口之一就是 grill-me。官方 README 把它和同系列的 grill-with-docs 并列为这套技能里最常用的两个。

这是什么

grill-me 是一个需要你主动触发的 Agent Skill。它的定位很窄:拿一个还不成形的想法,通过系统化追问,把它磨到你可以承诺下来。官方文档强调它是无状态的——没有仓库也能跑,不往工作区写文件,也不假设主题一定是代码。功能方向、产品取舍、商务决策、一篇文章的结构,都可以拿来问。

它由 Matt Pocock 维护,源码在 GitHub 仓库 mattpocock/skillsskills/productivity/grill-me/。配套说明同时发布在 aihero.dev/skills-grill-me 和仓库内 docs/productivity/grill-me.md,两边内容一致。skills.sh 上也有独立安装页。

当前仓库里,grill-me 自己的 SKILL.md 非常短:

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

Run a `/grilling` session.

disable-model-invocation: true 表示 Agent 不会自己决定启用它,必须由你输入 /grill-me。真正的面试循环在同仓库的 grilling Skill 里。官方 grilling 文档写得很直接:只装 grill-me、不装 grilling,输入命令后往往什么都不会发生。

核心机制

grilling 把主题建模成一棵设计树:每个决策下面挂着依赖它的后续决策。每一轮只问当前的 frontier——前置条件已经确定、现在就能诚实回答的那些问题。一轮里的问题彼此不能互相依赖;你答完之后,树会往外长,再问下一轮。

每一题有固定格式,来自 grillingSKILL.md

 **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices>

➡️ <your recommended answer>

这样可以按编号回答,例如「1 可以,2 选第二个,3 不行,原因是……」,不必把整段问题抄回去。官方也提醒过一个边角:有时推荐答案是在反对题目本身的表述,这时同意推荐就等于对原题说「不」,需要说清楚你答的是推荐还是原题。

事实和决策是分开的。能从文件系统、代码、工具里查到的事实,由 Agent 自己去查,必要时派子 Agent,不拿这类问题来问你;查的过程不阻塞整轮,只有依赖这次查询的后续问题才等待。决策必须留给你。Agent 自己替你拍板,属于跑偏,不是「灵活理解」。

会话结束的条件有两层:frontier 空了,并且你确认双方已经达成共同理解。确认之前,它不应开始实现。

官方给过一个量级参考:一场普通的 grill-me 会话,大约是四轮、四十多个问题。要按轮数来感受进度,不要按「问了多少题」焦虑。grilling 文档里另一个说法是:十三个问题通常会落在大约三轮,而不是拆成十三轮。两种数字描述的都是「按轮推进」,不是固定配额。

安装与启用

grill-me 使用通用的 SKILL.md 格式,可以在 Claude Code、Codex CLI、Cursor 等支持 Agent Skills 的工具里使用。Matt Pocock 仓库提供两条官方安装路径,哲学不同,选一条即可;两边都装会导致同一套技能出现两份。

1、Claude Code 插件。整包、只读、跟随作者更新:

claude plugins install mattpocock-skills

也可以在会话里执行:

/plugin install mattpocock-skills

该插件已在 Claude Code 官方 marketplace 中,不用先加源。

2、用 skills.sh 安装器把文件拷进项目。文件归你、可以改,不会在背后自动更新。Codex 以及其他 Agent 走这条:

npx skills@latest add mattpocock/skills

安装器会让你选择要装哪些 skill、装到哪些编码 Agent。如果只想装 grill-me,skills.sh 页面给出的命令是:

npx skills add https://github.com/mattpocock/skills --skill grill-me

单独挑选时,务必同时装上 grilling。整包安装或 Claude Code 插件则已经包含。之后可用 npx skills update 拉取作者更新。

装好后,在新开的对话里输入 /grill-me,并带上一个还比较松的想法即可。官方明确建议关掉 Plan 模式:Plan 模式会推动 Agent 尽快产出计划,和「停在追问里」是反方向。也不要叠在「已经让 Agent 写好的方案」上面再烤一遍,而是从空白对话开始。

典型用法

一个最小的启动方式如下:

/grill-me

我想给内部后台加一个「导出报表」功能,还没想清楚格式、权限和失败时怎么提示。

Agent 应先抛出一整轮 frontier 问题,每题带推荐答案,然后停下来等你。你按编号回答、反驳、或者说「我不知道」。官方把「我不知道」当成合法答案;答不上来的问题,往往说明这件事没法靠谈话解决,需要先做可扔掉的原型,而不是猜。

如果你更习惯一次只问一题,官方支持在全局 CLAUDE.md(或其他工具里等价的 Agent 说明文件)加一行:

When grilling, ask one question at a time.

grilling 文档写过:按轮提问的默认行为本身有争议。慢读、用第二语言、或者需要用「一题一答」来维持注意力的人,不少会改回逐题模式。这是官方支持的退出方式,不是将就。曾经短暂存在过的 /batch-grill-me 已经并进 grilling,不用再单独安装。

问完之后不要新开对话再写规格。官方的理由是:这场会话刚建起来的上下文才是价值所在,同一段对话可以直接交给同仓库的 to-spec,继续进入后续构建流程。to-spec 不是 grill-me 的必选项,只是想法最终落成软件时的一条可选路径。

适用场景与注意事项

适合用 grill-me 的情况:

  • 只有一个值得认真对待的想法,细节还没展开。模糊不是等待的理由,而是这场会话要吃掉的东西。
  • 主题不一定是代码:功能、产品方向、商务决定、写作结构都可以。
  • 当前没有工作目录,或不想往仓库里写任何文件。

不该用、或该换入口的情况:

  • 你已经能把事情说精确,就不需要再烤一遍。
  • 要对齐的是现有代码库,并且希望把术语和硬决策写进仓库,用同系列的 grill-with-docs。它跑的是同一套面试,但是有状态的,会维护 CONTEXT.md 和 ADR。
  • 工作量大到一场会话装不下,用 wayfinder。它会把工作画成地图,再在里面跑 grilling。
  • 「长文还是三个页面」「这个交互应该是什么手感」这类问题,官方称为 ungrillable:谈话解决不了,需要先看到东西。这时应停下来做一次性原型,看过再回来用一句话回答。

使用时还有几条官方踩坑说明。

被动点头是主要失败模式。连续四十个「同意」走完一场,得到的是 Agent 写的计划加上你的附和,时长制造了虚假的确定性。你需要主动掌舵:问题问得太浅就顶回去,范围跑偏就说,不知道就承认。产出质量跟你的回答有关,不跟问题数量有关。反过来,问到永远不写代码,是更少见但真实的另一头。

会话变成两百个问题时,通常是范围太大。先让 Agent 把工作拆小,再分别烤。上下文窗口被撑满后,问题质量也会下降。官方不提供问题数量上限,认为固定封顶要么截断难的情况,要么在简单情况下显得武断;控制方式是用自然语言让它收束,或者接受当前已经对齐的部分。

模型选择比多数 Skill 更重要。grilling 依赖模型自己对「系统会在哪里裂开」的判断,官方建议用你手头最好的模型;真正写代码时,有了上下文,用便宜一些的模型往往也能跟。较弱或非前沿模型有时会把「问到达成共识」收成两三问再甩一份提纲,并直接开始写。可靠修法是在 AGENTS.mdCLAUDE.md 里写明:未经允许不要实现。

另一个已知毛边:一个 Skill 点名另一个 Skill,并不保证对方一定会被加载。如果一场所谓的 grilling 把所有问题一次抛完、且没有 ➡️ 推荐答案,多半是模型在即兴面试,而不是在跑 grilling。这时直接问它有没有加载 grilling,通常能拉回来。

官方用来判断「这轮是不是在干活」的信号也很具体:一轮是带编号、带 ➡️ 推荐的列表,且可以按编号整轮作答;同一轮里没有谁必须等谁;后一轮会问到前一轮还问不了的问题;能自己查的事实不会拿来问你;结束时先确认共识,而不是直接开工。

小结

grill-me 做的事情很克制:在 Agent 动手之前,用一轮一轮的决策树追问,把沉默的假设逼到明处。它不写仓库、不替代你做决定,也不是完整的研发流程。和同系列的 grillinggrill-with-docswayfinder 放在一起看,它是那扇「随时随地、不依赖仓库」的用户入口。

官方地址:

  • Skill 目录:https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me
  • SKILL.md:https://github.com/mattpocock/skills/blob/main/skills/productivity/grill-me/SKILL.md
  • 说明文档:https://aihero.dev/skills-grill-me
  • skills.sh:https://skills.sh/mattpocock/skills/grill-me
  • 技能集仓库:https://github.com/mattpocock/skills
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜