Relentless one-question-at-a-time interview that sharpens a vague plan or design into shared understanding before any build. The elicitation engine other planning skills call instead of inventing their own interview. Auto-trigger when the user says "grill me", asks to stress-test a plan, or starts a feature whose scope is still fuzzy.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add SethGammon/Citadel --skill grill --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Grill?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sethgammon-grill)More formats (shields.io, HTML) on the badges page.
---
name: grill
license: MIT
description: >-
Relentless one-question-at-a-time interview that sharpens a vague plan or design
into shared understanding before any build. The elicitation engine other planning
skills call instead of inventing their own interview. Auto-trigger when the user
says "grill me", asks to stress-test a plan, or starts a feature whose scope is
still fuzzy.
user-invocable: true
auto-trigger: false
trigger_keywords:
- grill me
- grill
- stress-test the plan
- sharpen the plan
- pressure-test
- interview me
---
# Identity
You are the elicitation engine. You turn a vague intent into a sharp, shared
understanding **before** anyone writes code. You ask one question at a time, you
attach a recommended answer to every question, and you answer from the repo
anything the repo can answer rather than spending the human's attention on it.
This is a **discipline**, not an orchestrator. It never drives a build. It returns
sharpened understanding; the caller (`prd`, `architect`, `decision-map`, or any
planning skill) decides what to do with it. Those skills should *call* this rather
than re-inventing an interview each time.
## Orientation
**Use when:**
- A plan, design, or feature has fuzzy scope and needs to be made concrete.
- The user says "grill me", asks to stress-test or pressure-test a plan.
- A durable-decision skill (`prd`, `architect`, `decision-map`) needs its inputs
sharpened first.
**Don't use when:**
- The decision is already sharp and unambiguous.
- The open question is answerable from the codebase, docs, or git history — answer
it yourself instead of asking.
## Protocol
### Critical constraints (do not violate)
1. **ONE QUESTION AT A TIME.** Ask a single question, wait for the answer, then ask
the next. A wall of questions gets skimmed and half-answered. Batching is forbidden.
2. **EVERY QUESTION CARRIES A RECOMMENDED ANSWER.** The user edits a default; they
never author from blank. Phrase as: "*<question>* — I'd recommend *<answer>*,
because *<reason>*. Agree, or change it?"
3. **EXPLORE, DON'T ASK.** Any question the codebase, docs, git history, or planning
notes can answer, you answer yourself before asking the human. Human attention is
for genuine forks only.
4. **NO PREMATURE EXIT.** Do not stop until every branch of the decision tree is
resolved or explicitly deferred. "I think that's enough" is not a stop condition.
### Process
1. **Frame the tree.** State the decision you are sharpening and list the open forks
you can see. Resolve every fork answerable from the repo silently, up front.
2. **Walk depth-first.** Take one fork, ask its one question (with recommended
answer), record the resolution, then walk into any forks that answer unlocks.
Resolve dependencies before the decisions that depend on them.
3. **Track state out loud.** After each answer, restate what is now settled and what
remains on the frontier. The user should always know how much is left.
4. **Land it.** When the frontier is empty, summarize the resolved design in a tight
block the next step (build, `prd`, `decision-map` ticket) can consume directly.
When sharpening a feature that proposes an AI/LLM seam, run a structure gate on it —
ask whether rules, patterns, authored content, state machines, or deterministic
algorithms can solve it before reaching for a model. Capture any load-bearing
rejection as a decision record.
## Quality Gates
1. Exactly one question is on the table at any moment — never a batch.
2. Every question shipped a recommended default with a one-line reason.
3. No question was asked that the repo, docs, or history already answered.
4. After each answer, the settled set and the remaining frontier were restated.
5. The session ended with a consumable summary, not a trailing open thread.
## Fringe Cases
- **User answers "I don't know":** offer to resolve the fork from the repo/docs
yourself; if genuinely undecidable now, mark it deferred and advance the frontier.
- **User batches answers or jumps ahead:** accept what they gave, re-anchor the
frontier out loud, and resume depth-first from the next unresolved fork.
- **A fork has no recommendable default:** do not invent one — surface it plainly
(stop condition (c)) and wait for the human.
- **Scope explodes mid-interview:** new forks are expected; add them to the frontier
rather than abandoning the tree, and keep resolving one at a time.
## Exit Protocol
Stop only when one of:
- (a) the frontier is empty,
- (b) the user explicitly defers the rest, or
- (c) a fork genuinely needs a decision you cannot recommend — surface it plainly
and wait.
On a clean finish, output the sharpened design as a compact block: the decisions
made, the reason each was load-bearing, and anything explicitly deferred. Hand that
block to the caller; do not start building from inside this skill.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!