Grill Me:开工前先被拷问一遍

Grill Me:开工前先被拷问一遍

Scroll Down

AI 能写代码了,但老问题还在:Agent 写完了,不是你想要的。

症结往往是 理解偏差(misalignment)——你脑子里还是模糊想法,Agent 已经按自己的理解开工了。

Matt Pocock 的 /grill-me 专门治这个:在写代码、写规格之前,用结构化问答把想法拷问到能拍板。下面讲它是什么、怎么用、和 OpenSpec 怎么错开——Demo 用 Java 后端场景。


一、Grill Me 是什么?

Grill Me 不是独立仓库,而是 mattpocock/skills 合集里的 Agent Skill,路径 skills/productivity/grill-meSKILL.md 只有几行,真正干活的是底层 grilling

维度 说明
命令 /grill-me <话题>
输入 还模糊的想法、方案、新功能
输出 决策树走通,默认 不写任何文件
触发 disable-model-invocation: true必须手动 /grill-me
不是什么 不是 Plan 模式替代品,也不是写 spec 的工具

核心机制:想法 → 决策树 → 多轮问答 → 待决分支(frontier)清空

每一轮只问「前置条件已敲定的问题」。官网举例:46 个问题分 4 轮是正常会话;结束标志是 frontier 为空——每个分支都走过,没有静默假设。frontier 空了还要你确认「理解对齐了」,Agent 不该自己接着写代码。

grilling 是底层的 interview loop(访谈循环):grill-megrill-with-docswayfinder 都调用它,而不是各自再写一套问答。


二、怎么用?

1)安装

npx skills@latest add mattpocock/skills
# 勾选 grill-me(会自动带上底层 grilling Skill)

# Claude Code 整包安装
claude plugins install mattpocock-skills

只装 grill-me、没装 grilling,会出现「装了没反应」。安装页:skills.sh/mattpocock/skills

2)运行

/grill-me 订单服务要加一个导出接口,分页、缓存、幂等还没定
  1. 新开对话,不要叠在 Agent 已经写好的 Plan 上
  2. 关掉 Plan 模式——Plan 急于产出计划,和「先问清楚」相反
  3. 模糊不是理由,值得做、细节没定,正是启动时机

默认一轮问完当前 frontier。想改成一题一题,在 CLAUDE.md 加:When grilling, ask one question at a time.

3)边界条件

情况 处理
范围太大、问题上百(官网举例约两百问) 先用 /wayfinder 拆地图,再分段拷问
问题聊不出来(如交互手感) 停止拷问,先做原型再看
模型选型 grilling 吃模型判断力,用好模型;实现阶段可换便宜模型

4)三个 Skill 怎么选?

命令 适用场景
/grill-me 任意话题,无仓库,不写文件
/grill-with-docs 有代码库:术语进 CONTEXT.md,过门的决策进 docs/adr/
/wayfinder 一次会话装不下,先画地图再分段拷问

三、Java 后端 Demo:导出接口怎么被拷问?

以下是机制演示,不是实录。官网举例普通会话约 46 问 / 4 轮,这里只截 3 轮看依赖怎么往下问。

输入:

/grill-me 订单服务要加一个导出接口,分页、缓存、幂等还没定
补充:Spring Boot · 现有 MySQL + Redis · QPS 峰值约 500 · 2 周内上线

第一轮——为谁、导什么:

? Q1 - 导出给谁:运营后台还是开放 API?
-> 推荐:先只做运营后台,鉴权沿用现有 RBAC

? Q2 - 导出粒度:单订单 / 按条件批量 / 全量?
-> 推荐:按条件批量,单订单走现有详情接口

第二轮——可以反驳,也可以说不知道:

? Q3 - 分页策略:游标还是 offset?单次上限多少?
-> 推荐:游标分页 + 单次最多 5000 条

  ※ 反驳:「运营要 Excel 全量导出,5000 条不够」
  → 改问:同步小批量 + 异步大任务,是否分两档?

? Q4 - 缓存:Redis 缓存查询结果还是只缓存元数据?
-> 推荐:只缓存导出任务状态,结果落 OSS 临时链接

  ※ 「缓存我拿不准」→ 说不知道;第一版不缓存结果,任务状态查库

第三轮——MVP 边界:

? Q5 - 幂等:同一条件重复点击怎么处理?
-> 推荐:条件 hash 作幂等键,24h 内返回同一任务 ID

? Q6 - 第一版明确不做啥?
-> 不做自定义列 · 不做实时流式导出 · 不做跨租户

决策摘要: 运营后台 · 条件批量 · 同步小批量 + 异步大任务 · 结果不缓存、任务状态查库 · 幂等键 24h · 不做自定义列。


四、别连说「同意」

最大失败模式:被动连说「同意」——会话很长,全是 Agent 写的计划,不是你的决策。

有的问题聊不出来。比如「导出进度条怎么展示?」——先做个原型看一眼再回来。对着不可拷问的问题硬聊,Agent 只会反复换说法,你在猜。

会话有效:你至少反驳过一次;后一轮建立在前面答案上;结束时能跟同事讲清每个选择。


五、和 OpenSpec、Plan 模式怎么配合?

grill-me OpenSpec Plan 模式
管什么 想清楚再做 变更规格对齐 单次任务计划
持久化 进 Git 关窗没
最适合 想法还模糊 棕地改功能 小改动

有代码库时,Matt 主链是:

grill-with-docs → to-spec → to-tickets → implement

grill-meto-spec 是可选项,不是这条 skill 的目的;单次会话能做完,可跳过 spec,直接 implement。拷问完不要新开 session,把同一段上下文交给下一步。

to-spec 是 Matt Skills 的规格 Skill,OpenSpec 是独立 SDD 框架,思路同构,落盘不同:OpenSpec 走 /opsx:propose/opsx:apply。选一套,别混两套目录。


六、参考内容