Skip to main content
skill CX Codex

grill — Claude Code skill: what it does, how to install

Stress-tests vague feature ideas one question at a time before any formal specification or code is written.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add JuliusBrussee/cavekit --skill grill -a claude-code
Open on GitHub

What grill does

grill interrogates half-formed project ideas before technical task lists exist. The skill asks exactly one question at a time, recommends an answer, and sorts the results into goals (§G) or constraints (§C). Missing details are parked with a ? tag instead of being guessed.

The questioning ladder adapts to how well the developer knows the domain and the chosen pressure level, such as normal or brutal. It clarifies boundaries, technical locks, and breaking inputs before any planning begins.

The skill makes no product decisions on its own and never writes SPEC.md directly. Once the idea is clear, grill hands the structured requirements block off to the companion spec skill.

What it helps with

  • stress-test a vague feature concept before writing a specification
  • identify rigid technical constraints and out-of-scope boundaries
  • mark unresolved architecture questions with ? without guessing
  • prepare structured goals and constraints for the spec skill

Example prompts for the agent

  • /ck:grill challenge my plan for migrating session auth to Redis
  • Interview me before I spec this background worker pipeline
  • Stress-test this caching idea with normal pressure

How to install grill

1Skills CLI (Vercel)

npx skills add JuliusBrussee/cavekit --skill grill -a claude-code

2Manually: put the files in place

~/.claude/skills/grill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/grill/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about grill

How to install grill in Claude Code?

Run npx skills add JuliusBrussee/cavekit --skill grill -a claude-code.

What does the grill skill do?

It runs a calibrated interview to extract clear goals and constraints from an ambiguous idea before a specification is drafted.

Does grill write to SPEC.md directly?

No, grill never alters SPEC.md. It formats the verified goals and constraints into a compact block and delegates writing to the spec skill.

Source text

SKILL.md · MIT
---
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.

© JuliusBrussee · MIT · JuliusBrussee/cavekit

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set9

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor