Skill Learning

grill-me

Pure wrapper detectedThis learning unit includes the thin entry skill and the single implementation skill that carries all core behavior.

1. Bilingual SKILL.md

左右滑动可直接切换英文版与中文版;两种语言按段落自动对齐。英文中的蓝色虚线词语可点击查看解释。共标记 11 处。

入口 skill:grill-me左右滑动切换语言 · 段落位置自动对齐
Call the Skill tool with "grilling".
调用 Skill 工具,并传入 “grilling”。

Entry SHA-256: caaf8b8de1684f96e26b28f3c29189db5c89cce4b73e1c93d86164f66ef88637

Path: skills/productivity/grilling/SKILL.md · View implementation source

真实实现 skill:grilling左右滑动切换语言 · 段落位置自动对齐
Interview the user relentlessly until you . Map this as a **design tree**: every decision branches into the .
Work the tree in **rounds**. The **frontier** is every decision : the questions you can ask _now_ 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.
Format a round like so:
``` ❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices> ➡️ <your recommended answer> --- ❓ **Q2** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices> ➡️ <your recommended answer> ```
Each round the user answers reshapes the tree: settled decisions and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a _later_ round, not this one.
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 , so only the 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.
The session is done when the frontier is empty: every branch of the design tree visited, . Do not act on it until the user confirms you have reached a shared understanding.
持续追问用户,直到双方达成共同理解。把它映射成一棵**决策树(design tree)**:每项决策都会分叉为依附于它的后续决策。
分**轮次(rounds)**推进这棵树。**前沿(frontier)**是所有前置条件已经确定的决策:也就是你现在可以提出、而无需猜测尚未听到的答案的问题。在一轮中询问整个前沿:给每个问题编号,并提供你建议的答案。然后等待用户回答,再进入下一轮。
一轮应采用如下格式:
``` ❓ **Q1** - **<问题标题>**:<问题正文,可以有多个段落,也可以包含多个选项> ➡️ <你建议的答案> --- ❓ **Q2** - **<问题标题>**:<问题正文,可以有多个段落,也可以包含多个选项> ➡️ <你建议的答案> ```
用户每回答一轮,都会重塑这棵树:已经确定的决策把前沿向外推进,并解锁依赖它们的问题。重新计算前沿,然后询问下一轮。如果某个问题的答案依赖于本轮另一个仍未解决的问题,它就属于_后续_轮次,而不是本轮。
查找_事实_是你的工作,绝不是用户的工作。当某个前沿问题需要来自环境(文件系统、工具等)的事实时,派出一个子代理去查找;凡是你自己能够查到的,就不要问用户。不要因此阻塞:正在进行的探索是一项尚未解决的前置条件,所以只有它下游的问题需要等待子代理报告;当前前沿里的其余问题照常询问。_决策_属于用户:把每项决策交给用户,并等待回答。
当前沿为空时,会话才算完成:决策树的每个分支都已经遍历,不留下任何未经说明的假设。在用户确认双方已经达成共同理解之前,不要据此采取行动。

Implementation SHA-256: 10ff989e7498b23b5acb49d5048f11dcd906757d2f79c5cdf8a00001381296f2

2. Why This Skill Is Clever

一句话核心机制

grill-me 用一个仅限用户主动调用的薄入口,把高干扰的压力测试交给 grilling;后者以决策依赖树计算每轮可安全并行提问的 frontier,直到隐含假设清零并由用户确认共同理解。

触发与边界

直接来源: grill-me 的 disable-model-invocation: true 表明入口只能由用户显式启动,正文则把全部工作委托给 grilling。实现 skill 面向计划、决策或想法的压力测试,并明确规定事实由 agent 查、价值决策由用户作;用户确认共同理解之前不得行动。

支持性上下文: 仓库插件清单把两者都列为 promoted productivity skills。grill-me 是 user-invoked 入口,grilling 是可被多个流程复用的 model-invoked 原语。这些调用分类来自仓库清单与文档,不属于两份原始 SKILL.md。

解释: 这不是两个重复 skill,而是把“谁有权启动”与“如何执行”拆成独立层。

为什么它是严格的纯套壳

入口正文只有一句:

Call the Skill tool with "grilling".

