grilling
Skill5 starsChanged 10 days agoMITView on GitHub
Interview the user one decision at a time until reaching shared understanding, resolving each branch of the decision tree with recommended options and trade-offs. Use when a plan, design, or idea needs its soft spots found and forced into the open, or when another skill needs the interview protocol.
193 other projects use a version of this, 11 of them edited.
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 7 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
LesaniSkillwriting-beats
Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.
Also in 58 projects that use this
- +3 more from The-Vibe-Company
Other versions193 projects use a version of this.
Word for word · 0
None found.
Edited · 11
- GreyDGL/PentestGPT★ 16k10% same
- Tiberriver256/mcp-server-azure-devops★ 39910% same
- ninehills/skills★ 28010% same
- heyongjun666/AICU-Graph★ 20010% same
- sampleXbro/agentsmesh★ 2710% same
- gaia-research/gaia-skill-tree★ 2212% same
- panando/APIBypass★ 810% same
- yuchenmiao04/My_skills★ 810% same
- Roentek/Claude_Code_Boilerplate_Framework★ 410% same
- grasscaograss/AwesomeWeldoneSkills★ 210% same
1 more not listed
Wrote their own version · 182
- mattpocock/skills★ 309ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- windmill-labs/windmill★ 18ksame 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
- withcoral/coral★ 4.9ksame name
172 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 repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- architecture-satisfactionSkill
- autopilotSkill
- browser-testSkill
- chatter-scoutSkill
- closeoutSkill
- codebase-designSkill
- code-reviewSkill
- code-smells-auditSkill
- commitSkill
- dependency-auditSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- fix-ci-failuresSkill
- fix-github-issuesSkill
- fix-nightwatch-issuesSkill
- fix-posthog-issuesSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- harness-toolsSkill
- housekeeperSkill
- implementSkill
- implement-specSkill
- improve-codebase-architectureSkill
- laravel-herd-worktreesSkill
- panelSkill
- prototypeSkill
- prSkill
- prune-testsSkill
- releaseSkill
- repository-cleanupSkill
- researchSkill
- resolve-review-commentsSkill
- resolving-merge-conflictsSkill
- retroSkill
- run-afterSkill
- scratch-cleanupSkill
- scratch-statusSkill
- setupSkill
- sweepSkill
- tddSkill
- teachSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- triage-github-prSkill
- triageSkill
- ui-designSkill
- upgrade-planSkill
- verifySkill
- wait-whatSkill
- wayfinderSkill
- which-skillSkill
- wizardSkill
- writing-for-agentsSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 6 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 70 edited versions we read keep these.
6
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
- Distinctive: line 19
Ask exactly one question at a time.
- Distinctive: line 21
After the user answers, update the decision ledger and infer any downstream decisions that answer implies.
- Distinctive: line 32
Only a decision that survives all three rungs is a question.
- Distinctive: line 36
Ask only about what the user's own context can settle:
- Very specific: line 61
Before asking anything, check the ledger.
- Distinctive: line 71
If you cannot state the situation plainly, you do not yet understand the decision well enough to ask about it.
- Very specific: line 96
When the options are artifacts to compare side by side (a signature, a schema, a payload, a screen layout), put each one's snippet or ASCII …
- Distinctive: line 112
Before the plan resolves, sweep the branches grills skip.
- Very specific: line 121
Before ending, settle or explicitly abandon every deferred branch.
“Common” is measured: kept by at least 6 in 10 of the 70 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
Interview the user about a plan, design, product idea, implementation approach, or architectural choice until there is shared understanding: relentless on the decisions that genuinely need them, silent on the ones you can settle yourself. Do not act on the plan until the user confirms shared understanding has been reached.
Walk the decision tree one branch at a time. Resolve dependencies between decisions in order. The frontier is every open decision whose prerequisites are already settled; the questions that can be asked now without guessing at answers not yet given. For each question, provide a recommended answer and concrete alternatives with trade-offs.
Finding facts is never the user's job. If a question can be answered by exploring the environment (codebase, files, docs, tools, or current implementation) inspect that context instead of asking. When a fact needs real reading, resolve it through the research skill's dispatch rules (its sub-agent must complete inside this session), mark the branch deferred, and keep interviewing the rest of the frontier.
Core Loop
- Identify the next unresolved decision that matters.
- Try to settle it yourself: walk the ladder in Settle it yourself first. If any rung settles it, record the decision and move on without asking.
- Ask exactly one question at a time. Asking multiple questions at once is bewildering.
- Lead with the recommended option and explain the trade-off for every option.
- After the user answers, update the decision ledger and infer any downstream decisions that answer implies.
- Continue until the plan is resolved, the user stops the grill, or the remaining uncertainty cannot be resolved without external information.
Settle it yourself first
The user's attention is the scarcest thing in the session, so a question has to earn its place: the answer must change the work and nothing cheaper may settle it. Before asking anything, walk this ladder and stop at the first rung that settles the decision.
- Context: codebase conventions, an existing implementation of the same shape, project docs, the ledger, the effort's standing notes. Match what is already there rather than asking which way to do it.
- Established practice: the conventional answer for this stack, framework, or domain. Where the ecosystem has already settled a question, take the settled answer; never make the user re-derive it.
- Default bias: where practice is silent or genuinely split, take the option that is more reusable, more configurable, and less duplicated, and that avoids the smells in the
code-smells-auditskill's index. That catalog cuts both ways: Speculative Generality is a smell too, so configurable means the seam exists, not that it is built for an imagined future.
Only a decision that survives all three rungs is a question.
What still earns a question
Ask only about what the user's own context can settle:
- Product and scope: what the thing should do, for whom, and what is deliberately out.
- Domain semantics: what a term means here, and which concept owns a behavior.
- Constraint-bound trade-offs: choices hanging on their budget, timeline, team, or existing infrastructure.
- Hard-to-reverse commitments: data migrations, public interface shape, third-party lock-in.
- Genuine forks: two reasonable readings of the request that lead to materially different work.
- ADR conflicts: a choice that contradicts a recorded ADR. Name the ADR in the framing.
Everything else is yours to decide. Framework idiom, file layout, interface naming, test structure, error-handling shape, where a helper lives, a library choice with an obvious ecosystem default: settle these and keep moving.
Record every default
A decision settled without asking still lands in the ledger as implied, carrying the rung that settled it and a one-line why. The closing summary lists them under Defaults applied, one line each, so the user can overturn any of them with a word. An unasked question is the point; a hidden decision is the failure mode.
Decision Ledger
Maintain a running internal ledger:
settled: decisions the user explicitly chose.implied: decisions that follow from earlier answers, plus every default you settled off the ladder, tag which rung settled it.open: branches still worth asking about.deferred: questions blocked by missing context, a pending fact lookup, external constraints, or user choice.dismissed: items the user ruled out or told you to drop. They stay silent for the rest of the session: no question, summary, risk list, or hand-off names them again.
Before asking anything, check the ledger. Never re-ask a resolved or implied branch. When a deferred fact resolves, move its downstream branches back to open.
Frame the problem, then ask
A bare question is unanswerable: the user has to reconstruct what you were looking at before they can choose. Put two or three short sentences in front of it:
- What you found: the concrete thing in the code, spec, or plan that forced the decision.
- Why it needs them: which rung of the ladder failed, and what goes wrong if you guess.
- What the answer costs: the consequence that follows the choice, not a restatement of the choice.
If you cannot state the situation plainly, you do not yet understand the decision well enough to ask about it.
Write it in Simplified Technical English
Every word the user reads (the framing, the question, the option labels and descriptions) follows the writing rules of ASD-STE100 Simplified Technical English. The target is a decision the user understands on one read, with no jargon to decode and no term they must look up.
- Short sentences: 20 words maximum in an instruction, 25 in a description. Never drop the article, subject, or verb to make the count; rewrite the sentence instead.
- One topic per paragraph, 6 sentences maximum.
- Active voice, and name the actor. "The job retries the payment", not "the payment is retried".
- One word, one meaning. Choose a term and keep it for the whole session. Never alternate between
ticketandissue, orseamandboundary. - No noun stack longer than 3 words. "User account deletion confirmation screen" becomes "the screen that confirms account deletion".
- Plain words around exact names. Technical names stay exact (a class, a package, a framework, a domain term from
GLOSSARY.md) because a plainer word would lose the precision. Everything around them is plain English, and a load-bearing name gets a gloss on first use: "a seam (the place a test calls the code)". - No abbreviation the user has not used first, and no idiom, metaphor, or figure of speech.
These rules govern the text shown to the user. They do not govern the code, the spec, or any artifact; those keep the project's own vocabulary.
Asking the question
Where the harness has a structured question tool (harness-tools), use it: decisions become click-to-answer. These rules are for Claude Code's AskUserQuestion; for another harness's tool, keep what it supports and follow its limits in that file:
- One question per call.
- 2–4 options, every one real: no filler choices, no explicit
Other(the tool provides free-form input). - Recommended option first, label suffixed
(Recommended), labels 1–5 words,header≤ 12 characters. - Describe what each option commits the project to, not just what it is.
multiSelect: trueonly when options legitimately stack.- When the options are artifacts to compare side by side (a signature, a schema, a payload, a screen layout), put each one's snippet or ASCII mockup in that option's
preview.previewworks only on a single-select question.
Without one of these tools, ask the same shape in chat (numbered options, recommendation first, trade-off per line, and under each option the fenced block its preview would hold) and wait for the answer. Never print fake tool JSON.
A rejected question did not land. Ask the same decision again once, rewritten: the situation first, fewer terms, and each option stated as what will happen. If the user rejects that too, take the recommended option, record it as implied, and move on.
Stop Conditions
Stop when:
- The user says to stop.
- The user confirms shared understanding: the only exit that permits acting on the plan.
- Remaining branches depend on information outside the current context.
A request for a summary, PRD, or implementation plan is a request to record the settled decisions, not permission to resolve open branches by yourself.
Before the plan resolves, sweep the branches grills skip. Each one has forced a rebuild after the build:
- Trigger: does the behavior run automatically, or does a person start it? Where in the UI do they see and drive it?
- Ownership: who creates, edits, and removes each new entity, and on which screen?
- Display: for an integration, which returned fields the product shows and which it drops, and their order of importance on the screen. Offer competing layouts as ASCII mockups, in each option's
previewor, without the tool, in a fenced block under each option (see Asking the question). - Failure: what the user sees when a dependency fails or returns partial data.
Settle each off the ladder or ask.
Before ending, settle or explicitly abandon every deferred branch; no fact lookup may still be running, and no task ID belongs in any summary or hand-off text (a task handle dies with the session).
End with a compact summary of settled decisions, the Defaults applied block, and unresolved risks. When invoked directly (not from another skill), also print the routing block from grill-me: only the outermost skill prints one.
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.

