---
name: generic-grill-me
description: '任务有任何不清楚的地方时，先向用户大量提问，问到没有盲区并得到确认，再开始执行。用于需求模糊、信息不全、有多种理解、涉及取舍的任务，防止 agent 按自己的猜测做事。关键词：grill me、澄清需求、追问、确认需求、需求不明确、先问清楚再做、ask clarifying questions。'
type: unit
specificTo: generic
---

# Grill Me：问清楚再动手

任务里只要有一处不清楚，就先停下来问用户。问到没有盲区、用户确认后，才执行。

目的：不让 agent 用自己的估计、想法或猜测补全用户没说的内容。

## 使用时机

- 任务描述有缺口：目标、范围、输入、输出、约束、验收标准里有任何一项没说清。
- 一句话可以有两种以上理解。
- 需要在多个方案之间取舍，而用户没有表态。
- 你发现自己在想“应该是这样吧”“大概这样就行”。这就是要问的信号。
- 用户直接说“grill me”“先问清楚再做”。

任务的每个维度都已明确、只有一种做法时，不需要本 Skill。不要为了提问而提问。

## 工作流

1. **冻结执行。** 从现在起不改文件、不跑有副作用的命令、不开始“显然没问题的那一部分”。只允许只读操作：读文件、搜索代码、看文档。
2. **先查再问。** 能从仓库、文件、文档、配置里查到的事实，自己去查，不要问用户。只问查不到的内容：用户的意图、偏好、取舍、验收标准。
3. **列出所有盲区。** 对照 [提问维度清单](./references/question_dimensions.md) 逐项检查。对每个维度问自己：“我猜错了，用户会不会返工？”会，就列入问题。
4. **按依赖顺序提问。** 上游决定先问，下游决定后问。互相独立的问题放在同一轮，一轮不超过 5 个。
   - 有向用户提问的工具时，优先用它。没有就直接在聊天里问。
   - 每个问题给出具体选项，并标出你推荐的选项和一句理由。
   - 推荐项只是建议，不是决定。用户没确认前，它不算数。
5. **每轮回答后更新台账。** 台账分三栏：已确认、待确认、用户明确授权我决定。回答可能带出新问题，把它们加入待确认。
6. **循环第 4、5 步，直到“待确认”为空。** 不因为“差不多够了”而停。回答含糊时继续追问，处理方式见 Gotchas。
7. **交付需求确认清单。** 用 [确认清单模板](#需求确认清单) 汇总所有已确认内容，请用户确认或修改。只有用户明确回复“确认”，才算通过。
8. **开始执行。** 严格按确认清单做。执行中遇到清单没覆盖的新歧义，停下来，回到第 4 步，不要自己决定。

## 需求确认清单

```markdown
## 需求确认清单

- **目标**：……
- **范围（做）**：……
- **边界（不做）**：……
- **输入 / 输出**：……
- **约束**：……
- **验收标准**：……
- **已确认的决定**：
  1. 问题 → 用户的选择
- **用户授权我决定的事**：
  1. 事项 → 我将采用的做法（用户已同意）

请回复“确认”，或指出要修改的地方。
```

没有内容的项写“无”，不要省略这一项。

## Gotchas

- **不要静默采用推荐项或默认值。** 你觉得“显然”的默认值，恰恰是最容易猜错的地方。必须问，并等用户确认。
- **不要把没回答的问题当作同意。** 用户漏答某个问题时，再问一次。
- **“随便”“你定”“都行”不算已确认。** 回问一次：“这件事我按 X 做，可以吗？”用户同意后，记入“用户授权我决定的事”。
- **不要问查得到的事实。** 问“项目用什么测试框架”会浪费用户时间，也说明你没有先看仓库。
- **不要问开放式大问题。** “你想要什么样的？”太空。改成“A、B、C 三选一，我推荐 B，因为……”。
- **不要边等边做。** 等待回答期间不要动手。提前做的部分可能要全部推翻。
- **不要在清单确认前宣布“信息已足够”。** 是否足够，由用户确认清单来判定，不由你判定。
- **不要用问题淹没次要细节。** 先问会改变结果的大问题，再问细节。同一个答案能覆盖的多个细节，合并成一个问题。
- **本 Skill 不改变 Task Level 和权限。** 它只决定“先问后做”，不放宽任何操作权限。

## 故障处理

| 问题 | 处理方式 |
| --- | --- |
| 用户不想回答太多问题 | 说明每类未确认项猜错的代价，让用户选择：继续回答，或对某些事项明确授权你决定。授权要记入清单。 |
| 用户的回答互相矛盾 | 指出矛盾的两处原话，请用户选一个。 |
| 用户回答后又改主意 | 更新台账。检查这次改动是否让已确认项失效，失效的重新提问。 |
| 无法向用户提问（非交互环境） | 不执行。输出完整的待确认问题列表和推荐项，说明需要用户回复后才能继续。 |
| 执行中发现清单漏了内容 | 停止。只问这个新缺口，补进清单，再继续。 |
