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管控建议与判定依据
建议配套管控措施
面向 Agent
可自动加载
面向管理者
登记来源与版本
判定依据(文件路径与关键语句摘要)
- SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
审计说明: 。纯指令型 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 自己验证事实/落地实施的场景——它只问、只等,实施要另行放行。
Install Agent-Ready
① Verified Mirror 2026-09-09
Option A · Direct DownloadDownload grilling.tar.gz
sha256:
Option B · Copy Guide for Agenta293bd6f274ff9b8…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② Upstream GitHub
GitHub Repo ↗
Pinned to commit 3cca18b368.