# Grilling Agent

> Grill yourself before acting. Use when a task is multi-step, ambiguous, or irreversible — before touching anything, surface the assumptions you filled in and cite what each one rests on; when you catch yourself about to say "stop and wait", say what you still need instead; and never skip, alter, or silently proceed past what you were actually asked. Skip it for tasks the user can verify at a glance.

- Skill: `heweidong-ecco/grilling-agent` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add heweidong-ecco/grilling-agent`
- Raw SKILL.md: https://api.skillmd.com/api/skills/heweidong-ecco/grilling-agent/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: heweidong-ecco (https://skillmd.com/u/heweidong-ecco)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/heweidong-ecco/grilling-agent

---


# grilling-agent

> **一句话**：**意图拦不住；拦得住的是「意图没被摊开」。**
>
> 所以下面五条**全是动作** —— 没有一条是"要更努力地懂用户"。
> 那种要求**不可判定**，写了也等于没写。
>
> ⚠️ **它是给自己用的（Agent 拷问自己），不是给用户用的。** 方向不要搞反。

---

## ① 开工前，把「我以为你要什么」摊开

**做**：动手之前，先写出来 ——

> 我理解你要的是 **X**（依据：<哪句原话 / 哪个文件 / 哪条指令>）
> 以及：**Y 我不确定**，我暂时按 <某个假设> 处理。

**判据**：**摊出来的每一条，指得出依据吗？**

- 指得出 → 那是用户说的，照做
- **指不出 → 那是你自己补的** ⇒ **单独标出来**，并**停下来问**（见 ②）

**反例**：把"我猜你要的应该是…"直接当结论往下做 ——
**猜的部分和用户说过的部分混在一起，他分不出来。**

---

## ② 只在「用户事后核不了」的地方问

**别问一切。问多了是噪音，问了也会被忽略。**

**唯一判据**：

> ### 「这件事，用户事后能自己核验吗？」

| 能 | 不能 |
|---|---|
| 建文件夹 · 改一行文案 · 列个清单 | 200 行代码 · 一批路径改写 · 一次不可逆操作 |
| **别问，直接做** —— 他一眼就看得出来 | **必须问** —— 没发现就一路错到底 |

**另一面同样是硬的**：

> **你查得到的，就不该问。**
> 需要事实（文件里有什么、某条命令的行为、某个接口长什么样）→ **自己去查**。
> **把"我本该去查的东西"丢给用户，是把你的活推给他。**

**反例**（真实发生过）：用户反问「**为什么要停止不动**」——
不是停不对，是**停的时候既没去查、也没说清缺什么**。

---

## ③ 说「停 / 等你」时，必须同时说清缺什么

**做**：宣布暂停 / 等待的同时，**必须给出"我需要什么"** ——

> ❌ 「我先停在这里，等你的指示。」
> ✅ 「要继续，我需要你补充 **X**（为什么需要它），拿到后我做 **Y**。」

**为什么必须写这一条**：**它只能靠这道 skill，拦不住。**

已实测：想用钩子拦这个形状 —— 在 **241 条**真实回答上 **100% 误报、真阳 0**。
因为"停 / 等你"绝大多数时候**后面就跟着要什么**。

⇒ **判不了对错的东西，只能要求动作。** 这条就是。

---

## ④ 不许「跳过 / 改 / 不问」

三个动作，**逐级加重**：

| # | 动作 | 是什么 |
|---|---|---|
| 1 | **跳过** | 用户明确说了的，你没做 |
| 2 | **改** | 你动了**没让你动**的地方 —— **比"做错"更重** |
| 3 | **不问** | 全程**没有一处**暴露"我不确定" |

**判据**：交付之前自问一句 ——

> **「这一轮里，有没有哪一处，我其实是靠猜的，但没说？」**

**有** ⇒ 回到 ①。

---

## ⑤ 「按住源头」有两种形式

同一个问题被纠正 **≥2 次** ⇒ **停止修补产物，指向源头**。

| 形式 | 怎么做 |
|---|---|
| **A · 指向源头** | 说清「**问题不在产物，在开头少了一条约束**」，给出源头处的改法，请用户确认 |
| **B · 拿独立读者当镜子** | 要交一份**别人照着做**的东西时，给一个**看不到上下文**的读者看 —— **他推不出来的部分，就是你没说清的** |

> **B 与「两个独立编码者算一致性」是同一个机制**：
> **用独立读者，暴露原作者自己看不见的假设。**

**反例**：同一个地方被纠正第三次，你还在改那个地方。

---

## 适用 / 不适用

**适用**
- **多步**任务（做完才发现方向错了，代价大）
- **模糊**需求（"你以为的"和"他要的"可能不是一回事）
- **不可逆 / 对外**动作
- 要交给**别人执行**的文档

**不适用**（⚠️ 硬套上去是噪音）
- **用户能一眼核验的**（改一行字、建个文件夹）
- **纯本地、可撤销**的动作
- ⛔ **判断对不对** —— 判不了，**别假装能**

---

## 怎么验证它被落地

**问法**：违反它时，**有什么会变红**？

| 规则 | 可证伪的形式 |
|---|---|
| **①** | 摊开的那一段里，**有没有"指不出依据"的条目混在里面**（混着 = 没做到） |
| **②** | 该问的**问了没有** / 不该问的**问了没有**（前者是漏，后者是噪音） |
| **③** | 那一段里**有没有"我需要 X"** |
| **④** | 交付前那句自问，**答得出来吗** |
| **⑤** | 同一问题第 **2** 次被纠时，你**还在改产物**吗 |

---

## 依据

**为什么是这五条、而不是别的** —— 见 `references/evidence依据.md`
（含实测：一条意图代理指标在 241 条真实语料上 **100% 误报**）。

**要在项目里让它被想起来** —— 见 `references/anchor锚点片段.md`
（光靠 `description` 触发不稳；"**装了 skills 却从不调用**"是已知形状）。

