Explores user intent, requirements and design before implementation through structured questioning. Use for medium/high-complexity creative work: new features, significant component changes, or behavioral modifications that need design exploration. Not for simple clarification with 1-3 unknowns (use ask-questions-if-underspecified instead).
Help turn ideas into fully formed designs and specs through structured collaborative dialogue using the question tool for deeper exploration.
Start by understanding the current project context, then systematically clarify requirements and design intent. Use the question tool to gather batches of related questions, deepening understanding before moving to design phases. Once you understand what you're building, present the design in small sections (120-250 words), checking after each section whether it looks right so far.
If the current runtime supports interactive tools, pick any available tool suitable for collecting user input — common examples include AskUserQuestion, ask_user, request_user_input, question, and similar. Choose whichever one works; there is no required order. If none are available, ask the same questions directly in chat (plain text).
Understanding the idea:
⛔ Gate: Confirm understanding before proceeding
Do not move to design or implementation until you can answer all three:
"Confirmed" means you can write a 2-sentence summary that the user would agree is correct — not just that they answered your questions. If their answers are vague ("make it better", "just make it work"), that counts as unclear — ask a follow-up that rephrases the question more concretely. Do not guess or assume.
If two rounds of questions haven't resolved one of these three, surface the ambiguity explicitly: "I'm still unclear on [X]. Without knowing this, the design could go in very different directions. Can you give me a concrete example?"
Check for contradictions before exploring approaches: Before proposing anything, scan the answers for internal conflicts — e.g., "minimal scope" but a constraint that forces large changes, or "fast delivery" but a quality bar that requires extensive testing. Surface any conflict explicitly: "Your answers point in two directions on [X] — which takes priority?" Resolve contradictions before moving on; don't paper over them in the design.
Exploring approaches:
Presenting the design:
Documentation (if user requests):
docs/plans/YYYY-MM-DD-<topic>-design.mdImplementation (if continuing):
When using the question tool, structure questions like this:
1) What is the primary user goal?
a) [goal A] (default)
b) [goal B]
c) [goal C]
2) Should this integrate with [existing system]?
a) Yes, tight integration (default)
b) Yes, loose integration
c) No, standalone
d) Not sure - use default
3) Performance priority?
a) Speed is critical
b) Balanced (default)
c) Not a concern
Reply: defaults (or 1a 2b 3c)