# Grill

Calibrated interrogation of a fuzzy idea before it becomes a spec.

- Repository: https://github.com/JuliusBrussee/cavekit (1157 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-08-14
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add JuliusBrussee/cavekit --skill grill -g -a claude-code -y`
Codex: `npx skills add JuliusBrussee/cavekit --skill grill -g -a codex -y`
Cursor: `npx skills add JuliusBrussee/cavekit --skill grill -g -a cursor -y`
Gemini CLI: `npx skills add JuliusBrussee/cavekit --skill grill -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add JuliusBrussee/cavekit`

## Description

Calibrated interrogation of a fuzzy idea before it becomes a spec. Asks one question at a time, recommends an answer, and lands each answer in §G (goal) or §C (constraints), unknowns parked as `?` items, never guessed. The cheapest place to kill a bad idea is before §T exists. Triggers when the user has a vague idea, says "grill me", "stress-test this", "challenge my plan", "interview me before I spec", or invokes /ck:grill. Defers the actual write to the spec skill.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# grill, sharpen idea before spec

**One question at a time. Every answer lands in a § or gets parked `?`. Never guess a constraint into existence.**

Plan-then-execute guesses the fuzzy parts & builds the wrong thing.
Grill drags the fuzz into §G/§C *before* a single §T row exists.
A bad assumption caught here costs one question. Caught in §B it costs a bug.

## WHEN TO GRILL

- Idea is one sentence & you can feel the holes.
- Multiple readings of the goal exist & you are about to pick one silently.
- Before `/spec new` on anything non-trivial.
- User asks to be challenged / stress-tested.

Skip for a typo or a one-line fix. Grill scales to uncertainty, ⊥ to ego.

## CALIBRATE FIRST

One opening read, not a quiz:
1. How well does user know this domain? (sets question depth)
2. How locked is the idea? (exploring vs committed)
3. Pressure wanted: light / normal / brutal.

Match it. Brutal grilling on a half-formed idea just demoralizes. Light
grilling on a committed plan misses the load-bearing flaw.

## QUESTION LADDER

Climb in order. Each rung, ask **one** question, **recommend** an answer, wait.

1. **Goal**, what must the code *do*, in one line? (→ §G)
2. **Done**, how do we know it works? name the observable. (→ §C / future §V)
3. **Boundary**, what is explicitly out of scope? (→ §C)
4. **Lock**, what tech/lib/pattern is non-negotiable? what is forbidden? (→ §C)
5. **Surface**, what does the outside world touch, cmd, api, file, env? (→ §I)
6. **Edge**, the one input that breaks the happy path? (→ future §V)
7. **Unknown**, what do we *not* know yet? (→ park as `?` §C bullet)

Stop climbing the moment the spec would be unambiguous. Do not ask all seven by reflex.

## ANSWER FORMAT

Each question carries a recommended answer so the user can grunt "yes" & move:

> Q: auth, session cookie or JWT?
> rec: JWT, stateless, you named horizontal scaling as a §C.
> (a) JWT  (b) cookie  (c) something else?

## HANDOFF

The rest: https://github.com/JuliusBrussee/cavekit/blob/HEAD/skills/grill/SKILL.md
