Systematic ambiguity resolution through tiered information gathering...
Core principle: Rather ask than guess. Wrong assumptions waste more time than clarifying questions.
Technical/Factual - "How does X work?" "What is the correct syntax?" ā Likely found in project or online sources ā Follow the tiered lookup process
Intent/Choice - "Which approach should I use?" "What does the user want?" ā Requires user input ā Use AskUserQuestion immediately
If ambiguity is technical/factual:
ā Follow <tiered_lookup> process
Read .claude/workspace-info.toon
Read .claude/project-info.toon
Task(subagent_type="Explore", model="haiku", prompt="""
Check for context files:
- .claude/workspace-info.toon
- .claude/project-info.toon
If found, extract relevant information about: {specific question}
Return only the relevant fields, not the entire file.
""")
Look within current scope for:
CLAUDE.md - Project instructions and conventionsREADME.md - Project overview and setupARCHITECTURE.md or docs/architecture.md - Design decisionspackage.json, tsconfig.json (JavaScript/TypeScript)pyproject.toml, setup.py (Python)Cargo.toml (Rust).env.example (environment variables)Glob for architectural files:
- **/CLAUDE.md
- **/README.md
- **/ARCHITECTURE.md
- **/docs/*.md
If MCP tools are available for documentation lookup:
mcp__context7__* for library documentationmcp__firecrawl__* for web documentationThese provide structured access to official documentation.
Use WebSearch and WebFetch for:
Prefer sources in this order:
If all tiers exhausted without answer ā proceed to <user_clarification>
AskUserQuestion with structure:
- Question: Clear, specific question explaining context
- Options ordered by preference:
1. Best practice / Most common / Recommended
2. Good alternative
3. Another valid option
4. Least recommended / Has drawbacks
- Each option includes description explaining implications
- User can always select "Other" for custom input
Options (ordered best ā least recommended):
Each option explains trade-offs so user can make informed choice.
DO NOT GUESS. Ask an open-ended question instead.
AskUserQuestion:
- Question: Explain what you need to know and why
- Options:
1. A general direction if you have any hint
2. (Keep options minimal or omit entirely)
- Allow free-form input as primary response method
Question: "I need to configure the database connection. What database are you using and what are the connection details?"
Options:
This is better than guessing "PostgreSQL" or "MySQL" when you don't know.
Resolution path:
Resolution path:
Resolution path:
Resolution path:
Resolution path:
Resolution path:
Signs of good resolution: