Claude Code Plugins

Community-maintained marketplace

Feedback
57
0

Use AskUserQuestion tool with prefilled options for clearer communication

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name ask-questions
description Use AskUserQuestion tool with prefilled options for clearer communication
user_invocable false

Asking Questions

When Claude needs user input, use the AskUserQuestion tool with thoughtful prefilled options.


When to Use AskUserQuestion

Use this tool when:

  • Clarifying user intent or requirements
  • Offering implementation choices
  • Confirming before consequential actions
  • Gathering preferences

Don't use for:

  • Simple yes/no confirmations (just ask in text)
  • Open-ended creative questions
  • Situations where options can't reasonably be anticipated

Best Practices

Anticipate Likely Answers

Before asking, think: "What would the user most likely answer?"

Good options:

  • Common choices in the domain
  • Options that match context clues from the conversation
  • A recommended option (mark as first with "(Recommended)")

Bad options:

  • Options that are too similar
  • Overly technical when user is non-technical
  • Missing obvious choices

Structure Questions Clearly

Field Guidance
header Short label (max 12 chars): "Approach", "Format", "Target"
question Complete, specific question ending with ?
options 2-4 distinct choices with clear descriptions
multiSelect true when choices aren't mutually exclusive

Example Patterns

Clarifying approach:

{
  "questions": [{
    "header": "Approach",
    "question": "How should I structure the new API endpoint?",
    "multiSelect": false,
    "options": [
      {"label": "REST (Recommended)", "description": "Standard REST endpoint matching existing patterns"},
      {"label": "GraphQL", "description": "Add to existing GraphQL schema"},
      {"label": "Both", "description": "Support both REST and GraphQL"}
    ]
  }]
}

Gathering preferences:

{
  "questions": [{
    "header": "Output",
    "question": "What format would you like for the report?",
    "multiSelect": false,
    "options": [
      {"label": "Markdown", "description": "Easy to read and share"},
      {"label": "JSON", "description": "Machine-readable for further processing"},
      {"label": "CSV", "description": "Import into spreadsheets"}
    ]
  }]
}

Multiple selections:

{
  "questions": [{
    "header": "Features",
    "question": "Which features should the component include?",
    "multiSelect": true,
    "options": [
      {"label": "Pagination", "description": "Navigate through large datasets"},
      {"label": "Sorting", "description": "Click columns to sort"},
      {"label": "Filtering", "description": "Search/filter rows"},
      {"label": "Export", "description": "Download as CSV"}
    ]
  }]
}

Anti-Patterns

DON'T ask in plain text when options are clear

Bad:  "Should I use TypeScript or JavaScript?"
Good: AskUserQuestion with TS/JS options and descriptions

DON'T provide vague option descriptions

Bad:  {"label": "Option A", "description": "One approach"}
Good: {"label": "Inline styles", "description": "Quick to implement, harder to maintain"}

DON'T forget the recommended option

If there's a clearly better choice, put it first with "(Recommended)".

DON'T overuse for simple questions

For quick confirmations, plain text is fine:

"I'll delete the old migration files. Sound good?"

Remember

Users can always select "Other" to provide custom input, so don't stress about covering every edge case. Focus on the 2-4 most likely answers.