home / skills / oaustegard / claude-skills / asking-questions
npx playbooks add skill oaustegard/claude-skills --skill asking-questionsReview the files below or copy the command above to add this skill to your agents.
---
name: asking-questions
description: Guidance for asking clarifying questions when user requests are ambiguous, have multiple valid approaches, or require critical decisions. Use when implementation choices exist that could significantly affect outcomes.
metadata:
version: 1.0.7
---
# Asking Questions
## Purpose
Ask clarifying questions when the answer materially changes what you'll build. This skill helps identify when to ask, how to structure questions effectively, and when to proceed autonomously.
## When to Use
Ask questions for:
1. **Ambiguous implementation choices** - Multiple valid technical approaches (middleware vs wrapper functions, library selection, architectural patterns)
2. **Missing critical context** - Specific information needed (database type, deployment platform, credential management)
3. **Potentially destructive actions** - Requests that could be interpreted dangerously ("clean up files" = delete vs archive)
4. **Scope clarification** - Vague terms like "refactor," "optimize," or "improve"
5. **Conflicting requirements** - Goals that may work against each other ("make it faster" + "add extensive logging")
6. **Technical trade-offs** - Solutions with different costs/benefits depending on priorities
## When NOT to Use
Don't ask when:
- **Request is clear and unambiguous** - One obvious implementation path
- **You can determine the answer from context** - Codebase patterns, project structure, existing conventions
- **Over-clarification** - Questions that don't materially affect implementation
- **Standard engineering practices** - Established patterns already in the codebase
## Question Structure
### Template
```
[Context: What you found/analyzed]
[Present 2-5 specific options with brief trade-offs]
[Direct question asking for preference]
[Optional: Offer to make reasonable default choice]
```
### Guidelines
1. **Acknowledge understanding first** - Show you've analyzed the situation
- "I found your API endpoints and see you're using Express..."
2. **Present clear options** - Offer 2-5 specific choices with brief context
```
I can implement this in several ways:
1. **Global middleware** - Catches all errors centrally (simplest)
2. **Wrapper functions** - More granular control per endpoint
3. **Custom error classes** - Typed errors with status codes
```
3. **Ask directly** - Clear question that guides decision
- "Which approach fits your needs?"
4. **Offer autonomy (optional)** - For less critical decisions
- "I can implement option 2 as it's the safest, or let me know if you prefer something else."
## Progressive Disclosure
Layer questions instead of asking everything upfront:
**Good ✓**
- First: "For real-time updates, should I use WebSockets, Server-Sent Events, or polling?"
- Then: "For WebSockets, do you want Socket.io (easier) or native (lighter)?"
**Bad ✗**
- "For real-time updates should I use WebSockets or SSE or polling and if WebSockets should I use Socket.io or native and should I implement reconnection and what about authentication and..."
## Examples
### Good ✓
"I see you're using JWT authentication. To add refresh tokens, I can:
1. **httpOnly cookies** - More secure, harder to XSS
2. **localStorage** - Simpler, works with mobile apps
3. **In-memory only** - Most secure, lost on refresh
What works best for your use case?"
### Bad ✗
"How should I implement the authentication refresh token storage mechanism considering security implications, XSS vulnerabilities, mobile compatibility, UX impacts, and compliance considerations?"
*Too verbose, no clear options, asks everything at once*
---
### Good ✓
"You mentioned 'clean up migrations.' Do you want me to archive them to /old-migrations or delete them entirely? (Note: deletion can break databases that haven't run them yet)"
### Bad ✗
"What do you mean by clean up?"
*Too vague, doesn't guide the decision*
## After Receiving an Answer
1. **Acknowledge** - Confirm you understood their choice
2. **Proceed immediately** - Don't ask if they want you to continue
3. **Apply preferences** - If they chose "security first" once, lean that direction for similar future choices
## Key Principle
**Ask only when the answer materially changes what you'll build.** Avoid building the wrong thing, not asking questions for the sake of asking.