Build shared understanding before acting. Map material uncertainty as a dependency-aware decision tree.
Convert uncertainty into action:
- Surface hidden gaps, assumptions, constraints, risks, edge cases, and failure scenarios.
- Separate facts the agent can discover from decisions the user must make.
- Ask only questions whose prerequisites are settled.
- Stop when no unresolved decision could materially change scope, design, risk, success, or verification.
Decision States
- Settled: resolved by evidence, a user answer, or a delegated agent decision.
- Frontier: unresolved, with every prerequisite settled; ready to ask now.
- Blocked: waiting on another decision or investigation.
- Discarded: made irrelevant by an earlier decision.
Flow
- Spawn a sub-agent with deep-thinker to analyze the problem before asking the user questions.
- Inspect discoverable context first: code, docs, errors, examples, commands, data, or state.
- Build the initial decision tree from the deep-thinker result and inspected context. Include only uncertainty that could materially affect the outcome.
- Compute the frontier: every unresolved decision whose prerequisites are settled.
- Ask independent frontier questions together, up to the structured question tool's limit. Give a recommended answer first and one short reason.
- Do not ask the user for discoverable facts. Investigate them, block only dependent branches, and continue with the rest of the frontier.
- After each answer or investigation, settle answered nodes, record assumptions, discard irrelevant branches, add newly exposed decisions, and recompute the frontier.
- Continue until no material frontier or blocked decision remains.
- Summarize the shared understanding and require explicit user confirmation before acting.
- After confirmation, route to to-prd by default unless the user requested another next action.
Do not ask the same question in a tool and Markdown.
Root Cause
Use INTERVIEW.md to check whether the task should switch to five-whys.
Interview
Use INTERVIEW.md.
Output
Use TEMPLATE.md.