home / skills / oaustegard / claude-skills / asking-questions

asking-questions skill

/asking-questions

npx playbooks add skill oaustegard/claude-skills --skill asking-questions

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
4.3 KB
---
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.