它没有自己的步骤、问题格式、决策规则、停止条件或输出定义;唯一依赖 grilling 承担全部核心行为。因此它同时满足:自身无主体流程、整体委托恰好一个 skill、被委托者拥有完整机制。普通 skill 在某一步调用另一个 skill,不应据此展开依赖原文。

信息架构与执行顺序

  1. 用户显式调用 grill-me,入口把任务交给 grilling。
  2. 实现把主题建模为 design tree,标出决策间依赖。
  3. 计算当前 frontier:只纳入前置决策已确定的问题。
  4. 一轮内询问整个 frontier,每题编号并附 agent 的推荐答案。
  5. 用户回答后重塑树、解锁下游问题,并重新计算下一轮。
  6. 需要环境事实时并行查证,只阻塞依赖该事实的分支。
  7. frontier 为空后仍不行动,先由用户确认已达成共同理解。

最巧妙的设计点

1. 权限策略与执行算法分层

disable-model-invocation: true

直接来源: 高强度访谈入口禁止模型隐式触发。解释: 作者没有削弱能力,而是把启动权交给用户;高成本、高干扰流程因此保持明确的 opt-in 边界,同时实现仍可被其他受控流程复用。

2. 用依赖关系代替固定问题清单

every decision branches into the decisions that hang off it

直接来源: 问题被组织成树,而不是线性脚本。解释: 后续问题由上游答案决定,可避免过早询问、无意义分支和基于猜测的回答。

3. frontier 同时保证效率与因果顺序

Ask the whole frontier in one round

直接来源: 同轮批量询问所有当前可回答的问题。解释: 它比一次只问一题更高效,又不会像一次问完全部那样跨越尚未解决的依赖,本质上是在做最大安全并行化。

4. 推荐答案降低用户负担,但不夺走决策权

give your recommended answer

直接来源: 每题必须附建议,再等待用户回答。解释: agent 先完成自己的分析并暴露判断,用户则保留最终取舍权,避免把思考成本全部反问给用户。

5. 事实与决策的责任边界清楚

Finding facts is your job, never the user's.

直接来源: 可查证事实不得反问用户,而决策必须交给用户。解释: 这同时防止懒惰提问与越权决策,是可靠人机协作的关键分工。

6. 局部等待而非全局阻塞

only the questions downstream of it wait

直接来源: 后台事实探索只阻塞其下游分支,其余 frontier 继续。解释: 异步研究被纳入同一个依赖模型,在不破坏正确顺序的前提下提高吞吐量。

7. 完成与授权是两道独立闸门

Do not act on it until the user confirms

直接来源: frontier 为空还不等于获准行动。解释: 将“问题已经问完”和“用户认可整体理解”拆开,防止 agent 把访谈结束误当作实施授权。

防失败机制与 trade-off

源中明确的不变量: 模型不得自行启动入口;同轮问题不能相互依赖;每题给推荐答案;事实由 agent 查、决策由用户做;frontier 为空后仍需用户确认。

权衡: 设计树过大时问题数量会膨胀;frontier 由模型维护,长会话中可能遗失隐式状态;批量问题提高吞吐却增加单轮认知负担;dispatch a sub-agent 还假定运行环境支持并行代理,缺少该能力时需降级为本地查询并保持分支阻塞。

可移植性风险: disable-model-invocation 与 Skill tool 是特定 harness 的调用语义。迁移到其他系统时,应保留“显式 opt-in 入口 + 可复用实现”的策略,而不是机械复制字段名。

可迁移原则

今日实践题

假设你要决定是否把一个内部工具开放给客户:请写出第一轮 frontier 的三个互不依赖问题,并标出哪个事实应由 agent 查询、哪些决策必须由用户回答。

Evidence note

入口权限、委托关系、设计树、frontier、事实/决策边界和确认闸门来自两份所选原文;promoted 与调用分组来自仓库清单和配套文档;关于最大安全并行、吞吐量和可移植性的判断属于设计解释。

Source & provenance
Repository path
skills/productivity/grill-me/SKILL.md
Generated
2026-09-07 08:22 Asia/Shanghai
Upstream commit
3cca18b368ae95cdbdebbff572ccafa662551015
Source
View on GitHub