grilling
Interview the user relentlessly until you reach a shared understanding. Map this as a design tree: every decision branches into the decisions that hang off it.
Work the tree in rounds. 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.
Ask at most 2–3 questions per round — never more. From the frontier, pick the most critical, most blocking decisions — the ones whose answers unblock the most downstream questions — and defer the rest to later rounds. The user's screen is small: a long numbered list forces them to scroll up and down between each question and the answer they are typing, and a wall of open questions breeds anxiety rather than clarity. Two-to-three is the sweet spot: enough to move the tree forward in parallel where decisions are genuinely independent, few enough to hold in the head and answer without scrolling. If the frontier holds more than three, rank by impact and carry only the top 2–3 into this round; the rest are not lost — they become the opening of the next round once these are settled. Number each question and give your recommended answer. Then wait for the user's answers before the next round.
Each question should be formatted like so:
❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices>
➡️ <your recommended answer>
Word each question so "yes" accepts your recommended answer.
Each round the user answers reshapes the tree — settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a later round, not this one.
Finding facts is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it — don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report — ask the rest of this round's 2–3 now. The decisions are the user's — put each to them and wait.