Skip to content
Back to skills

815 Interactive Questions C5e8874d

ASecurity

> Reusable patterns for user-friendly parameter collection **Version:** 1.0.0 **Last Updated:** 2026-01-25 ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
content-marketingjavascriptgojava

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 815-interactive-questions_c5e8874d --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 815 Interactive Questions C5e8874d?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 815 Interactive Questions C5e8874d
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-815-interactive-questions-c5e8874d/badge)](https://www.skillsdirectory.com/skills/tools-only-815-interactive-questions-c5e8874d)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Interactive Questions Component

> Reusable patterns for user-friendly parameter collection

**Version:** 1.0.0
**Last Updated:** 2026-01-25

---

## Overview

This component provides standardized patterns for collecting user input through interactive questions. All commands and agents should follow these patterns for consistent UX.

---

## Core Principles

1. **Always use `AskUserQuestion` tool** - Never rely on free-form text for structured inputs
2. **2-4 options per question** - Users can always select "Other" for custom input
3. **Max 5-7 questions per flow** - Keep flows concise
4. **Progressive disclosure** - One question at a time
5. **Confirm before execution** - Show summary, get approval

### Option Count Rules

| Question Type | Min | Max | Notes |
|--------------|-----|-----|-------|
| Single select | 2 | 4 | "Other" is implicit, always available |
| Multi-select | 2 | 4 | Group related items if exceeding |
| Confirmation | 2 | 2 | Yes/No only |

---

## Standard Question Format

### Basic Question Structure

```javascript
AskUserQuestion({
  questions: [{
    question: "Clear, specific question ending with ?",
    header: "ShortLabel",  // Max 12 characters
    multiSelect: false,    // true for multiple selections
    options: [
      { label: "Option 1 (Recommended)", description: "Why choose this" },
      { label: "Option 2", description: "Brief explanation" },
      { label: "Option 3", description: "Brief explanation" },
      { label: "Option 4", description: "Brief explanation" }
    ]
  }]
})
```

### Naming Conventions

| Element | Convention | Example |
|---------|------------|---------|
| Header | CamelCase, max 12 chars | "TimeRange", "Audience" |
| Label | Title Case, concise | "Last 30 Days" |
| Description | Sentence case, helpful | "Most common reporting period" |

---

## Preset Pattern

For complex commands, offer preset configurations:

```javascript
AskUserQuestion({
  questions: [{
    question: "What level of analysis do you need?",
    header: "Scope",
    multiSelect: false,
    options: [
      {
        label: "Basic",
        description: "Quick results, minimal parameters"
      },
      {
        label: "Recommended",
        description: "Balanced depth and speed - best for most cases"
      },
      {
        label: "Complete",
        description: "Comprehensive analysis, all parameters"
      },
      {
        label: "Custom",
        description: "I'll select each parameter individually"
      }
    ]
  }]
})
```

### Preset Configurations

| Preset | Use Case | Questions |
|--------|----------|-----------|
| Basic | Quick tasks, familiar users | 1-2 questions |
| Recommended | Default for most users | 3-4 questions |
| Complete | Detailed control needed | 5-7 questions |
| Custom | Power users | All available questions |

---

## Multi-Select Pattern

When users can select multiple options:

```javascript
AskUserQuestion({
  questions: [{
    question: "Which channels should we include?",
    header: "Channels",
    multiSelect: true,  // Enable multiple selection
    options: [
      { label: "Email", description: "Email marketing campaigns" },
      { label: "Social", description: "Social media platforms" },
      { label: "Paid Ads", description: "PPC and display advertising" },
      { label: "Organic", description: "SEO and content marketing" }
    ]
  }]
})
```

---

## Confirmation Pattern

Always confirm before execution:

```markdown
## Configuration Summary

| Parameter | Value |
|-----------|-------|
| Scope | [Selected scope] |
| Time Period | [Selected period] |
| Channels | [Selected channels] |
| Output | [Expected output] |

**Estimated processing:** [Time estimate if applicable]
```

```javascript
AskUserQuestion({
  questions: [{
    question: "Proceed with this configuration?",
    header: "Confirm",
    multiSelect: false,
    options: [
      { label: "Yes, proceed", description: "Start the analysis/generation" },
      { label: "No, change settings", description: "Go back and modify parameters" }
    ]
  }]
})
```

---

## Contextual Options Pattern

Generate options based on previous answers:

```markdown
### Example: Content Type Based on Goal

If user selected "Lead Generation" as goal:
- Options: Ebook, Whitepaper, Webinar, Free Tool

If user selected "Brand Awareness" as goal:
- Options: Blog Post, Infographic, Video, Social Campaign
```

### Implementation

```javascript
// After receiving goal answer
const goalBasedOptions = {
  "Lead Generation": [
    { label: "Ebook", description: "In-depth downloadable guide" },
    { label: "Whitepaper", description: "Research-backed content" },
    { label: "Webinar", description: "Live or recorded presentation" },
    { label: "Free Tool", description: "Interactive calculator or template" }
  ],
  "Brand Awareness": [
    { label: "Blog Post", description: "SEO-optimized article" },
    { label: "Infographic", description: "Visual data representation" },
    { label: "Video", description: "Engaging video content" },
    { label: "Social Campaign", description: "Multi-platform social push" }
  ]
};
```

---

## Error Handling

### No Selection Made

If user doesn't select anything, re-ask with guidance:

```javascript
AskUserQuestion({
  questions: [{
    question: "Please select an option to continue. Which do you prefer?",
    header: "Required",
    // ... options with "Recommended" clearly marked
  }]
})
```

### Invalid Custom Input

If "Other" selected but input is unclear:

```javascript
AskUserQuestion({
  questions: [{
    question: "Could you clarify? Please provide [specific detail needed]",
    header: "Clarify",
    options: [
      { label: "[Interpreted option 1]", description: "Did you mean this?" },
      { label: "[Interpreted option 2]", description: "Or this?" },
      { label: "Let me rephrase", description: "I'll provide more detail" }
    ]
  }]
})
```

---

## Language Support

Always detect and match user's language:

```markdown
**CRITICAL**: Respond in the same language the user is using.

- If user writes in Vietnamese → Questions in Vietnamese
- If user writes in Japanese → Questions in Japanese
- Default to English if unclear
```

### Localized Options Example

```javascript
// English
{ label: "Last 30 Days", description: "Most recent month" }

// Vietnamese
{ label: "30 Ngày Qua", description: "Tháng gần nhất" }

// Japanese
{ label: "過去30日", description: "直近1ヶ月" }
```

---

## Integration with Date Helpers

For date-related questions, always use `date-helpers.md` first:

```markdown
### Step 0: Get Current Date
**Reference:** `./.claude/components/date-helpers.md`

Execute date calculation BEFORE asking time-related questions.
```

---

## Best Practices Checklist

Before implementing interactive questions:

- [ ] Maximum 5-7 questions per flow
- [ ] Each question has 2-4 options + implicit "Other"
- [ ] Headers are under 12 characters
- [ ] Descriptions explain WHY to choose each option
- [ ] One option marked as "Recommended" when appropriate
- [ ] Confirmation step before execution
- [ ] Error handling for invalid inputs
- [ ] Language matches user's language
- [ ] Date questions use date-helpers.md

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.