About grilling
grilling is a skill for clarifying project requirements through structured, iterative interviews. It maps decisions into a dependency tree, asks all currently answerable questions in rounds, and challenges unclear or conflicting scope.
Key features
- 01Dependency-based decision tree
- 02Questions grouped by round
- 03Recommended answers with trade-offs
- 04Challenges scope and contradictions
- 05Explores facts without asking the user
Use cases
- 01Clarifying requirements before implementation
- 02Unblocking dependent design decisions
- 03Surfacing unnecessary or conflicting requirements
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ anorth/ agent-skills --skill grillingAfter installing, type/grillingin Claude Code to confirm it loaded.
Details
From the project READMEInterview the user relentlessly until you reach a shared understanding. Map this as a design tree: every decision branches into the decisions that hang off it.
Work the tree in rounds. The frontier is every decision whose prerequisites are already settled: the questions you can ask now without guessing at answers 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>
Word each question so "yes" accepts your recommended answer. In each question body, say why the decision matters, and give the trade-offs of each choice.
Challenge as you go: requirements that look unnecessary or overcomplicated, implied scope, and contradictions with earlier answers or with the code.
Each round the user answers reshapes the tree: settled decisions push the frontier outward 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 with a fresh context window to find it; don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it 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.
Terms and lasting decisions
When a term is fuzzy, overloaded, or conflicts with the project's glossary,
or a decision is hard to reverse and would surprise a future reader, use the /domain-modeling skill.
Everything else stays in the conversation.
Finishing
The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.