关于 grilling
grilling 是通过访谈用户来达成设计共识的技能。它将决策组织成树,分轮提出当前可回答的问题,并附上建议和固定的回复格式。
主要功能
- 01将决策映射为设计树
- 02分轮提出前置条件已满足的问题
- 03为每个问题提供建议
- 04推迟依赖未决事项的问题
- 05采用一致的回复格式
适用场景
- 01在实现前澄清需求
- 02梳理相互依赖的产品决策
- 03发现尚未解决的假设
- 04引导结构化设计讨论
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tt-a1i/ matt-skills-with-to-goal --skill grilling安装后在 Claude Code 中输入/grilling确认已加载。
附带文件agents/openai.yaml
详细介绍
不懈地向用户提问,直到双方达成共识。将其绘制为一棵设计树:每个决策都分出依赖于它的后续决策。
按轮次推进这棵树。前沿是所有前置条件都已确定的决策:也就是现在可以提出、无需猜测尚未听到的答案的问题。每轮一次性提出整个前沿:为每个问题编号,并给出你的推荐答案。然后等待用户作答,再进入下一轮。
问题格式
每轮以固定标题开头,然后用同一种格式列出所有前沿问题。在每个编号前放置一个表情符号,作为结构锚点和问题类型标记,而不是装饰。
轮次标题:
🔥 **Round N** · K questions
问题(每个编号前放一个类型表情符号,各题之间用水平分隔线隔开):
<type> **Q1** - **<question title>**
<body — prose and/or multiple choices>
💡 <your recommended answer>
---
<type> **Q2** - **<question title>**
<body — prose and/or multiple choices>
💡 <your recommended answer>
轮次结尾(放在最后一个问题之后):
👇 Reply by number: `1) … 2) … 3) …`
类型表情符号(选择一个最符合该决策的类型)
| 类型 | 表情符号 | 适用场景 |
|---|---|---|
| 范围 / 是否纳入 | 🎯 | 边界、YAGNI、当前版本包含什么 |
| 权衡 | ⚖️ | A 还是 B,选择哪条路径 |
| 风险 / 故障 | ⚠️ | 可能出现的问题、滥用情形、回滚 |
| 命名 / 语言 | 🏷️ | 术语、词汇表、表达方式 |
| UX / UI | 👀 | 用户会看到什么或点击什么 |
| 数据 / 状态 | 🧩 | 模型结构、状态转换、架构 |
| 成本 / 性能 | ⚡ | 延迟、费用、规模 |
| 身份验证 / 信任 | 🔐 | 权限、多租户、密钥 |
| 时间安排 | ⏱️ | 时间、顺序、里程碑 |
| 质疑 | 🪞 | “你真的需要这个吗?” |
| 依赖项 | 🔗 | 阻碍因素、前置条件 |
| 开放 / 模糊 | 💭 | 尚未成形;需要确定方向 |
固定模板(每轮都使用此模板,不要临时编造其他格式):🔥 轮次 · 类型表情符号 + QN · 💡 推荐方案 · 👇 回复提示。
正文保持简洁——轮次标题行中最多可选用一个表示情绪的表情符号(例如,用于漫长的会话),问题正文中绝不要堆砌表情符号。
每个问题都要措辞明确,使得回答“是”就表示接受你推荐的方案。
轮次循环
每轮中,用户的回答都会重塑这棵树——已确定的决策会向外扩展前沿,并解锁依赖于它们的问题。重新计算前沿,然后提出下一轮问题。同一轮中,某个问题的答案若取决于另一个尚未确定的问题,则应放到后续轮次,而不是本轮。
查明事实是你的工作,绝不是用户的工作。当某个前沿问题需要环境中的事实(文件系统、工具等)时,派遣子 Agent 查明;不要向用户询问你本可以自行查找的信息。不要因此暂停其他问题:正在进行的探索属于尚未确定的前置条件,因此只有依赖该探索的问题需要等待子 Agent 报告;现在先提出前沿中的其余问题。决策由用户做出:将每项决策交给用户,并等待其回答。
当前沿为空时,会话才算结束:设计树的每个分支都已探讨,没有任何内容被默默假定。用户确认双方已达成共识之前,不要据此采取行动。