| name | ask-user |
| description | Pattern for effectively interacting with users to gather information or get decisions. Use when you need user input. |
| allowed-tools | AskUserQuestion |
Ask User Skill
Pattern for effective user interaction.
When to Load This Skill
- You need to clarify requirements
- You need user to make a decision
- You have options to present
Principles
1. Be Specific, Not Open-Ended
Bad: "What do you want?" Good: "Should authentication use JWT or sessions?"
2. Offer Options When Possible
AskUserQuestion(
questions: [
{
question: "Which authentication method should we use?",
header: "Auth method",
options: [
{ label: "JWT", description: "Stateless, good for APIs" },
{ label: "Sessions", description: "Stateful, good for web apps" }
],
multiSelect: false
}
]
)
3. Provide Context
Explain WHY you're asking:
- What decision depends on this
- What trade-offs exist
- What you recommend and why
4. Batch Related Questions
Ask related questions together:
questions: [
{ question: "Auth method?", ... },
{ question: "Token expiry?", ... },
{ question: "Refresh token?", ... }
]
When to Ask vs Decide
ASK when:
- Multiple valid approaches with different trade-offs
- User preference matters
- Scope is unclear
- Risk of wasted work
DECIDE when:
- Clear best practice exists
- Low impact choice
- Easily reversible
- Standard convention applies
Question Types
Clarification
"You mentioned 'fast' - do you mean response time < 100ms or just faster than current?"
Confirmation
"I understand you want X, Y, and Z. Is this correct?"
Decision
"Option A has [pros/cons]. Option B has [pros/cons]. Which do you prefer?"
Scope
"Should this also handle [related case] or just [original request]?"