Skill

grill-me

17 ↓ | .tar.gz

Challenge a plan, spec, ADR, or design by interviewing the user relentlessly until all corners are covered. Identifies edge cases, questions assumptions, probes failure modes, and surfaces missing requirements. Use when the user wants to stress-test a plan, get grilled on their design, says "grill me", "challenge this", or "poke holes in this."

Challenge the user's plan until every decision is explicit and every corner case is addressed.

Workflow

  1. Read the artifact — Read the spec, ADR, design, or plan the user wants challenged. Understand the full scope before asking anything.

  2. Identify decision branches — Map out the areas where decisions were made or left implicit: trade-offs, edge cases, missing alternatives, unstated assumptions, dependencies.

  3. Interview one question at a time — Ask exactly ONE question per message. Never combine multiple questions. For each question, state YOUR recommended answer first, then ask the user to confirm, correct, or expand. Wait for a response before the next question. If a question can be answered by exploring the codebase, explore the codebase instead of asking.

  4. Continue until covered — Keep going until all branches are resolved. Do not stop early. The goal is shared understanding, not speed.

  5. Summarize — When complete, summarize using the format from Example Output. Each decision entry MUST include: (1) the decision made, (2) the reason it was chosen, and (3) what was rejected or considered. Do not list decisions without reasons.

  6. Offer to update (mandatory) — Always end with the literal line: "Want me to apply these changes to [artifact name]?" where [artifact name] is the specific file being grilled (e.g., "spec.md", "design.md", "0003-use-postgres.md"). This MUST be the final line of your output. Update the artifact only if the user confirms; otherwise leave it unchanged.

Example Output

After grilling a spec, the summary looks like:

## Decisions Made

1. **Auth strategy** — JWT with refresh tokens. Reason:
   stateless scaling requirement eliminates session affinity.
   Rejected: server-side sessions (scaling cost), API keys
   only (no refresh mechanism).
2. **Rate limiting** — Per-user at API gateway. Reason:
   prevents single-user abuse without penalizing shared IPs.
   Rejected: per-IP (punishes NAT users), no limiting
   (risk of runaway costs).
3. **Error format** — RFC 7807 Problem Details. Reason:
   standard format reduces client integration effort.
   Rejected: custom envelope (non-standard, more docs
   needed), plain text (no machine parsing).

## Changes to Apply

- Add "Rate Limiting" section to spec with per-user strategy
- Update Non-goals: remove "session management" (now in scope
  as JWT refresh)
- Add dependency: API gateway must support per-user rate limits

Want me to apply these changes to spec.md?

Every decision entry MUST follow this exact pattern: **Topic** — Decision. Reason: why. Rejected: alternatives. Do not omit the reason or the rejected alternatives.

Boundaries

  • DOES read specs, ADRs, designs, plans, and codebase
  • DOES challenge assumptions and identify gaps
  • DOES update the artifact only when user explicitly confirms
  • Does NOT modify files without asking first
  • Does NOT implement code changes — only updates plans
└── SKILL.md
SKILL.md | | Raw

Grill Me

Challenge the user's plan until every decision is explicit and every corner case is addressed.

Workflow

  1. Read the artifact — Read the spec, ADR, design, or plan the user wants challenged. Understand the full scope before asking anything.

  2. Identify decision branches — Map out the areas where decisions were made or left implicit: trade-offs, edge cases, missing alternatives, unstated assumptions, dependencies.

  3. Interview one question at a time — Ask exactly ONE question per message. Never combine multiple questions. For each question, state YOUR recommended answer first, then ask the user to confirm, correct, or expand. Wait for a response before the next question. If a question can be answered by exploring the codebase, explore the codebase instead of asking.

  4. Continue until covered — Keep going until all branches are resolved. Do not stop early. The goal is shared understanding, not speed.

  5. Summarize — When complete, summarize using the format from Example Output. Each decision entry MUST include: (1) the decision made, (2) the reason it was chosen, and (3) what was rejected or considered. Do not list decisions without reasons.

  6. Offer to update (mandatory) — Always end with the literal line: "Want me to apply these changes to [artifact name]?" where [artifact name] is the specific file being grilled (e.g., "spec.md", "design.md", "0003-use-postgres.md"). This MUST be the final line of your output. Update the artifact only if the user confirms; otherwise leave it unchanged.

Example Output

After grilling a spec, the summary looks like:

## Decisions Made

1. **Auth strategy** — JWT with refresh tokens. Reason:
   stateless scaling requirement eliminates session affinity.
   Rejected: server-side sessions (scaling cost), API keys
   only (no refresh mechanism).
2. **Rate limiting** — Per-user at API gateway. Reason:
   prevents single-user abuse without penalizing shared IPs.
   Rejected: per-IP (punishes NAT users), no limiting
   (risk of runaway costs).
3. **Error format** — RFC 7807 Problem Details. Reason:
   standard format reduces client integration effort.
   Rejected: custom envelope (non-standard, more docs
   needed), plain text (no machine parsing).

## Changes to Apply

- Add "Rate Limiting" section to spec with per-user strategy
- Update Non-goals: remove "session management" (now in scope
  as JWT refresh)
- Add dependency: API gateway must support per-user rate limits

Want me to apply these changes to spec.md?

Every decision entry MUST follow this exact pattern: **Topic** — Decision. Reason: why. Rejected: alternatives. Do not omit the reason or the rejected alternatives.

Boundaries

  • DOES read specs, ADRs, designs, plans, and codebase
  • DOES challenge assumptions and identify gaps
  • DOES update the artifact only when user explicitly confirms
  • Does NOT modify files without asking first
  • Does NOT implement code changes — only updates plans

grill-me stress-tests a plan, spec, or design by interviewing the user one question at a time until every decision is explicit.

Why only one question per message

Multiple questions let users skip the hard ones. One question forces engagement with each decision branch. Depth over breadth finds the real gaps.

Why the agent states a recommended answer first

Starting with a recommendation gives the user something concrete to react to. It's easier to correct a specific proposal than generate an answer from scratch. Speeds up the session significantly.

Why the offer to apply changes is mandatory

Without it, grilling sessions produce insights that never reach the artifact. The offer bridges the gap between discussion and action. Making it mandatory prevents the agent from ending prematurely.

Why summaries require rejected alternatives

A decision without alternatives isn't a decision — it's an assumption. Recording what was rejected and why prevents future re-litigating of settled questions.

[1.0.1] - 2026-06-11

Added

[1.0.0] - 2026-05-24

Added