grill-me Skill 详细总结
一句话概述:grill-me 把"事前需求对齐"这件容易被省略的事,变成一个结构化、可执行、不依赖个人自觉性的协作步骤。它逼 AI 在写代码前,把你的需求当成一棵决策树,一根一根分支问清楚。
一、grill-me 是什么
grill-me 是 Matt Pocock(前 Vercel 开发者工具团队工程师)在 mattpocock/skills 仓库中开源的一个 AI 编程 Skill。它的核心作用是:在 AI 助手真正动手写代码之前,通过一场"无情面谈"(relentless interview),把模糊的需求逐条追问清楚,确保双方对方案的理解一致。
基本信息
| 属性 | 值 |
|---|---|
| 名称 | grill-me |
| 作者 | Matt Pocock |
| 仓库 | mattpocock/skills |
| 路径 | skills/productivity/grill-me/ |
| 触发方式 | 手动命令 /grill-me |
| 适用 Agent | Claude Code / Cursor / Codex / Windsurf / Cline / OpenCode / Trae / CodeBuddy 等支持 Skills 标准的 Agent |
| 安装命令 | npx skills add mattpocock/skills --skill=grill-me |
| 状态 | 无状态(stateless),不写文件、不留下工作产物 |
原始 SKILL.md 源码
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.
它本质上是一个"入口包装"——实际工作由底层的 grilling 原语完成。disable-model-invocation: true 表示 AI 不会自动触发这个 Skill,必须由用户手动输入 /grill-me 来启动。
配套的 agents/openai.yaml
interface:
display_name: "Grill Me"
short_description: "Sharpen a plan through interview"
policy:
allow_implicit_invocation: false
二、核心原语:grilling
grill-me 的实际逻辑由 grilling skill 提供。grilling 是整个"拷问"技术族的核心原语(primitive),是唯一的真相来源(single source of truth)。
grilling 的 SKILL.md 源码
---
name: grilling
description: Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
---
Interview me relentlessly about every aspect of this until we reach a shared understanding. Walk down each branch of the decision tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
If a *fact* can be found by exploring the environment (filesystem, tools, etc.), look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer.
Do not act on it until I confirm we have reached a shared understanding.
三条核心规则
| 规则 | 内容 | 中文解读 |
|---|---|---|
| 规则一 | 把需求当决策树,按分支逐层深挖 | 先把功能拆成架构、数据模型、交互、边界情况等分支,再顺着依赖关系一条条走——上游决策没定,下游问题不问 |
| 规则二 | 一次只问一个问题,问完再问下一个 | 逐个提问看似慢,实际上每个回答都能立刻影响下一个问题该怎么问,效率反而更高,也不容易漏答 |
| 规则三 | 能从代码库里找到答案的,不问用户 | 防止"重复劳动式提问"——比如"现有用户表有没有唯一索引"直接翻代码库即可,省下提问预算给真正需要人决策的问题 |
两个关键设计
-
每个问题附带推荐答案:AI 不是抛出一个空问题让你回答,而是先给出自己的推荐方案,你只需确认或纠正。这降低了用户的认知负担。
-
全部厘清后才允许进入实现阶段:直到决策树的所有分支都被访问、没有隐藏的默认假设,AI 才开始写代码。用户必须确认"已达成共享理解"后才会继续。
三、grill-me 能做什么
解决的核心问题
AI 编码助手有个共同的性格缺陷:急于动手。你描述一个功能,它十几秒就能给出一个像模像样的方案,但那些没被明说的边界情况——并发冲突、权限归属、异常分支——它会替你悄悄做主,用一个"看起来合理"的默认假设糊过去。
grill-me 解决的就是这个问题:把"需求澄清"从一个容易被跳过的可选步骤,变成写代码前的强制协作环节。
有 vs 没有 grill-me 的差别
| 维度 | 没有 grill-me | 有 grill-me |
|---|---|---|
| 边界情况处理 | AI 自行假设,多为"想当然" | 逐条提问,你来拍板 |
| 需求对齐时机 | 代码写完后靠评审 / 产品验收发现 | 写代码之前就对齐 |
| 隐藏依赖 | 实现到一半才发现依赖别的决策 | 按依赖树顺序逐个厘清 |
| Token 消耗 | 高(返工、重写、来回解释) | 低(一次问清楚,少走弯路) |
| 团队一致性 | 依赖个人习惯,问不问全看自觉 | 统一约束,自动执行 |
典型症状(没有 grill-me 时)
- AI 在没有澄清需求的情况下直接开始写代码,写完才发现方向完全跑偏
- 同一个功能反复被打回,原因不是代码质量差,而是"没考虑到 XX 场景"
- 团队里每个人对同一份需求的理解都不完全一样,AI 只是把这种模糊性又复制了一份到代码里
四、整个 grill 技术族
grill-me 并不是孤立存在的,它属于 mattpocock/skills 仓库中的一组"拷问"技术。理解整个体系有助于选择正确的工具。
技术族全景
grilling(核心原语 / primitive)
├── grill-me(无状态入口,手动触发)
├── grill-with-docs(有状态入口,手动触发,会写 ADR + 术语表)
└── batch-grill-me(批量版本,开发中,每轮问所有可用问题)
各组件对比
| Skill | 触发方式 | 状态 | 产物 | 适用场景 |
|---|---|---|---|---|
| grilling | /grilling 或 AI 自动触发 |
无状态 | 无 | 底层原语,通常不直接使用 |
| grill-me | /grill-me 手动触发 |
无状态 | 无 | 构建前的压力测试,快速对齐 |
| grill-with-docs | /grill-with-docs 手动触发 |
有状态 | ADR + 术语表(CONTEXT.md) | 需要留下决策记录的正式场景 |
| batch-grill-me | 手动触发 | 无状态 | 无 | 大型需求,每轮批量提问提升效率(开发中) |
在构建链中的位置
grill-me 处于构建链的最前端:
grill-with-docs → to-spec → to-tickets → implement → code-review
- grill-me / grill-with-docs 守在最前面,保证"做的是对的事"
- code-review 守在最后面,保证"事做对了"
- 少了前者,后者审得再严也只是在精修一个错误的答案
何时用哪个
- grill-me:方案大致正确但隐含未解决决策,想快速发现软肋
- grill-with-docs:方案模糊、领域语言未确定,需要留下 ADR 和术语表
- batch-grill-me:需求太大、一个一个问太慢,想每轮批量问所有可用问题
- wayfinder(上游):全新项目或大型功能构建,路线不明,先做决策地图
五、如何上手安装
通用安装命令
# 方法一:npx skills CLI(推荐,跨 Agent 通用)
npx skills add mattpocock/skills --skill=grill-me
# 方法二:手动克隆
git clone https://github.com/mattpocock/skills ~/.claude/skills/grill-me
各主流 AI IDE 安装
Claude Code
npx skills add mattpocock/skills --skill=grill-me
/skills list # 确认 grill-me 出现在列表中
/grill-me # 手动触发
Skills 目录位置:项目级 .claude/skills/grill-me/
Cursor
npx skills add mattpocock/skills --skill=grill-me --host cursor
Skills 目录位置:项目级 .cursor/skills/,重启 Cursor 后生效
Codex
skill-installer install mattpocock/skills/grill-me
OpenCode
mkdir -p ~/.agents/skills
git clone https://github.com/mattpocock/skills ~/.agents/skills/grill-me
Trae
npx skills add mattpocock/skills --skill=grill-me --host trae
CodeBuddy
npx skills add mattpocock/skills --skill=grill-me
更新
npx skills update grill-me
六、如何使用
基本使用流程
- 在你的 AI 编码助手(如 Claude Code)中打开项目
- 输入
/grill-me后跟上你的需求描述 - AI 开始按决策树分支逐个提问,每个问题附带推荐答案
- 你确认或纠正每个推荐答案
- 所有问题厘清后,AI 生成计划摘要
- 确认后进入代码实现阶段
验证 Skill 生效的检验法
测试 Prompt 1(正向触发):
/grill-me 我要给用户服务加一个手机号更新接口
预期行为:AI 不直接写代码,而是开始按分支提问(如"手机号是否需要短信验证码校验""被其他账号占用时如何处理"),每个问题都附带推荐答案,等你确认后才继续。
测试 Prompt 2(边界验证):
这个功能很简单,你直接写就行,不用问我
预期行为:AI 仍应至少确认关键的高风险分支(如唯一性冲突、鉴权归属),而不是完全放弃澄清——如果它完全妥协直接开写,说明约束没有生效。
七、实战案例
案例一:开发一个新接口
任务:为用户服务新增"手机号更新"接口(Java 17 + Spring Boot 3 + MySQL)
步骤:
# Step 1:触发 Skill
/grill-me 给用户服务加一个更新手机号的接口
AI 按分支提问(节选):
Q1/6:新手机号是否需要验证码校验?
推荐答案:需要,沿用现有短信验证码组件(复用注册流程的 SmsService)
(确认:是)
Q2/6:新手机号已被其他账号占用时如何处理?
推荐答案:返回 409 冲突,提示"该手机号已被使用",不做自动合并账号
(确认:是,账号合并单独立项)
Q3/6:更新成功后,旧手机号是否需要收到通知?
推荐答案:需要,发送一条"您的账号手机号已变更"短信到旧号码,用于安全提醒
(确认:是)
AI 生成计划摘要: - 接口:PUT /api/v1/users/{id}/phone - 校验:验证码 + 唯一性 + 旧号码通知 - 涉及表:users(phone 字段唯一索引) - 依赖:SmsService(已存在,复用)
最终实现代码:
@PutMapping("/{id}/phone")
public Result<Void> updatePhone(@PathVariable Long id,
@RequestBody @Valid UpdatePhoneRequest req) {
smsService.verifyCode(req.getNewPhone(), req.getSmsCode());
userService.updatePhoneWithUniqueCheck(id, req.getNewPhone());
smsService.notifyOldPhone(id, "您的账号手机号已变更");
return Result.success();
}
与无 Skill 对比:没有 grill-me 时,AI 大概率只写"更新手机号+校验格式"这一层最简单的逻辑,唯一性冲突、旧号码安全通知这类"产品认为是常识"的分支会被完全跳过。
案例二:修复一个存量 Bug
Bug:并发更新导致用户积分数据不一致
# Step 1:/grill-me 描述 bug 现象
# Step 2:AI 先探索代码库,定位现有的积分更新逻辑
# Step 3:AI 提问关键分支:乐观锁还是悲观锁?并发量级如何?是否需要分布式锁?
# Step 4:确认方案后再动手改代码
关键作用:修 Bug 最怕"头痛医头"——不问清楚并发场景和量级,直接加个 synchronized 看似解决了,线上多实例部署时完全没用。grill-me 把"选哪种锁"这种架构级决策提前到写代码之前拍板。
八、batch-grill-me(批量版本,开发中)
batch-grill-me 是 grill-me 的批量变体,核心区别在于提问策略:不是一次一个问题,而是每轮问所有可用问题。
核心逻辑
- 把需求映射为一棵设计树
- 每轮计算前沿(frontier):所有前置依赖已解决的问题
- 将整个前沿的问题一次性提出(编号 + 推荐答案)
- 用户回答后,已解决的决策推动前沿向外扩展
- 重复直到前沿为空
SKILL.md 源码要点
---
name: batch-grill-me
description: A relentless interview that asks every frontier question at once, round by round.
disable-model-invocation: true
---
特点:当某个前沿问题需要从环境中查找事实时,会派遣子代理去查找而不阻塞用户——只有依赖该事实的问题等待,其余问题照常提问。
九、价值与 ROI
软件工程视角
grill-me 的本质是把"事前需求对齐"变成一个结构化、可执行、不依赖个人自觉性的协作步骤。它解决的不是效率问题,是"信任问题"——你敢不敢把一个功能完全交给 AI 从头写到尾。
ROI 估算
| 场景 | 引入前 | 引入后 | 节省估算 |
|---|---|---|---|
| 新接口开发返工 | 平均 1-2 次因需求理解错误被打回 | 需求歧义在编码前解决 | 减少约 60% 的需求类返工 |
| 复杂 Bug 修复 | 方案选错重做 | 关键架构决策前置确认 | 减少一次完整重构成本 |
团队建议
个人 Skill 完全够用,但如果团队里每个人对"什么算清楚"的标准不一致,建议把它沉淀成团队共享 Skill,统一提问的深度。
十、注意事项与局限
-
grill-me 是无状态的:它不写文件、不留下工作产物。面试结束后对话历史就是你唯一的记录。如果需要持久化决策(ADR、术语表),使用 grill-with-docs。
-
只负责开工前:grill-me 保证"开工前大家理解一致",但写到一半 AI 遇到当初没被问到的小分支,仍可能擅自做主。需要后续 Skill(如实现过程中的约束守卫)来保证已拍板的决策在整个编码过程中始终具有约束力。
-
需要代码库探索能力:规则三(能从代码库找答案的不问用户)依赖 AI 具备读文件/搜索能力。如果使用的 Agent 缺少这些能力,这条规则会退化。
-
手动触发:
disable-model-invocation: true意味着 AI 不会自动触发 grill-me,必须用户主动输入/grill-me。这是有意为之——避免 AI 过度干预正常开发流程。 -
作者自己已转向 grill-with-docs:根据社区文章,Matt Pocock 建议在需要留下决策记录的场景使用 grill-with-docs,grill-me 更适合快速对齐。
十一、相关链接
| 资源 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/mattpocock/skills |
| grill-me 源码 | https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me |
| grilling 源码 | https://github.com/mattpocock/skills/tree/main/skills/productivity/grilling |
| grill-with-docs 源码 | https://github.com/mattpocock/skills/tree/main/skills/engineering/grill-with-docs |
| 官方文档 grill-me | https://aihero.dev/skills-grill-me |
| 官方文档 grilling | https://aihero.dev/skills-grilling |
| 官方文档 grill-with-docs | https://aihero.dev/skills-grill-with-docs |
| 中文解读(腾讯云) | https://developer.cloud.tencent.com/article/2702695 |
本文档整理于 2026 年 7 月 22 日,基于 mattpocock/skills 仓库 main 分支源码及社区相关文章综合编写。