Vague: Requirement Clarification
Transform vague or ambiguous requirements into precise, actionable specifications through hypothesis-driven questioning. ALWAYS use the AskUserQuestion tool — never ask clarifying questions in plain text.
When to Use
-
Ambiguous feature requests ("add a login feature")
-
Incomplete bug reports ("the export is broken")
-
Underspecified tasks ("make the app faster")
For strategy/planning blind spot analysis, use the unknown skill. For content-vs-form reframing, use the metamedium skill.
Core Principle: Hypotheses as Options
Present plausible interpretations as options instead of asking open questions. Each option is a testable hypothesis about what the user actually means.
BAD: "What kind of login do you want?" ← open question, high cognitive load GOOD: "OAuth / Email+Password / SSO / Magic link" ← pick one, lower load
Protocol
Phase 1: Capture and Diagnose
Record the original requirement verbatim. Identify ambiguities:
-
What is unclear or underspecified?
-
What assumptions would need to be made?
-
What decisions are left to interpretation?
Phase 2: Iterative Clarification
Use AskUserQuestion to resolve ambiguities. Batch up to 4 related questions per call. Each option is a hypothesis about what the user means.
Cap: 5-8 total questions. Stop when all critical ambiguities are resolved, OR user indicates "good enough", OR cap reached.
Example AskUserQuestion call:
questions:
- question: "Which authentication method should the login use?"
header: "Auth method"
options:
- label: "Email + Password" description: "Traditional signup with email verification"
- label: "OAuth (Google/GitHub)" description: "Delegated auth, no password management needed"
- label: "Magic link" description: "Passwordless email-based login" multiSelect: false
- question: "What should happen after registration?"
header: "Post-signup"
options:
- label: "Immediate access" description: "User can use the app right away"
- label: "Email verification first" description: "Must confirm email before access" multiSelect: false
Phase 3: Before/After Summary
Present the transformation:
Requirement Clarification Summary
Before (Original)
"{original request verbatim}"
After (Clarified)
Goal: [precise description] Scope: [included and excluded] Constraints: [limitations, preferences] Success Criteria: [how to know when done]
Decisions Made:
| Question | Decision |
|---|---|
| [ambiguity 1] | [chosen option] |
Phase 4: Save Option
Ask whether to save the clarified requirement to a file. Default location: requirements/ or project-appropriate directory.
Ambiguity Categories
Category Example Hypotheses
Scope All users / Admins only / Specific roles
Behavior Fail silently / Show error / Auto-retry
Interface REST API / GraphQL / CLI
Data JSON / CSV / Both
Constraints <100ms / <1s / No requirement
Priority Must-have / Nice-to-have / Future
Rules
-
Hypotheses, not open questions: Every option is a plausible interpretation
-
No assumptions: Ask, don't assume
-
Preserve intent: Refine, don't redirect
-
5-8 questions max: Beyond this is fatigue
-
Batch related questions: Up to 4 per AskUserQuestion call
-
Track changes: Always show before/after