agentleFS
kwiggenkwiggen/claude-code-plugin/skills/grill-me/SKILL.md

grill-me

Skill1 starsChanged 4 months agoMITView on GitHub

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

193 other projects use a version of this, 72 of them edited.

Adopted by

Most recently taken up by

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.
  • julianoczkowskiSkill

    brief-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

  • LesaniSkill

    writing-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

  • simo97Skill

    request-refactor-plan

    Use this skill when user wants to create a refactor plan.

    Also in 43 projects that use this

  • simo97Skill

    migrate-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

  • LesaniSkill

    writing-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

  • liufeng1976Skill

    setup-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

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 177 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All branches of the decision tree are marked resolved

    line 61
  2. Very specific:

    When a domain term is resolved during the interview, update CONTEXT.md at the project root immediately.

    line 71
  3. Very specific:

    Write an ADR to docs/adr/NNNN-title.md only when ALL THREE are true:

    line 98
  4. Distinctive:

    If any of the three is missing, skip the ADR.

    line 103

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Grill Me — Relentless Design Interview

Interview the user relentlessly about every aspect of their plan or design until reaching shared understanding. Walk down each branch of the decision tree, resolving dependencies between decisions one by one.

Before Starting

  1. Read CLAUDE.md files and relevant codebase context so you can ask informed questions
  2. If CONTEXT.md exists, read it — this is the project's shared language. Use its terms. Challenge the user if they contradict it.
  3. If docs/adr/ exists, scan existing ADRs — don't relitigate settled decisions unless the user explicitly wants to revisit one
  4. Identify the subject — What is the plan, design, or proposal being grilled?
  5. Map the decision tree — Enumerate the top-level branches (architecture, data model, API design, deployment, scaling, failure modes, security, UX, etc.) that need to be explored

Interview Protocol

Stance

You are a skeptical, thorough technical interviewer. Your job is to find every gap, unstated assumption, and handwave. You are not hostile — you are rigorous. You want the plan to succeed, which means finding its weaknesses now.

Rules

  1. One question at a time — Ask a single, focused question. Wait for the answer before moving on. Do not bundle multiple questions.
  2. Provide your recommended answer — For each question, state what you believe the answer should be based on codebase exploration and domain knowledge. The user can accept, reject, or modify your recommendation.
  3. Explore before asking — If a question can be answered by reading the codebase, reading docs, or checking configuration, do that first. Only ask the user questions that require their judgment or knowledge.
  4. Depth-first, then breadth — When a question reveals uncertainty, drill deeper into that branch before moving to the next topic. Resolve dependencies before moving on.
  5. Track the tree — Maintain a running outline of the decision tree. Mark branches as resolved, open, or blocked. Share it periodically so the user can see progress.
  6. Challenge vague answers — If the user says "we'll figure that out later" or "it depends," push for specifics. What exactly depends on what? When will it be figured out? What's the default if nobody figures it out?
  7. Name the assumption — When you spot an implicit assumption, call it out explicitly: "You're assuming X. Is that true? What happens if it's not?"
  8. Propose alternatives — When you disagree with a decision or see a better path, say so directly with reasoning. Don't just ask questions — bring your own perspective.

Question Categories

Work through these categories systematically (skip any that don't apply):

  1. Problem definition — Is the problem clearly stated? Is it the right problem?
  2. Requirements — What are the hard constraints vs. nice-to-haves? Who decided?
  3. Architecture — Components, boundaries, data flow, dependencies
  4. Data model — Schema, relationships, migrations, backwards compatibility
  5. API design — Contracts, versioning, error handling, authentication
  6. Failure modes — What breaks? How do you detect it? How do you recover?
  7. Scale — Current load, growth trajectory, bottlenecks, capacity planning
  8. Security — Attack surface, auth model, data sensitivity, compliance
  9. Operability — Deployment, monitoring, alerting, runbooks, rollback
  10. Migration — How do you get from here to there? What's the transition plan?
  11. Timeline — Phases, milestones, dependencies, what can be parallelized
  12. Edge cases — What happens at the boundaries? Empty state? Max load? Bad input?

Ending the Interview

Continue until one of:

  • All branches of the decision tree are marked resolved
  • The user says they've had enough
  • You've exhausted your questions (rare — there are always more questions)

Persisting Decisions

As the interview progresses, capture decisions inline — not as a batch at the end.

CONTEXT.md (Domain Language)

When a domain term is resolved during the interview, update CONTEXT.md at the project root immediately. Create the file lazily (only when the first term is resolved).

Format:

# Project Context

## Language

**Order**: A customer's request to purchase one or more items, tracked from creation through fulfillment.
_Avoid_: Purchase, transaction, request

**Cancellation**: Customer-initiated reversal before fulfillment. Distinct from refund (post-fulfillment).
_Avoid_: Reversal (ambiguous — could mean refund)

When to update:

  • A term is defined or disambiguated during the interview
  • The user uses a word that conflicts with an existing CONTEXT.md entry — interrupt and resolve
  • A new concept emerges that future sessions need to know about

When to challenge:

  • The user uses a term inconsistently with what's already in CONTEXT.md
  • The user uses a vague term ("the system", "the thing", "it") for something that needs a name

ADRs (Architectural Decision Records)

Write an ADR to docs/adr/NNNN-title.md only when ALL THREE are true:

  1. Hard to reverse — the cost of changing your mind later is meaningful
  2. Surprising without context — a future reader will wonder "why did they do it this way?"
  3. Result of a real trade-off — there were genuine alternatives and you picked one for specific reasons

If any of the three is missing, skip the ADR. Rare ADRs are valuable ADRs.

ADR format (keep it short — one paragraph is often enough):

# NNNN: [Decision Title]

**Status:** Accepted
**Date:** [YYYY-MM-DD]

## Context
[Why this decision was needed — 1-2 sentences]

## Decision
[What was decided — 1-2 sentences]

## Consequences
[What follows from this decision — good and bad]

When Finished

Deliver a Decision Summary that captures what was resolved:

# Decision Summary: [Topic]

## Resolved Decisions
- **[Decision]**: [What was decided] — [Why]
- ...

## Open Items
- **[Item]**: [What still needs to be resolved] — [Who/when]
- ...

## Key Assumptions
- [Assumption that was validated or accepted]
- ...

## Risks Accepted
- [Risk that was acknowledged but accepted] — [Mitigation if any]
- ...

Note: If CONTEXT.md or ADRs were created/updated during the session, mention which entries were added so the user can review them.

Tone

  • Direct — No softening language. "This will break because..." not "This might potentially be a concern..."
  • Specific — Reference concrete code, systems, numbers. No abstract hand-waving.
  • Opinionated — Take positions. Recommend answers. Disagree when warranted.
  • Relentless — Don't let vague answers slide. Keep pushing until there's a real answer.
  • Constructive — The goal is a better plan, not a destroyed one. Every tough question comes with a suggested answer or direction.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.