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. 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 one question at a time, and wait. Asking several at once is bewildering, and answers come back as a list nobody thought about. Pick the frontier question everything else hangs on, ask it, and recompute the frontier from the answer.
Format a question like so:
**<the situation in a few words>**
<one concrete scenario: who, what they do, and what happens today — in the user's own words>
❓ **<the question, whole on its own>**
➡️ **<your recommended answer>** - <why, in plain English>
↳ <the fact this rests on and where it came from (`file:line`, a command, a doc)>
Lettered options follow only when the choices genuinely differ; a question with one sensible answer is asked as a check — "I'm assuming X — right?". If the user asks you something, answer it before your next question, and follow them when they change the subject.