/grill
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.
$ npx -y skills add JuliusBrussee/cavekit --skill grill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/grill
Context preview
The summary Claude sees to decide when to auto-load this skill.
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.
SKILL.md
grill.SKILL.mdname: grill
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.
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
When done, emit a compact block — goal line, constraint bullets, surfaced unknowns as `?` — and hand to the **spec** skill to write §G/§C. Grill proposes; spec is the sole mutator. Never write SPEC.md directly.
WHEN TO STOP
Done when ALL hold:
- §G is one line, one reading, zero "or maybe".
- §C covers every non-negotiable the user stated or implied.
- Every blocking unknown is either answered or parked as an explicit `?`.
Unresolved blocking unknown that needs the outside world → recommend `/research`, not a guess.
BOUNDARIES
- ⊥ make product decisions for the user. Recommend, never decide.
- ⊥ write SPEC.md. Hand structured answers to spec.
- ⊥ ask in bulk. One question, one recommendation, wait.
- ⊥ grill a trivial change. Right-size or skip.
Read more
name: grill 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.
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
When done, emit a compact block — goal line, constraint bullets, surfaced unknowns as `?` — and hand to the **spec** skill to write §G/§C. Grill proposes; spec is the sole mutator. Never write SPEC.md directly.
WHEN TO STOP
Done when ALL hold:
- §G is one line, one reading, zero "or maybe".
- §C covers every non-negotiable the user stated or implied.
- Every blocking unknown is either answered or parked as an explicit `?`.
Unresolved blocking unknown that needs the outside world → recommend `/research`, not a guess.
BOUNDARIES
- ⊥ make product decisions for the user. Recommend, never decide.
- ⊥ write SPEC.md. Hand structured answers to spec.
- ⊥ ask in bulk. One question, one recommendation, wait.
- ⊥ grill a trivial change. Right-size or skip.
A Claude Code plugin that turns natural language into blueprints, blueprints into parallel build plans, and build plans into working software with automated iteration, validation, and cross-model peer review.
Other skills on ck.
- /backprop
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or
Open skill - /build
Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure, auto-invokes the backprop skill before retrying — a failed verification always considers whether a new §V invariant would prevent recurrence. Triggers when the
Open skill - /caveman
Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying precise. Triggers on any write to SPEC.md or when user says "caveman", "compress this", "be brief".
Open skill - /check
Read-only drift detector. Diffs SPEC.md against current code and reports violations grouped by severity. Writes nothing — suggests remedies via the spec or build skills but never invokes them. Triggers when the user asks to check drift, audit the spec, verify invariants, or ask
Open skill - /deepen
Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec touches, researches a deeper design, and proposes refactors that shrink interfaces and hide decisions — behavior held constant, tests green before and
Open skill - /research
Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of hallucinating library behavior. Each finding cites a source; unsourced claims are flagged, never written as fact. Triggers when a spec decision
Open skill

