grill-me
Skill1 starsChanged 8 months agoMITView on GitHub
Interrogate the user about their idea before any work begins. Works the design tree in rounds - asks the whole unblocked frontier at once with a recommended answer each, self-serves facts from the codebase. Produces an Intent Summary for /research-gate.
193 other projects use a version of this, 8 of them edited.
Adopted by
Most recently taken up by
- xiaoxiaosrm/dsh-mattpocock-skillstheir own version, first seen Nov 8, 2026
- ishandutta2007/Awesome-Claude-Skillstheir 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
- anotherben/claude-harnesstheir own version, first seen Nov 8, 2026
- codedb-io/codedb-lenstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use brief-to-tasks, writing-beats 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.
julianoczkowskiSkillbrief-to-tasks
Break a design brief into an ordered checklist of independently buildable tasks using vertical slices. Saves as a markdown checklist. Use when user wants to break down work, create tasks from a brief, plan implementation order, or mentions "tasks" or "breakdown".
Also in 7 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 66 projects that use this
simo97Skillrequest-refactor-plan
Use this skill when user wants to create a refactor plan.
Also in 43 projects that use this
simo97Skillmigrate-to-shoehorn
Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.
Also in 71 projects that use this
LesaniSkillwriting-shape
Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.
Also in 65 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
- +2 more from simo97
Other versions193 projects use a version of this.
Word for word · 0
None found.
Edited · 8
- nrwl/nx★ 29k17% same
- rtadewald/skills★ 27246% same
- sammcj/agentic-coding★ 16935% same
- GGGODLIN/gggodlin-cc-harness★ 7312% same
- MiladJoodi/skills★ 2443% same
- emiliosheinz/agent-skills★ 2024% same
- Yassimba/loom★ 931% same
- IxTechCrypto/kicad-skills★ 833% same
Wrote their own version · 185
- mattpocock/skills★ 309ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- langfuse/langfuse★ 37ksame name
- windmill-labs/windmill★ 18ksame name
- GreyDGL/PentestGPT★ 16ksame name
- humanlayer/humanlayer★ 13ksame name
- jaredpalmer/kev★ 9.8ksame name
- openstatusHQ/openstatus★ 9.3ksame name
- webiny/webiny-js★ 8ksame name
175 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 repository51 other files it gives its agents.
- algorithmic-artSkill
- audit-componentsSkill
- canvas-designSkill
- cascade-orchestrationSkill
- consultSkill
- data-reconciliationSkill
- debug-collaborateSkill
- deep-root-causeSkill
- deploy-allSkill
- design-reverse-engineerSkill
- design-showcaseSkill
- docxSkill
- env-auditSkill
- evolveSkill
- frontend-designSkill
- full-stack-buildSkill
- full-stack-traceSkill
- gh-repo-reconSkill
- handoffSkill
- html-slidesSkill
- insightSkill
- internal-commsSkill
- isolation-testSkill
- mcp-builderSkill
- model-selectionSkill
- pdfSkill
- persistent-issueSkill
- pre-merge-reviewSkill
- premise-auditSkill
- propagate-featureSkill
- regression-bisectSkill
- research-gateSkill
- review-implSkill
- schema-checkSkill
- session-notesSkill
- skill-auditSkill
- skill-creatorSkill
- slack-gif-creatorSkill
- start-daySkill
- temporal-forensicsSkill
- theme-factorySkill
- throwaway-scriptSkill
- triage-ideasSkill
- verify-completeSkill
- webapp-testingSkill
- web-artifacts-builderSkill
- wisdomSkill
- worker-buildSkill
- worktree-guardSkill
- write-planSkill
- xlsxSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 14 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 177 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 44
Default to numbered markdown so the user can answer against the numbers:
- Distinctive: line 64
Don't block on it. A running lookup is an unsettled prerequisite: only the questions downstream of it wait.
- Distinctive: line 70
When the grilling runs on a chat surface instead of a desktop terminal — a phone chat app, a remote/cloud session, or the user saying …
- Distinctive: line 73
Ask 1–2 questions per turn (frontier order, most-unlocking first), not the whole round.
- Distinctive: line 75
Keep the per-question format: the question, then ➡️ the recommended answer and why.
- Distinctive: line 76
Keep every message short enough to read comfortably on a phone.
- Distinctive: line 88
Challenge fuzzy language against the glossary: If the user says a term the glossary defines, confirm you're both using it the same way.
- Distinctive: line 90
Cross-reference code: Verify a proposed term against how the codebase actually names the concept (a grep often settles it faster than a …
- Distinctive: line 91
Update the glossary as you go: When the session lands a sharpened or new definition, add/update the entry in the same commit as the feature …
- Distinctive: line 142
Stop when the frontier is empty, or when branches 1-4 are settled and the user wants to move.
- Distinctive: line 159
Do not act on it until the user confirms you have reached a shared understanding.
- Distinctive: line 174
If you adopt the file-based form, a simple frontmatter block keeps the lifecycle visible:
- Very specific: line 186
NOT a feature description yet — grill it first, replace the body with the real Intent Summary, and flip to decided before anything …
- Distinctive: line 191
Before producing the summary, confirm any glossary additions or edits the session produced are written — the Intent Summary should use the …
- Distinctive: line 202
When a branch of the tree can only be answered by someone who isn't the user — a stakeholder, a domain expert, a customer — export that …
“Common” is measured: kept by at least 6 in 10 of the 177 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
Grill Me — Intent Interrogation
Interview the user relentlessly until you reach a shared understanding of what they want built. Prevents building the wrong thing.
Map the idea as a design tree: every decision branches into the decisions that hang off it.
When to Use
- User describes a new feature concept with ambiguous scope
- User references a business process Claude hasn't encountered before
- Cross-department stakeholders involved
- User explicitly invokes
/grill-me - Any request where "what" or "why" is unclear, even if "how" seems obvious
When to Skip
- Bug fixes or "X is broken" — go straight to diagnosis
- User provides a detailed spec or plan document
- Feature is a direct copy of an existing view (use
/propagate-feature) - Single-file changes or config updates
- User says "just do it" or "I know what I want"
Rounds and the Frontier
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. Then wait for the user's answers before the next round.
Each answer 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.
Round one is often a single critical question — the one that opens everything else. That is correct, not a failure to batch.
The session is done when the frontier is empty: every branch visited, nothing silently assumed.
Why rounds, not one-at-a-time: the tail of a grilling session is mostly easy questions. One-per-turn turns that tail into "yes, yes, yes" across ten round-trips — the user's attention is spent on ceremony instead of on the decisions that matter. Batching the frontier lets them blast through the easy ones (dictation works well here) and spend their thinking on the hard ones.
Question format
Default to numbered markdown so the user can answer against the numbers:
### Round 1
❓ **Q1 — <question title>**: <question body, multiple paragraphs and options allowed>
➡️ <your recommended answer, and why>
❓ **Q2 — <question title>**: ...
➡️ ...If your harness offers a structured multiple-choice prompt, use it only when the whole round is closed-choice — every question has a small set of discrete options. Open-ended questions ("paint the picture", "what breaks today") lose their value squeezed into fixed options, so those rounds stay markdown.
Facts are your job, decisions are theirs
Finding facts is never the user's job. When a frontier question needs a fact from the environment — a schema, an existing endpoint, who holds a permission, what a column actually contains — go get it. Grep, query, read the notes. Then tell the user what you found and ask only whether it's right.
Don't block on it. A running lookup is an unsettled prerequisite: only the questions downstream of it wait. Ask the rest of the frontier now. If the harness supports it, dispatch a sub-agent for the lookup and keep interviewing.
The decisions are the user's. Put each to them and wait.
Chat Surface Mode (phone / remote)
When the grilling runs on a chat surface instead of a desktop terminal — a phone chat app, a remote/cloud session, or the user saying "phone mode" — change the pacing and nothing else:
- Ask 1–2 questions per turn (frontier order, most-unlocking first), not the whole round. Numbered-batch dictation works at a desk; on a phone it's a wall of text.
- Keep the per-question format: the question, then ➡️ the recommended answer and why.
- Keep every message short enough to read comfortably on a phone.
- The tree, the frontier, self-served facts, the glossary pass, and termination are unchanged.
A chat-surface session usually can't continue straight into /research-gate, so it ends with
the durable handback (§ Handback below) instead of a same-session paste.
Project Glossary
If your project maintains a domain glossary (a file that pins down what overloaded terms mean — shared identifiers, record types, process names, status codes, etc.), read it before the first question. Grilling on a codebase fails when the agent re-learns jargon every session or quietly conflates two meanings of one word.
During the session:
- Challenge fuzzy language against the glossary. If the user says a term the glossary defines, confirm you're both using it the same way. If they describe a concept verbosely and a glossary term already covers it, say so.
- Sharpen new terms. When the feature introduces a term not in the glossary — or uses an existing term in a new way — that's a grilling branch: get a one-line definition the user agrees on. Surface collisions explicitly (does this new "X" mean the same as the existing "X"?).
- Cross-reference code. Verify a proposed term against how the codebase actually names the concept (a grep often settles it faster than a question).
- Update the glossary as you go. When the session lands a sharpened or new definition, add/update the entry in the same commit as the feature — undocumented shared language is the gap this skill exists to close.
This glossary pass is optional for non-codebase use (writing, planning, personal decisions), but mandatory for any feature touching a repo that maintains one.
The Design Tree
These are the branches, not a walk order. Each round, ask whichever are on the frontier; skip any the context already answers:
1. Audience & Access
- Who uses this? Which user roles? Which project/app?
- Is this for a specific person or team?
- Does it need specific permissions or is it for all authenticated users?
2. Success Criteria
- What does "working" look like? Paint the picture.
- How will you know it's done? What's the minimum viable version?
- Is there an existing process this replaces? (spreadsheet, phone call, email, manual workflow)
3. Data Source & Shape
- Where does the data come from? (internal database, external API, cache, manual entry)
- How fresh does it need to be? (real-time, cached, daily, weekly)
- What are the key fields? What's the primary identifier?
- Are there edge cases in the data? (duplicates, nulls, cancelled records, zero-quantity lines)
4. Interaction Model
- Is this a dashboard (view-only), a tool (input/output), or a workflow (multi-step)?
- Daily use or occasional? (determines caching strategy and data density)
- Mobile or desktop? (determines responsive strategy)
- Does it need to send notifications, emails, or trigger actions?
5. Integration Points
- Does this connect to existing views/features? Which ones?
- Does it need a new API endpoint, or can it reuse existing ones?
- Does it need new database tables, cache keys, or external service columns?
- Does it interact with external systems?
6. Edge Cases & Risks
- What happens when there's no data? (empty state)
- What happens with bad/incomplete data? (error handling)
- Who should NOT see this? (security implications)
- What's the blast radius if it breaks? (read-only = low, mutations = high)
7. Priority & Scope
- How urgent is this? (blocking production, improving workflow, nice-to-have)
- Is this the full vision or an MVP? What gets cut for v1?
- What does v2 look like? (helps design for extensibility without over-engineering)
Branches 1-4 are the load-bearing ones. Branches 5-7 can be resolved by /research-gate or during implementation if the user is out of patience.
Termination
Stop when the frontier is empty, or when branches 1-4 are settled and the user wants to move.
Produce an Intent Summary:
## Intent Summary: [Feature Name]
**For**: [audience] in [project]
**Purpose**: [one sentence — what problem this solves]
**Replaces**: [current process, if any]
**Data**: [source] → [key fields] → [display format]
**Interaction**: [dashboard/tool/workflow], [frequency], [device]
**Success**: [what "done" looks like — 2-3 bullet points]
**MVP scope**: [what's in v1, what's deferred]
**Risks**: [key edge cases or unknowns]Do not act on it until the user confirms you have reached a shared understanding.
Handback — where the Intent Summary lives
The summary is the input to /research-gate, and it must survive the session that produced it.
Two flows:
- Same-session (continuing straight into
/research-gate): paste it directly into the feature description. If your project wants a durable record too, also write it to a tracked file (e.g.docs/intents/<slug>.md) in the same commit as the feature. - Remote / chat-surface session (can't continue into the gate itself): write the summary to
a tracked file, commit that one file on a dedicated branch (e.g.
intent/<slug>), push it, and tell the operator the branch name. Touch nothing else — no PR, no merge. A later session (or/research-gateitself) picks it up from there.
If you adopt the file-based form, a simple frontmatter block keeps the lifecycle visible:
---
status: decided # or: proposed (queued for grilling, not yet a feature description)
# consumed (flipped by the session that acted on it)
date: YYYY-MM-DD
source: phone-grill # or desktop-grill | remote-grill
---proposed matters because a queued idea pushed to the branch before any grilling happened is
NOT a feature description yet — grill it first, replace the body with the real Intent Summary,
and flip to decided before anything downstream may consume it. The session that acts on a
decided doc flips it to consumed in the commit that starts the work, and deletes the branch
once that work lands on the trunk.
Before producing the summary, confirm any glossary additions or edits the session produced are written — the Intent Summary should use the glossary's terms verbatim.
Integration
| Skill | Relationship |
/research-gate | Feeds into — Intent Summary is the input |
/write-plan | Upstream — Intent Summary referenced in plan Goal |
/full-stack-build | Upstream — can invoke grill-me in Phase 0 if intent is unclear |
/persistent-issue | Not related — grill-me is for new features, not debugging |
When a branch of the tree can only be answered by someone who isn't the user — a stakeholder, a domain expert, a customer — export that branch into a document for them rather than guessing or stalling the whole session on it.
Pipeline Position
/grill-me → /research-gate → /write-plan → /full-stack-build
INTENT CONSTRAINTS DECOMPOSITION EXECUTIONThe rounds/frontier model is adapted from the grilling skill in mattpocock/skills (MIT).
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.

