Grill
Resolve a plan or design through rigorous interview rounds. Ask all independent
questions on the current frontier through as many native-tool calls as needed.
Default to discussion-only. Do not edit documentation unless the user explicitly
enables docs mode.
Modes
Discussion mode (default)
- Read the current conversation and inspect relevant repository context before
asking questions.
- Do not create or edit documentation.
- Do not implement the plan being discussed.
Docs mode (explicit opt-in)
Enable docs mode only when the user explicitly asks for it with wording such as
"with docs", "docs mode", "record this in the docs", or an equivalent request.
Do not infer docs mode from the presence of CONTEXT.md, ADRs, or other project
documentation.
In docs mode, follow the same interview loop and capture qualifying terms and
decisions as they resolve. If the user enables docs mode partway through, offer
to capture qualifying terms and decisions already resolved. If they disable it,
stop future doc changes without reverting previously confirmed edits.
Interview loop
- Identify the decision the user is trying to make and briefly restate it.
- Inspect the environment for facts that can be discovered from code, docs,
configuration, history, or available tools. Look facts up instead of asking
the user to supply them.
- Map unresolved decisions as a dependency tree. A decision is ready only when
all decisions that it depends on are settled.
- Compute the current frontier: all ready decisions that can be answered
independently with the facts and prior answers available now.
- Work through the whole current frontier with consecutive native question-tool
calls. Include as many questions as the tool permits in each call and include
a recommended answer and its reason for each.
- After each call, process the user's answers, then ask the next batch from the
same frontier. Challenge contradictions, vague terms, hidden assumptions, and
unresolved edge cases. Remove or revise a pending frontier question when an
earlier answer makes it obsolete.
- Record resolved decisions in the conversation and, in docs mode, update the
appropriate documents as qualifying terms and decisions resolve.
- Only after all still-relevant questions on the current frontier are resolved,
recompute the tree and next frontier. Repeat until the frontier is empty or
the user stops.
The user owns product and design decisions. Never answer those decisions on
their behalf. When a factual discovery changes the decision space, explain the
evidence before asking the next question.
Question delivery
- Use
request_user_input or the runtime's native equivalent for every
interview round. Also use it when a final shared-understanding confirmation
question is necessary. Do not put interview questions in ordinary prose.
- Use the maximum useful number of questions that the tool permits in each call.
For Codex
request_user_input, send one to three questions. If the frontier
is larger, continue with another native call after the user answers. Send only
one when only one still-relevant frontier decision remains.
- Give each question two or three mutually exclusive choices. Put the
recommended choice first, suffix its label with
(Recommended), and state
the effect of each choice in one short sentence.
- Use a short header and a stable snake_case identifier for each question when
the tool supports them. Let the tool provide its standard free-form choice;
do not add a duplicate catch-all choice.
- Use ordinary prose only for short evidence or context before the tool call.
Do not duplicate the tool questions in that prose.
- If no native question tool is available, stop the interview and state that
$grill requires native question input. Do not fall back to prose questions.
Question quality
- Batch independent frontier questions, but never include a question whose
answer depends on another open question in the same round.
- Do not postpone a ready independent question only because one tool call is
full. Ask it in the next native batch before advancing to the next frontier.
- Prefer high-leverage questions that constrain several downstream choices.
- Use concrete scenarios to expose edge cases and ambiguous boundaries.
- Recommend a choice instead of presenting an unranked menu.
- Skip questions whose answers are already clear from the request, conversation,
or repository.
- Keep going past the first plausible answer when meaningful branches remain.
Documentation rules
Apply these rules only in docs mode.
Before the first interview round, read the repository instructions and the
relevant existing CONTEXT.md, CONTEXT-MAP.md, and ADRs. If they do not
exist, continue without flagging their absence. Preserve surrounding content
and unrelated changes.
During the interview:
- Challenge a term immediately when it conflicts with the existing glossary.
- Propose a precise canonical term when the user's language is vague or
overloaded.
- Test domain relationships with concrete edge-case scenarios.
- Compare factual statements with the code and surface contradictions.
Glossary
Use CONTEXT.md only for project-specific domain language:
- Create the relevant
CONTEXT.md lazily when the first term resolves.
- Update the glossary when each term resolves; do not batch updates until the
end of the interview.
- Define each canonical term in one or two sentences.
- List misleading synonyms under an
_Avoid_: line when useful.
- Keep implementation details, plans, and temporary discussion out of the
glossary.
- If the repository uses
CONTEXT-MAP.md, update the context relevant to the
current discussion.
ADRs
Offer or write an ADR only when the decision is all three:
- costly to reverse,
- surprising without its context, and
- the result of a real trade-off.
Keep the ADR concise: state the context, decision, and reason. Match the
repository's existing location, numbering, and format rather than imposing a
new convention. Create the relevant ADR directory lazily when the first ADR is
needed.
Completion
Do not act on the discussed plan until the user confirms that shared
understanding has been reached. Then summarize:
- decisions made,
- important constraints and non-goals,
- unresolved questions, if any,
- the recommended next step, and
- documentation changed, when docs mode was enabled.
1---2name: grill3description: Interview the user in multiple rounds to stress-test a plan, design, or idea. Use when the user asks to be grilled, wants assumptions challenged, or wants a design clarified.4---56# Grill78Resolve a plan or design through rigorous interview rounds. Ask all independent9questions on the current frontier through as many native-tool calls as needed.10Default to discussion-only. Do not edit documentation unless the user explicitly11enables docs mode.121314## Modes1516### Discussion mode (default)1718- Read the current conversation and inspect relevant repository context before19 asking questions.20- Do not create or edit documentation.21- Do not implement the plan being discussed.2223### Docs mode (explicit opt-in)2425Enable docs mode only when the user explicitly asks for it with wording such as26"with docs", "docs mode", "record this in the docs", or an equivalent request.27Do not infer docs mode from the presence of `CONTEXT.md`, ADRs, or other project28documentation.2930In docs mode, follow the same interview loop and capture qualifying terms and31decisions as they resolve. If the user enables docs mode partway through, offer32to capture qualifying terms and decisions already resolved. If they disable it,33stop future doc changes without reverting previously confirmed edits.3435## Interview loop36371. Identify the decision the user is trying to make and briefly restate it.382. Inspect the environment for facts that can be discovered from code, docs,39 configuration, history, or available tools. Look facts up instead of asking40 the user to supply them.413. Map unresolved decisions as a dependency tree. A decision is ready only when42 all decisions that it depends on are settled.434. Compute the current frontier: all ready decisions that can be answered44 independently with the facts and prior answers available now.455. Work through the whole current frontier with consecutive native question-tool46 calls. Include as many questions as the tool permits in each call and include47 a recommended answer and its reason for each.486. After each call, process the user's answers, then ask the next batch from the49 same frontier. Challenge contradictions, vague terms, hidden assumptions, and50 unresolved edge cases. Remove or revise a pending frontier question when an51 earlier answer makes it obsolete.527. Record resolved decisions in the conversation and, in docs mode, update the53 appropriate documents as qualifying terms and decisions resolve.548. Only after all still-relevant questions on the current frontier are resolved,55 recompute the tree and next frontier. Repeat until the frontier is empty or56 the user stops.5758The user owns product and design decisions. Never answer those decisions on59their behalf. When a factual discovery changes the decision space, explain the60evidence before asking the next question.6162## Question delivery6364- Use `request_user_input` or the runtime's native equivalent for every65 interview round. Also use it when a final shared-understanding confirmation66 question is necessary. Do not put interview questions in ordinary prose.67- Use the maximum useful number of questions that the tool permits in each call.68 For Codex `request_user_input`, send one to three questions. If the frontier69 is larger, continue with another native call after the user answers. Send only70 one when only one still-relevant frontier decision remains.71- Give each question two or three mutually exclusive choices. Put the72 recommended choice first, suffix its label with `(Recommended)`, and state73 the effect of each choice in one short sentence.74- Use a short header and a stable snake_case identifier for each question when75 the tool supports them. Let the tool provide its standard free-form choice;76 do not add a duplicate catch-all choice.77- Use ordinary prose only for short evidence or context before the tool call.78 Do not duplicate the tool questions in that prose.79- If no native question tool is available, stop the interview and state that80 `$grill` requires native question input. Do not fall back to prose questions.8182## Question quality8384- Batch independent frontier questions, but never include a question whose85 answer depends on another open question in the same round.86- Do not postpone a ready independent question only because one tool call is87 full. Ask it in the next native batch before advancing to the next frontier.88- Prefer high-leverage questions that constrain several downstream choices.89- Use concrete scenarios to expose edge cases and ambiguous boundaries.90- Recommend a choice instead of presenting an unranked menu.91- Skip questions whose answers are already clear from the request, conversation,92 or repository.93- Keep going past the first plausible answer when meaningful branches remain.9495## Documentation rules9697Apply these rules only in docs mode.9899Before the first interview round, read the repository instructions and the100relevant existing `CONTEXT.md`, `CONTEXT-MAP.md`, and ADRs. If they do not101exist, continue without flagging their absence. Preserve surrounding content102and unrelated changes.103104During the interview:105106- Challenge a term immediately when it conflicts with the existing glossary.107- Propose a precise canonical term when the user's language is vague or108 overloaded.109- Test domain relationships with concrete edge-case scenarios.110- Compare factual statements with the code and surface contradictions.111112### Glossary113114Use `CONTEXT.md` only for project-specific domain language:115116- Create the relevant `CONTEXT.md` lazily when the first term resolves.117- Update the glossary when each term resolves; do not batch updates until the118 end of the interview.119- Define each canonical term in one or two sentences.120- List misleading synonyms under an `_Avoid_:` line when useful.121- Keep implementation details, plans, and temporary discussion out of the122 glossary.123- If the repository uses `CONTEXT-MAP.md`, update the context relevant to the124 current discussion.125126### ADRs127128Offer or write an ADR only when the decision is all three:1291301. costly to reverse,1312. surprising without its context, and1323. the result of a real trade-off.133134Keep the ADR concise: state the context, decision, and reason. Match the135repository's existing location, numbering, and format rather than imposing a136new convention. Create the relevant ADR directory lazily when the first ADR is137needed.138139## Completion140141Do not act on the discussed plan until the user confirms that shared142understanding has been reached. Then summarize:143144- decisions made,145- important constraints and non-goals,146- unresolved questions, if any,147- the recommended next step, and148- documentation changed, when docs mode was enabled.