Skip to content

/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.

From plugin
ck
1.2k9 skills7 commands

Claude Code

$ npx -y skills add JuliusBrussee/cavekit --skill grill --agent claude-code

SKILL.md

grill.SKILL.md
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.
Read more
@juliusbrussee
Ships withck

Frozen — compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.

Stars on GitHub

Momentum

stars in total
1.2k
Star history of JuliusBrussee/cavekit on GitHub, a chart by star-history.com

Other skills on ck.

backprop
Auto-invoked

backprop

Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…

@juliusbrussee@juliusbrusseeInstall Skill
build
Auto-invoked

build

Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure,…

@juliusbrussee@juliusbrusseeInstall Skill
caveman
Auto-invoked

caveman

Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying…

@juliusbrussee@juliusbrusseeInstall Skill
check
Auto-invoked

check

Read-only drift detector. Diffs SPEC.md against current code and reports violations grouped by severity. Writes nothing —…

@juliusbrussee@juliusbrusseeInstall Skill
deepen
Auto-invoked

deepen

Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec…

@juliusbrussee@juliusbrusseeInstall Skill
research
Auto-invoked

research

Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of…

@juliusbrussee@juliusbrusseeInstall Skill

More skills from other plugins.

improve

improve

Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to…

improve2mo12k
@shadcn@shadcnInstall Skill
kiro-debug

kiro-debug

Investigate implementation failures using root-cause-first debugging. Use when an implementer is blocked, verification fails, or…

cc-sdd3w3.8k
@gotalab@gotalabInstall Skill
deep-discuss

deep-discuss

结构化深度讨论 Skill,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…

Questions about grill.

Which coding agents can use grill?
grill installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.