# Grilling

> Grilling

- Skill: `rollrollroll/grilling` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add rollrollroll/grilling`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rollrollroll/grilling/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: RollRollRoll (https://skillmd.com/u/rollrollroll)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/rollrollroll/grilling

---


# Grilling

持续深入地访谈用户，直到双方形成共同理解。

将整个问题建模为一棵 **决策树（design tree）**：
每一个决策都会进一步分支出依赖于该决策的后续决策。

按照 **轮次（rounds）** 推进这棵树。

所谓 **前沿（frontier）**，是指所有“其前置条件已经确定”的决策，也就是：
你现在已经可以提出、并且不需要猜测尚未获得答案的信息的问题。

在每一轮中，一次性提出当前前沿上的所有问题：

- 为每个问题编号；
- 同时给出你推荐的答案。

然后等待用户回答，再进入下一轮。

每个问题应使用如下格式：

❓ **Q1** - **<问题标题>**：<问题正文，可以包含多段内容，也可以提供多个选项>

➡️ <你的推荐答案>

用户每完成一轮回答，都会重新塑造这棵决策树：

已经确定的决策会推动前沿继续向外扩展，并解锁那些依赖于这些决策的问题。

重新计算当前前沿，然后提出下一轮问题。

如果某个问题的答案依赖于“本轮中另一个尚未回答的问题”，那么这个问题应该放到 **后续轮次**，而不是在当前轮次中一起提出。

查找 **事实（facts）** 是你的工作，而不是用户的工作。

当某个前沿问题需要从当前环境中获取事实，例如：

- 文件系统；
- 工具；
- 代码仓库；
- 运行环境；
- 其他可查询的信息；

应该派遣子 Agent 去查找这些事实，而不是向用户询问那些你自己能够查到的信息。

不要因为事实查询而阻塞整个访谈流程。

一个正在执行中的探索任务，可以视为一个“尚未解决的前置条件”。

因此：

- 只有依赖这个探索结果的后续问题需要等待；
- 当前前沿中其他不依赖该结果的问题，仍然应该立即向用户提出。

**决策（decisions）属于用户。**

每一个真正需要做选择的决策，都应该明确交给用户回答，并等待用户作出选择。

当 **前沿为空** 时，本次会话结束：

- 决策树的所有分支都已经被访问；
- 不再存在尚未讨论的问题；
- 不再存在任何被默认接受但没有明确确认的假设。

在用户确认双方已经形成共同理解之前，**不要开始执行这个计划或决策。**
