grilling
Skill3 starsChanged 10 days agoMITView on GitHub
Use when a plan, spec or design still has unresolved decisions, when the user says "grill me" or asks to be interviewed, when requirements feel fuzzy or underspecified, or when `brainstorming` reaches its question phase.
193 other projects use a version of this.
Adopted by
Most recently taken up by
- xiaoxiaosrm/dsh-mattpocock-skillstheir own version, first seen Nov 8, 2026
- wowyuarm/dsh-agent-teamtheir own version, first seen Nov 8, 2026
- Contexera/dsh-agent-teamtheir own version, first seen Nov 8, 2026
- awslabs/agentic-developer-platformtheir own version, first seen Nov 8, 2026
- microsoft/frontier-agentic-modernization-rvastheir own version, first seen Nov 8, 2026
- The-Vibe-Company/quivrtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use capture-learning-tools, design-frontend-dev and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
The-Vibe-CompanySkillcapture-learning-tools
Turn technical conversations, bugs, CI failures, review comments,
Also in 5 projects that use this
The-Vibe-CompanySkilldesign-frontend-dev
Clean Impeccable frontend design skill. Use when the user wants to
Also in 5 projects that use this
RoentekSkillloop-me
Grill me about specs for the workflows I want to build, within this workspace.
Also in 58 projects that use this
liufeng1976Skillsetup-ts-deep-modules
Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.
Also in 42 projects that use this
FabienDehopreSkilldecision-mapping
Turn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time.
Also in 8 projects that use this
AWSSkillwizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
Also in 136 projects that use this
- +3 more from The-Vibe-Company
Other versions193 projects use a version of this.
Word for word · 1
- andreymudri/claude-teammates★ 3100% same
Edited · 0
None found.
Wrote their own version · 192
- mattpocock/skills★ 309ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- windmill-labs/windmill★ 18ksame name
- GreyDGL/PentestGPT★ 16ksame name
- formbricks/formbricks★ 13ksame name
- PX4/PX4-Autopilot★ 13ksame name
- ArcReel/ArcReel★ 6.3ksame name
- vinvcn/mattpocock-skills-zh-CN★ 5.5ksame name
- pollinations/pollinations★ 5.3ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- brainstormingSkill
- executing-plansSkill
- finishing-a-development-branchSkill
- fleet-lifecycleSkill
- fleetmates-configSkill
- fleet-supervisionSkill
- parallel-executionSkill
- phase-gateSkill
- receiving-code-reviewSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- using-fleetmatesSkill
- writing-plansSkill
- writing-skillsSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 69 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Ask up to four questions, as one AskUserQuestion call.
- Distinctive: line 28
If the user typed their own answer, check what it reopened and move those entries back to
- Distinctive: line 30
When a branch closes, restate the ledger.
- Very specific: line 90
If the repository, the docs or the git history can answer it, go read them and state what you found: "the gate config already has a checks …
- Very specific: line 99
Keep a ledger visible across the interview: restate it in the message that closes a branch, and for an interview long enough to lose it, …
- Distinctive: line 128
Before declaring the interview done, walk this list on purpose and put anything untouched into the ledger as open or deferred:
- Distinctive: line 146
Stop when no branch is open and the user confirms the ledger reads complete.
- Distinctive: line 173
If the subject is too large to hold — several independent subsystems, or a tree you cannot see the bottom of — say so and split it into …
“Common” is measured: kept by at least 6 in 10 of the 69 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Grilling Requirements
Interview the user until the design has no unresolved branches left — not until you run out of questions.
When to use
A feature, spec or plan is described well enough to start arguing about, and badly enough that
two competent implementers would build different things. Also whenever brainstorming reaches
step 2: that step's question phase is this skill.
The loop
Each round, in order:
- Take the top entry of the OPEN bucket — the one blocking the most below it — and, walking down the bucket, up to three more entries whose answers do not depend on it or on each other.
- Fact-find first: if the repository, docs or history answer one of them, read them and state the answer instead of asking. Refill the round from OPEN the same way.
- Ask up to four questions, as one
AskUserQuestioncall. - Record every answer in the ledger: move each entry to RESOLVED with the option chosen, and add any new child decisions the answers opened to OPEN, in blocking order.
- If the user typed their own answer, check what it reopened and move those entries back to OPEN before continuing.
- When a branch closes, restate the ledger.
Repeat until the interview meets its stop condition below.
The design tree
A feature is a tree of decisions, not a flat list of unknowns. Every decision opens the decisions that hang off it: choosing a storage location opens who owns writes, which opens what happens on a concurrent write. Walk it branch by branch — resolve a parent before the children that depend on it, and finish a branch before starting the next. Scattered questions produce answers that contradict each other, because each was answered against a different imagined design.
A round of four does not change that order; it only fills the round with what is already askable. Siblings under a resolved parent are the natural batch: once storage is decided, who owns writes and how long entries are kept can be answered side by side. A child whose options depend on an answer in this round waits for the next round, because its options cannot be written until the parent is known. Questions from another branch may fill a round only when nothing in the current branch is askable and their answers cannot change each other.
The shape of one turn
Ask with AskUserQuestion, never in prose. Up to four questions per AskUserQuestion call, one
call per turn — and never put a question in the same call as a question it depends on, because
the user answers both against a parent that is not settled yet. Ask fewer when fewer are
independent; never pad a round to reach four with a question the ledger does not need yet. Each
question keeps its own short header, so the user can tell the decisions apart at a glance. Prose
hides what the decision turns on, the same reason using-fleetmates refuses to put the fleet-or-inline choice in prose: a
paragraph reads as commentary, options read as a decision with consequences attached.
Each question declares two to four options, three by default, one of them flagged as your own
recommended answer so agreeing is a single click. Every option must be a real, distinct position:
a genuinely binary decision gets two, and padding it to three with a strawman turns it back into
a prose question wearing options. The question text says why this matters and what breaks if it
is wrong; each option's description says what choosing it commits them to downstream, which later
branches of the tree it opens and which it closes — that is the payoff of walking the tree in
order. You do not declare a "something else" option: Claude Code appends a free-text entry to
every AskUserQuestion prompt itself, so the user can always type an answer none of yours
offered, and a typed answer is a new branch that can reopen what was already resolved.
AskUserQuestion, one of the questions in a round (headerLedger):Where does the run ledger live? This decides who can corrupt it, and it sets up who may write it during a fix round.
- label
Worktree—.fleetmates/<run-id>/in the working tree. Simplest, but a task branch can reach it, so "who may write it" stays open and needs a guard.- label
Common dir (recommended)— one copy every worktree shares. Closes the concurrent-write branch, and makes retention a git-cleanup question rather than a new one.- label
Temp dir— survives a branch reset, lost on a fresh clone, so it reopens resume and rebuild as branches of their own.
Labels stay short and plain, with the recommendation marked inside the label text: a label is emitted verbatim, so markdown in it reaches the user as literal asterisks. No fourth entry is declared for the user's own words; the prompt already offers one.
Where the orchestrator has no AskUserQuestion tool, offer the options as a numbered list and
read the user's pick, marking the recommended one the same way.
Fact-find rather than ask
If the repository, the docs or the git history can answer it, go read them and state what you
found: "the gate config already has a checks array, so I am assuming the new check is a
fourth entry, not a new file." Only ask what genuinely lives in the user's head — intent,
priorities, constraints you cannot observe, what "good" looks like. Never hand the user a
lookup you could have done; each one spends a round and teaches them that answering you is
expensive.
The open-questions ledger
Keep a ledger visible across the interview: restate it in the message that closes a branch, and
for an interview long enough to lose it, keep it in a scratch file and name the path — the design
doc's self-review in brainstorming assumes the ledger is still there to check against. It is what
makes the remaining gaps countable instead of a feeling.
RESOLVED
- Ledger location: git common directory (user picked option 2, this session)
- Retention: never auto-deleted (user typed their own answer, this session)
OPEN (ordered — each blocks the ones below it)
1. Who writes the ledger during a fix round?
2. What does a reader do with a half-written entry?
DEFERRED
- Digest output format — needs a prototype to judge readability.
Reopens when the first multi-phase run produces real output.Three buckets, nothing else. Resolved carries the decision, who decided it, and which option was chosen — including when the user typed one of their own rather than picking — so a later reader can tell a user ruling from your assumption. A typed answer is a new branch: before the next question, check whether it has reopened anything already resolved, and move those entries back to Open. Open is ordered by what blocks what, so the next question is always the top entry. Deferred carries the reason and the trigger that reopens it, so deferral is a decision rather than a leak.
Coverage sweep
Before declaring the interview done, walk this list on purpose and put anything untouched into the ledger as open or deferred:
- Purpose, and the success criteria that say it worked
- Users, and the moment that triggers the feature
- Inputs, outputs and interfaces
- Data and state: what exists, who owns writes
- Failure modes and error handling
- Edge cases and limits
- Concurrency and ordering, where more than one actor touches the same thing
- Migration and backwards compatibility
- Security and trust boundaries
- Observability: what someone sees when it misbehaves
- Testing strategy
- Explicit non-goals
Stop condition
Stop when no branch is open and the user confirms the ledger reads complete. A question count is never a valid stop condition — not five, not twenty. Finishing early with open branches hands the unknowns to the implementer, who will resolve them silently and differently.
What is not grillable
Low-fidelity decisions resolve well in conversation: naming, routes, data shape, ordering, ownership, error behaviour. High-fidelity ones do not — "how should this feel", "is this fast enough", "is the output readable" are answered by a prototype or a spike, and a user pressed for an answer will invent one that neither of you can trust. Park those in Deferred with the experiment that would settle them.
Where this ends
The ledger is the handoff; name where it goes before you stop.
- Arrived from
brainstorming— return to its step 3 carrying the ledger. Its resolved decisions become the design, its deferred items appear in the design doc with their triggers. - Invoked directly against a written plan or spec — hand the ledger to
writing-plans, so the resolved decisions land in the plan rather than in the chat history. - The gaps turn out to be design-level — a greenfield request with no design behind it is not
an interview short of a few answers. Route into
brainstormingand run the question phase from there. Grilling onward would carry a fuzzy request straight to a plan and skip the approval gatebrainstormingexists to enforce, which no amount of resolved detail substitutes for.
Scope guard
If the subject is too large to hold — several independent subsystems, or a tree you cannot see the bottom of — say so and split it into grillable chunks, then grill the first chunk. A long interview over a sprawling subject degrades: the later answers stop being consistent with the earlier ones.
Red flags
| Thought | Reality |
| "I'll batch these five questions into one message" | The tool takes four, and prose takes none. Past four, the ones you lose are the ones the user had no opinion on yet — the ones worth a round. |
| "I'll batch a question with the one it depends on, to save a round" | The user answers the child against a parent they have not chosen yet, so one of the two answers is for a design that will not exist. Ask the parent now and the child next round. |
| "I'll just ask where the config lives" | If a file answers it, reading it costs you a tool call and asking costs the user a round. Read it and state what you assumed. |
| "Five questions in, that feels like enough" | A count is not a stop condition. Read the ledger: if a branch is open, the interview is not done. |
| "They don't seem sure, I'll press until they decide" | An extracted answer to a high-fidelity question is noise with a confident tone. Defer it with the experiment that would settle it. |
| "This question is too open-ended for options" | If you cannot name even two real positions, you do not understand the branch well enough to ask about it yet. Fact-find first, then ask. |
| "That detail can be figured out during implementation" | Then it will be, by whoever gets there first, invisibly. Put it in the ledger as deferred, with the trigger that reopens it. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

