1实现原理 · 为什么它能做到
仓库内唯一 model-invoked 的 grilling 家族原语:frontmatter 刻意不带 disable-model-invocation,openai.yaml 也没有 policy 块,因此模型/其他 skill 可自动调用它;仓库规则用双清单反推判定它属于 model-invoked。
AGENTS.md
Every `SKILL.md` is either user-invoked (`disable-model-invocation: true` plus `policy.allow_implicit_invocation: false` in `agents/openai.yaml`, reachable only by the human) or model-invoked (model- or user-reachable).
注:对比同仓库 user-invoked skill(如 grill-me 的 disable-model-invocation: true + allow_implicit_invocation: false 双清单),grilling 两者皆无 → 按仓库定义落入 model-invoked,可被上层 skill 以 Skill tool 调用。
拷问机制 = design tree + frontier rounds:把决策建模成依赖树,每轮只问『前置已定、现在能答』的整层 frontier,且一轮内问题彼此独立。
skills/productivity/grilling/SKILL.md
Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled: the questions you can ask _now_ without guessing at answers you haven't heard yet. Ask the whole frontier in one round: number each question and give your recommended answer. Then wait for the user's answers before the next round.
注:这里在做什么:用依赖排序保证不提前问『取决于未听答案』的问题;整层一轮问完降低来回轮数(docs 称 13 问约 3 轮)。
每题强制附模型自己的推荐答案,用 ❓/➡️ 死格式编号输出,用户可按编号整轮回答。
skills/productivity/grilling/SKILL.md
❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices> ➡️ <your recommended answer>
注:格式模板以内嵌代码块形式写在 SKILL.md 正文;docs 页补充说明其已知毛边:推荐答案偶尔会与问题措辞打架,此时应『答推荐答案并说明』。
事实查证与决策权硬分离:facts 归 agent(环境事实派 sub-agent 查,且不阻塞本轮其余问题),decisions 归用户。
skills/productivity/grilling/SKILL.md
Finding _facts_ is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it; don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report; ask the rest of the frontier now. The _decisions_ are the user's: put each to them and wait.
注:CHANGELOG 1.1.0 记录该拆分动机:防止其他 skill 在 resolve-the-ticket 框架里跑 grilling 时『顺手替用户答了决策』(自问自答 = 破坏 HITL)。
终止条件与行动门禁显式化:frontier 空即会话完成;用户确认 shared understanding 前不得动手实施。
skills/productivity/grilling/SKILL.md
The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.
注:docs 页把它称为 confirmation gate:frontier 空了不算完,用户点头才算;弱模型仍可能把『问到共识』塌缩成两三问加个提纲。
它是被复用的引擎而非独立入口:README 把 grilling 列为 Model-invoked,并点名它是多个 user-invoked/编排 skill 的公共面试原语。
README.md
**[grilling](./skills/productivity/grilling/SKILL.md)**: Interview the user relentlessly about a plan, decision, or idea until every branch of the design tree is resolved. The reusable interview primitive behind `grill-me`, `grill-with-docs`, `triage`, `wayfinder` and `improve-codebase-architecture`.
注:docs/productivity/grilling.md 亦称 'It is the only skill in the grilling family that is model-invoked';ask-matt 路由页把它纳入缺失路由修复。
2核心能力
01model-invoked 面试原语:模型或上层 skill 可自动按需调用,无需用户输入斜杠命令
02设计树 + 整 frontier 一轮多问(编号 + 每题推荐答案)
03每轮按用户答案重算 frontier,只解锁『现在能答』的下游问题
04事实查证委派 sub-agent,后台探索不阻塞本轮其余问题
05显式收敛与行动门禁:frontier 空 + 用户确认 shared understanding 才可实施
4风险提醒 风险提醒:绿色 · 放心使用
风险提醒:绿色 · 放心使用
- 收敛质量依赖模型提问水平 — docs 页自述弱/非 frontier 模型会把『问到共识』塌缩成两三问加提纲,或问完直接开始干活('It ran out of questions and started building');需要宿主或用户在 CLAUDE.md 里补禁止未经许可实施的防线。
- 推荐答案构成锚定/引导 — 每题强制 ➡️ 推荐答案,被动用户易被带节奏;docs 明确把 'nodding along'(点头附和)列为要避免的行为。
- frontier 是模型判断而非计算图 — docs 页自述诚实上限:一轮内两问可能事后发现应互相影响,没有内置护栏,只能靠下一轮重开分支纠正。
- model-invoked 意味着自动触发 — 与 user-invoked 的 grill-me 不同,模型可在匹配时自行调用 grilling 开始拷问;用户若不想被打断需在宿主侧约束(skill 自身无开关)。
- sub-agent 授权以宿主权限读环境 — 指示派 sub-agent 查文件系统/工具事实,读取范围取决于宿主对该会话的工具授权。
风险提醒:绿色,放心使用。纯指令型 prompt skill:无脚本执行、无网络外发、无凭证读取、无本地文件写入;model-invoked 意味着模型可在匹配场景自动使用,但行为仍只是『提问-等待』,无任何代码级接触面。注意点仅为推荐答案的对话性引导与 sub-agent 读环境的宿主权限边界。
5第二遍独立确认
- [ok] model-invoked 判定(无 disable-model-invocation / 无 policy) — frontmatter 只有 name/description;openai.yaml 仅 interface 块;与 AGENTS.md 对 user-invoked 的定义(双清单)对照成立;README 明确列在 Model-invoked 组。
- [ok] design tree / frontier rounds 机制存在 — SKILL.md 原文含 design tree、frontier、'Recompute the frontier and ask the next round' 全机制描述;docs 页解释一致。
- [ok] ❓/➡️ 固定格式与推荐答案 — SKILL.md 内嵌代码块模板逐字存在;docs 页补充了『推荐答案与问题打架』的已知毛边。
- [ok] facts=agent / decisions=user 分离 — 原文整段存在;CHANGELOG 1.1.0 #464 记录拆分动机,与现行文吻合。
- [ok] 终止条件 + 用户确认门禁 — 原文 'The session is done when the frontier is empty…Do not act on it until the user confirms' 存在。
- [ok] 外部依赖清单为空 — 2 文件 token 扫描零命中;SKILL.md 只引用宿主通用能力(filesystem、tools、sub-agent、Skill tool),无可点名 CLI/API/网络端点。docs 页内的 aihero.dev/字典链接是说明性 URL,非被调用端点。
- [ok] 无脚本/无写入/无凭证 — 文件清单仅 2 个;写文件类 token 零命中;无 env/keychain/文件凭证读取指令。
- [ok] 被复用叙事与仓库一致 — README 点名 grill-me/grill-with-docs/triage/wayfinder/improve-codebase-architecture 复用;docs/engineering/ask-matt.md 将其列为路由修复项,均与 SKILL.md 是薄原语一致。
6结论
适合:适合任何需要在上层 skill(grill-me/grill-with-docs/triage/wayfinder/improve-codebase-architecture)里复用『拷问式澄清』的场合,也适合想给自定义 skill 加面试步骤的作者直接调用;写 skill 的人应把 grilling 当原语而非复制粘贴。用户也可直接 /grilling 获得纯拷问会话。
不适合:不适合想要状态产物的场景(写 CONTEXT.md/ADR 用 grill-with-docs;写 workflow 规格用 loop-me;非代码主题且不想写文件用 grill-me);不适合无法用对话回答的问题(应转 prototype 要实物反馈);不适合希望 skill 自己验证事实/落地实施的场景——它只问、只等,实施要另行放行。
安装 agent 直装可复制
① 本站镜像 更新 2026-09-09
方式 A · 人下载镜像包下载 grilling.tar.gz
sha256:
方式 B · JSON 格式安装指南,复制给 agenta293bd6f274ff9b8…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② 上游 GitHub · 原始来源
来源信息 GitHub 原始
作者 / 仓库mattpocock / mattpocock/skills
原始 GitHubmattpocock/skills ↗
Stars257659
最近推送2026-09-04
本 skill commit
3cca18b368许可MIT(GitHub API spdx MIT;仓库根 LICENSE: Copyright (c) 2026 Matt Pocock)
本站信息
收录日期2026-09-06
分类基础工具与工作流
侦查报告2026-09-06 · 2 遍
本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。