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.
SkillScore73Maintained
Automatic
◆Product Management pack
Last verified 8/15/2026
What it changes
Passed 16 of 22 test cases with the skill, and 8 of 22 without it.
Without skill36%
With skill73%
Checks it passed that the model alone missed
Includes a recommended answer.
Asks exactly one single question.
Refuses to ask questions in bulk.
and 10 more in the full report
8 fixed8 passed either way6 still failing0 broke
Pass-rate lift
+36 pp
Tokens
+12%
Agent turns
0%
Response time
-45%
Model gemini-3.6-flashMeasured 8/15/2026v116 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 8
Prompt
We established our single-line goal for cache-invalidator: 'Purge redis key patterns whenever a CMS publish event fires'. Now move to the next step in stress-testing this utility by asking one single question about how we verify it works.
What was checked, without and with the skill
Checked
Without skill
With skill
Asks exactly one question focusing on observable verification criteria.
Passed
Passed
Includes a recommended answer.
Missed
Passed
case-09 · gemini-3.6-flash · 8/15/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md70 linessingle file
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:
How well does user know this domain? (sets question depth)
How locked is the idea? (exploring vs committed)
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.
Goal — what must the code do, in one line? (→ §G)
Done — how do we know it works? name the observable. (→ §C / future §V)
Boundary — what is explicitly out of scope? (→ §C)
Lock — what tech/lib/pattern is non-negotiable? what is forbidden? (→ §C)
Surface — what does the outside world touch — cmd, api, file, env? (→ §I)
Edge — the one input that breaks the happy path? (→ future §V)
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.
Create, amend, or backprop bugs into SPEC.md at repo root. Sole mutator
of the project spec. Triggers when the user asks to write a spec, start
a new spec, distill a spec from existing code, add invariants, amend
sections (§G, §C, §I, §V, §T, §B), or record a bug via backprop.
Common phrasings: "write the spec for...", "new spec", "bug: ...",
"amend §V.3", "distill spec from code", "spec this idea". Reads and
follows FORMAT.md for the caveman encoding rules and pipe-table shape
of §T and §B.