optional-skills/software-development/grill-me/SKILL.md
Stress-tests a plan through structured adversarial questioning before any code is written. Models the plan as a design tree — every decision branches into the decisions that hang off it — and interviews the user in rounds until every branch is resolved and nothing is silently assumed.
Combines the phase discipline of the original with the frontier-rounds
mechanic from mattpocock/skills' grilling.
subagent-driven-development decompositionDo NOT use for existing code (use requesting-code-review) or simple one-off
tasks.
None. The skill works on any plan or raw idea.
Map the plan as a design tree. The frontier is every decision whose prerequisites are already settled — the questions you can ask NOW without guessing at answers you haven't heard yet.
Work in rounds: ask the whole current frontier in one message, numbered, each question carrying your recommended answer. Then wait. A question whose answer depends on another question still open in this round belongs to a LATER round, not this one.
Format each round like so:
❓ Q1 — <question title>: <question body, options if relevant>
➡️ Recommendation: <your recommended answer + one-line why>
❓ Q2 — <question title>: <question body>
➡️ Recommendation: <...>
Each answer reshapes the tree: settled decisions push the frontier outward and unblock dependent questions. Recompute the frontier and ask the next round.
Facts are your job; decisions are the user's. When a frontier question
needs a fact from the environment (codebase, filesystem, config, docs), find
it yourself with search_files / read_file / terminal — or dispatch a
subagent via delegate_task for a heavy exploration. Never ask the user for
anything you could look up. Don't block on an exploration: only the questions
downstream of it wait; ask the rest of the frontier now.
Understanding — the real goal and boundaries:
Technical decisions — for each architectural choice:
Edge cases:
Do not act on the plan until the user confirms shared understanding.