| # Interactive Command Patterns |
|
|
| Comprehensive guide to creating commands that gather user feedback and make decisions through the AskUserQuestion tool. |
|
|
| ## Overview |
|
|
| Some commands need user input that doesn't work well with simple arguments. For example: |
| - Choosing between multiple complex options with trade-offs |
| - Selecting multiple items from a list |
| - Making decisions that require explanation |
| - Gathering preferences or configuration interactively |
|
|
| For these cases, use the **AskUserQuestion tool** within command execution rather than relying on command arguments. |
|
|
| ## When to Use AskUserQuestion |
|
|
| ### Use AskUserQuestion When: |
|
|
| 1. **Multiple choice decisions** with explanations needed |
| 2. **Complex options** that require context to choose |
| 3. **Multi-select scenarios** (choosing multiple items) |
| 4. **Preference gathering** for configuration |
| 5. **Interactive workflows** that adapt based on answers |
|
|
| ### Use Command Arguments When: |
|
|
| 1. **Simple values** (file paths, numbers, names) |
| 2. **Known inputs** user already has |
| 3. **Scriptable workflows** that should be automatable |
| 4. **Fast invocations** where prompting would slow down |
|
|
| ## AskUserQuestion Basics |
|
|
| ### Tool Parameters |
|
|
| ```typescript |
| { |
| questions: [ |
| { |
| question: "Which authentication method should we use?", |
| header: "Auth method", // Short label (max 12 chars) |
| multiSelect: false, // true for multiple selection |
| options: [ |
| { |
| label: "OAuth 2.0", |
| description: "Industry standard, supports multiple providers" |
| }, |
| { |
| label: "JWT", |
| description: "Stateless, good for APIs" |
| }, |
| { |
| label: "Session", |
| description: "Traditional, server-side state" |
| } |
| ] |
| } |
| ] |
| } |
| ``` |
|
|
| **Key points:** |
| - Users can always choose "Other" to provide custom input (automatic) |
| - `multiSelect: true` allows selecting multiple options |
| - Options should be 2-4 choices (not more) |
| - Can ask 1-4 questions per tool call |
|
|
| ## Command Pattern for User Interaction |
|
|
| ### Basic Interactive Command |
|
|
| ```markdown |
| --- |
| description: Interactive setup command |
| allowed-tools: AskUserQuestion, Write |
| --- |
|
|
| # Interactive Plugin Setup |
|
|
| This command will guide you through configuring the plugin with a series of questions. |
|
|
| ## Step 1: Gather Configuration |
|
|
| Use the AskUserQuestion tool to ask: |
|
|
| **Question 1 - Deployment target:** |
| - header: "Deploy to" |
| - question: "Which deployment platform will you use?" |
| - options: |
| - AWS (Amazon Web Services with ECS/EKS) |
| - GCP (Google Cloud with GKE) |
| - Azure (Microsoft Azure with AKS) |
| - Local (Docker on local machine) |
|
|
| **Question 2 - Environment strategy:** |
| - header: "Environments" |
| - question: "How many environments do you need?" |
| - options: |
| - Single (Just production) |
| - Standard (Dev, Staging, Production) |
| - Complete (Dev, QA, Staging, Production) |
|
|
| **Question 3 - Features to enable:** |
| - header: "Features" |
| - question: "Which features do you want to enable?" |
| - multiSelect: true |
| - options: |
| - Auto-scaling (Automatic resource scaling) |
| - Monitoring (Health checks and metrics) |
| - CI/CD (Automated deployment pipeline) |
| - Backups (Automated database backups) |
|
|
| ## Step 2: Process Answers |
|
|
| Based on the answers received from AskUserQuestion: |
|
|
| 1. Parse the deployment target choice |
| 2. Set up environment-specific configuration |
| 3. Enable selected features |
| 4. Generate configuration files |
|
|
| ## Step 3: Generate Configuration |
|
|
| Create `.claude/plugin-name.local.md` with: |
|
|
| \`\`\`yaml |
| --- |
| deployment_target: [answer from Q1] |
| environments: [answer from Q2] |
| features: |
| auto_scaling: [true if selected in Q3] |
| monitoring: [true if selected in Q3] |
| ci_cd: [true if selected in Q3] |
| backups: [true if selected in Q3] |
| --- |
| |
| # Plugin Configuration |
| |
| Generated: [timestamp] |
| Target: [deployment_target] |
| Environments: [environments] |
| \`\`\` |
|
|
| ## Step 4: Confirm and Next Steps |
|
|
| Confirm configuration created and guide user on next steps. |
| ``` |
| |
| ### Multi-Stage Interactive Workflow |
| |
| ```markdown |
| --- |
| description: Multi-stage interactive workflow |
| allowed-tools: AskUserQuestion, Read, Write, Bash |
| --- |
|
|
| # Multi-Stage Deployment Setup |
|
|
| This command walks through deployment setup in stages, adapting based on your answers. |
|
|
| ## Stage 1: Basic Configuration |
|
|
| Use AskUserQuestion to ask about deployment basics. |
|
|
| Based on answers, determine which additional questions to ask. |
|
|
| ## Stage 2: Advanced Options (Conditional) |
|
|
| If user selected "Advanced" deployment in Stage 1: |
|
|
| Use AskUserQuestion to ask about: |
| - Load balancing strategy |
| - Caching configuration |
| - Security hardening options |
|
|
| If user selected "Simple" deployment: |
| - Skip advanced questions |
| - Use sensible defaults |
|
|
| ## Stage 3: Confirmation |
|
|
| Show summary of all selections. |
|
|
| Use AskUserQuestion for final confirmation: |
| - header: "Confirm" |
| - question: "Does this configuration look correct?" |
| - options: |
| - Yes (Proceed with setup) |
| - No (Start over) |
| - Modify (Let me adjust specific settings) |
|
|
| If "Modify", ask which specific setting to change. |
|
|
| ## Stage 4: Execute Setup |
|
|
| Based on confirmed configuration, execute setup steps. |
| ``` |
| |
| ## Interactive Question Design |
| |
| ### Question Structure |
| |
| **Good questions:** |
| ```markdown |
| Question: "Which database should we use for this project?" |
| Header: "Database" |
| Options: |
| - PostgreSQL (Relational, ACID compliant, best for complex queries) |
| - MongoDB (Document store, flexible schema, best for rapid iteration) |
| - Redis (In-memory, fast, best for caching and sessions) |
| ``` |
| |
| **Poor questions:** |
| ```markdown |
| Question: "Database?" // Too vague |
| Header: "DB" // Unclear abbreviation |
| Options: |
| - Option 1 // Not descriptive |
| - Option 2 |
| ``` |
| |
| ### Option Design Best Practices |
| |
| **Clear labels:** |
| - Use 1-5 words |
| - Specific and descriptive |
| - No jargon without context |
| |
| **Helpful descriptions:** |
| - Explain what the option means |
| - Mention key benefits or trade-offs |
| - Help user make informed decision |
| - Keep to 1-2 sentences |
| |
| **Appropriate number:** |
| - 2-4 options per question |
| - Don't overwhelm with too many choices |
| - Group related options |
| - "Other" automatically provided |
| |
| ### Multi-Select Questions |
| |
| **When to use multiSelect:** |
| |
| ```markdown |
| Use AskUserQuestion for enabling features: |
|
|
| Question: "Which features do you want to enable?" |
| Header: "Features" |
| multiSelect: true // Allow selecting multiple |
| Options: |
| - Logging (Detailed operation logs) |
| - Metrics (Performance monitoring) |
| - Alerts (Error notifications) |
| - Backups (Automatic backups) |
| ``` |
| |
| User can select any combination: none, some, or all. |
| |
| **When NOT to use multiSelect:** |
| |
| ```markdown |
| Question: "Which authentication method?" |
| multiSelect: false // Only one auth method makes sense |
| ``` |
| |
| Mutually exclusive choices should not use multiSelect. |
| |
| ## Command Patterns with AskUserQuestion |
| |
| ### Pattern 1: Simple Yes/No Decision |
| |
| ```markdown |
| --- |
| description: Command with confirmation |
| allowed-tools: AskUserQuestion, Bash |
| --- |
|
|
| # Destructive Operation |
|
|
| This operation will delete all cached data. |
|
|
| Use AskUserQuestion to confirm: |
|
|
| Question: "This will delete all cached data. Are you sure?" |
| Header: "Confirm" |
| Options: |
| - Yes (Proceed with deletion) |
| - No (Cancel operation) |
|
|
| If user selects "Yes": |
| Execute deletion |
| Report completion |
|
|
| If user selects "No": |
| Cancel operation |
| Exit without changes |
| ``` |
| |
| ### Pattern 2: Multiple Configuration Questions |
| |
| ```markdown |
| --- |
| description: Multi-question configuration |
| allowed-tools: AskUserQuestion, Write |
| --- |
|
|
| # Project Configuration Setup |
|
|
| Gather configuration through multiple questions. |
|
|
| Use AskUserQuestion with multiple questions in one call: |
|
|
| **Question 1:** |
| - question: "Which programming language?" |
| - header: "Language" |
| - options: Python, TypeScript, Go, Rust |
|
|
| **Question 2:** |
| - question: "Which test framework?" |
| - header: "Testing" |
| - options: Jest, PyTest, Go Test, Cargo Test |
| (Adapt based on language from Q1) |
|
|
| **Question 3:** |
| - question: "Which CI/CD platform?" |
| - header: "CI/CD" |
| - options: GitHub Actions, GitLab CI, CircleCI |
|
|
| **Question 4:** |
| - question: "Which features do you need?" |
| - header: "Features" |
| - multiSelect: true |
| - options: Linting, Type checking, Code coverage, Security scanning |
|
|
| Process all answers together to generate cohesive configuration. |
| ``` |
| |
| ### Pattern 3: Conditional Question Flow |
| |
| ```markdown |
| --- |
| description: Conditional interactive workflow |
| allowed-tools: AskUserQuestion, Read, Write |
| --- |
|
|
| # Adaptive Configuration |
|
|
| ## Question 1: Deployment Complexity |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How complex is your deployment?" |
| Header: "Complexity" |
| Options: |
| - Simple (Single server, straightforward) |
| - Standard (Multiple servers, load balancing) |
| - Complex (Microservices, orchestration) |
|
|
| ## Conditional Questions Based on Answer |
|
|
| If answer is "Simple": |
| - No additional questions |
| - Use minimal configuration |
|
|
| If answer is "Standard": |
| - Ask about load balancing strategy |
| - Ask about scaling policy |
|
|
| If answer is "Complex": |
| - Ask about orchestration platform (Kubernetes, Docker Swarm) |
| - Ask about service mesh (Istio, Linkerd, None) |
| - Ask about monitoring (Prometheus, Datadog, CloudWatch) |
| - Ask about logging aggregation |
|
|
| ## Process Conditional Answers |
|
|
| Generate configuration appropriate for selected complexity level. |
| ``` |
| |
| ### Pattern 4: Iterative Collection |
| |
| ```markdown |
| --- |
| description: Collect multiple items iteratively |
| allowed-tools: AskUserQuestion, Write |
| --- |
|
|
| # Collect Team Members |
|
|
| We'll collect team member information for the project. |
|
|
| ## Question: How many team members? |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How many team members should we set up?" |
| Header: "Team size" |
| Options: |
| - 2 people |
| - 3 people |
| - 4 people |
| - 6 people |
|
|
| ## Iterate Through Team Members |
|
|
| For each team member (1 to N based on answer): |
|
|
| Use AskUserQuestion for member details: |
|
|
| Question: "What role for team member [number]?" |
| Header: "Role" |
| Options: |
| - Frontend Developer |
| - Backend Developer |
| - DevOps Engineer |
| - QA Engineer |
| - Designer |
|
|
| Store each member's information. |
|
|
| ## Generate Team Configuration |
|
|
| After collecting all N members, create team configuration file with all members and their roles. |
| ``` |
| |
| ### Pattern 5: Dependency Selection |
| |
| ```markdown |
| --- |
| description: Select dependencies with multi-select |
| allowed-tools: AskUserQuestion |
| --- |
|
|
| # Configure Project Dependencies |
|
|
| ## Question: Required Libraries |
|
|
| Use AskUserQuestion with multiSelect: |
|
|
| Question: "Which libraries does your project need?" |
| Header: "Dependencies" |
| multiSelect: true |
| Options: |
| - React (UI framework) |
| - Express (Web server) |
| - TypeORM (Database ORM) |
| - Jest (Testing framework) |
| - Axios (HTTP client) |
|
|
| User can select any combination. |
|
|
| ## Process Selections |
|
|
| For each selected library: |
| - Add to package.json dependencies |
| - Generate sample configuration |
| - Create usage examples |
| - Update documentation |
| ``` |
| |
| ## Best Practices for Interactive Commands |
| |
| ### Question Design |
| |
| 1. **Clear and specific**: Question should be unambiguous |
| 2. **Concise header**: Max 12 characters for clean display |
| 3. **Helpful options**: Labels are clear, descriptions explain trade-offs |
| 4. **Appropriate count**: 2-4 options per question, 1-4 questions per call |
| 5. **Logical order**: Questions flow naturally |
| |
| ### Error Handling |
| |
| ```markdown |
| # Handle AskUserQuestion Responses |
|
|
| After calling AskUserQuestion, verify answers received: |
|
|
| If answers are empty or invalid: |
| Something went wrong gathering responses. |
|
|
| Please try again or provide configuration manually: |
| [Show alternative approach] |
|
|
| Exit. |
|
|
| If answers look correct: |
| Process as expected |
| ``` |
| |
| ### Progressive Disclosure |
| |
| ```markdown |
| # Start Simple, Get Detailed as Needed |
|
|
| ## Question 1: Setup Type |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How would you like to set up?" |
| Header: "Setup type" |
| Options: |
| - Quick (Use recommended defaults) |
| - Custom (Configure all options) |
| - Guided (Step-by-step with explanations) |
|
|
| If "Quick": |
| Apply defaults, minimal questions |
|
|
| If "Custom": |
| Ask all available configuration questions |
|
|
| If "Guided": |
| Ask questions with extra explanation |
| Provide recommendations along the way |
| ``` |
| |
| ### Multi-Select Guidelines |
| |
| **Good multi-select use:** |
| ```markdown |
| Question: "Which features do you want to enable?" |
| multiSelect: true |
| Options: |
| - Logging |
| - Metrics |
| - Alerts |
| - Backups |
|
|
| Reason: User might want any combination |
| ``` |
| |
| **Bad multi-select use:** |
| ```markdown |
| Question: "Which database engine?" |
| multiSelect: true // ❌ Should be single-select |
|
|
| Reason: Can only use one database engine |
| ``` |
| |
| ## Advanced Patterns |
| |
| ### Validation Loop |
| |
| ```markdown |
| --- |
| description: Interactive with validation |
| allowed-tools: AskUserQuestion, Bash |
| --- |
|
|
| # Setup with Validation |
|
|
| ## Gather Configuration |
|
|
| Use AskUserQuestion to collect settings. |
|
|
| ## Validate Configuration |
|
|
| Check if configuration is valid: |
| - Required dependencies available? |
| - Settings compatible with each other? |
| - No conflicts detected? |
|
|
| If validation fails: |
| Show validation errors |
|
|
| Use AskUserQuestion to ask: |
|
|
| Question: "Configuration has issues. What would you like to do?" |
| Header: "Next step" |
| Options: |
| - Fix (Adjust settings to resolve issues) |
| - Override (Proceed despite warnings) |
| - Cancel (Abort setup) |
|
|
| Based on answer, retry or proceed or exit. |
| ``` |
| |
| ### Build Configuration Incrementally |
| |
| ```markdown |
| --- |
| description: Incremental configuration builder |
| allowed-tools: AskUserQuestion, Write, Read |
| --- |
|
|
| # Incremental Setup |
|
|
| ## Phase 1: Core Settings |
|
|
| Use AskUserQuestion for core settings. |
|
|
| Save to `.claude/config-partial.yml` |
|
|
| ## Phase 2: Review Core Settings |
|
|
| Show user the core settings: |
|
|
| Based on these core settings, you need to configure: |
| - [Setting A] (because you chose [X]) |
| - [Setting B] (because you chose [Y]) |
|
|
| Ready to continue? |
|
|
| ## Phase 3: Detailed Settings |
|
|
| Use AskUserQuestion for settings based on Phase 1 answers. |
|
|
| Merge with core settings. |
|
|
| ## Phase 4: Final Review |
|
|
| Present complete configuration. |
|
|
| Use AskUserQuestion for confirmation: |
|
|
| Question: "Is this configuration correct?" |
| Options: |
| - Yes (Save and apply) |
| - No (Start over) |
| - Modify (Edit specific settings) |
| ``` |
| |
| ### Dynamic Options Based on Context |
| |
| ```markdown |
| --- |
| description: Context-aware questions |
| allowed-tools: AskUserQuestion, Bash, Read |
| --- |
|
|
| # Context-Aware Setup |
|
|
| ## Detect Current State |
|
|
| Check existing configuration: |
| - Current language: !`detect-language.sh` |
| - Existing frameworks: !`detect-frameworks.sh` |
| - Available tools: !`check-tools.sh` |
|
|
| ## Ask Context-Appropriate Questions |
|
|
| Based on detected language, ask relevant questions. |
|
|
| If language is TypeScript: |
|
|
| Use AskUserQuestion: |
|
|
| Question: "Which TypeScript features should we enable?" |
| Options: |
| - Strict Mode (Maximum type safety) |
| - Decorators (Experimental decorator support) |
| - Path Mapping (Module path aliases) |
|
|
| If language is Python: |
|
|
| Use AskUserQuestion: |
|
|
| Question: "Which Python tools should we configure?" |
| Options: |
| - Type Hints (mypy for type checking) |
| - Black (Code formatting) |
| - Pylint (Linting and style) |
|
|
| Questions adapt to project context. |
| ``` |
| |
| ## Real-World Example: Multi-Agent Swarm Launch |
| |
| **From multi-agent-swarm plugin:** |
| |
| ```markdown |
| --- |
| description: Launch multi-agent swarm |
| allowed-tools: AskUserQuestion, Read, Write, Bash |
| --- |
|
|
| # Launch Multi-Agent Swarm |
|
|
| ## Interactive Mode (No Task List Provided) |
|
|
| If user didn't provide task list file, help create one interactively. |
|
|
| ### Question 1: Agent Count |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How many agents should we launch?" |
| Header: "Agent count" |
| Options: |
| - 2 agents (Best for simple projects) |
| - 3 agents (Good for medium projects) |
| - 4 agents (Standard team size) |
| - 6 agents (Large projects) |
| - 8 agents (Complex multi-component projects) |
|
|
| ### Question 2: Task Definition Approach |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How would you like to define tasks?" |
| Header: "Task setup" |
| Options: |
| - File (I have a task list file ready) |
| - Guided (Help me create tasks interactively) |
| - Custom (Other approach) |
|
|
| If "File": |
| Ask for file path |
| Validate file exists and has correct format |
|
|
| If "Guided": |
| Enter iterative task creation mode (see below) |
|
|
| ### Question 3: Coordination Mode |
|
|
| Use AskUserQuestion: |
|
|
| Question: "How should agents coordinate?" |
| Header: "Coordination" |
| Options: |
| - Team Leader (One agent coordinates others) |
| - Collaborative (Agents coordinate as peers) |
| - Autonomous (Independent work, minimal coordination) |
|
|
| ### Iterative Task Creation (If "Guided" Selected) |
|
|
| For each agent (1 to N from Question 1): |
|
|
| **Question A: Agent Name** |
| Question: "What should we call agent [number]?" |
| Header: "Agent name" |
| Options: |
| - auth-agent |
| - api-agent |
| - ui-agent |
| - db-agent |
| (Provide relevant suggestions based on common patterns) |
|
|
| **Question B: Task Type** |
| Question: "What task for [agent-name]?" |
| Header: "Task type" |
| Options: |
| - Authentication (User auth, JWT, OAuth) |
| - API Endpoints (REST/GraphQL APIs) |
| - UI Components (Frontend components) |
| - Database (Schema, migrations, queries) |
| - Testing (Test suites and coverage) |
| - Documentation (Docs, README, guides) |
|
|
| **Question C: Dependencies** |
| Question: "What does [agent-name] depend on?" |
| Header: "Dependencies" |
| multiSelect: true |
| Options: |
| - [List of previously defined agents] |
| - No dependencies |
|
|
| **Question D: Base Branch** |
| Question: "Which base branch for PR?" |
| Header: "PR base" |
| Options: |
| - main |
| - staging |
| - develop |
|
|
| Store all task information for each agent. |
|
|
| ### Generate Task List File |
|
|
| After collecting all agent task details: |
|
|
| 1. Ask for project name |
| 2. Generate task list in proper format |
| 3. Save to `.daisy/swarm/tasks.md` |
| 4. Show user the file path |
| 5. Proceed with launch using generated task list |
| ``` |
| |
| ## Best Practices |
| |
| ### Question Writing |
| |
| 1. **Be specific**: "Which database?" not "Choose option?" |
| 2. **Explain trade-offs**: Describe pros/cons in option descriptions |
| 3. **Provide context**: Question text should stand alone |
| 4. **Guide decisions**: Help user make informed choice |
| 5. **Keep concise**: Header max 12 chars, descriptions 1-2 sentences |
| |
| ### Option Design |
| |
| 1. **Meaningful labels**: Specific, clear names |
| 2. **Informative descriptions**: Explain what each option does |
| 3. **Show trade-offs**: Help user understand implications |
| 4. **Consistent detail**: All options equally explained |
| 5. **2-4 options**: Not too few, not too many |
| |
| ### Flow Design |
| |
| 1. **Logical order**: Questions flow naturally |
| 2. **Build on previous**: Later questions use earlier answers |
| 3. **Minimize questions**: Ask only what's needed |
| 4. **Group related**: Ask related questions together |
| 5. **Show progress**: Indicate where in flow |
| |
| ### User Experience |
| |
| 1. **Set expectations**: Tell user what to expect |
| 2. **Explain why**: Help user understand purpose |
| 3. **Provide defaults**: Suggest recommended options |
| 4. **Allow escape**: Let user cancel or restart |
| 5. **Confirm actions**: Summarize before executing |
| |
| ## Common Patterns |
| |
| ### Pattern: Feature Selection |
| |
| ```markdown |
| Use AskUserQuestion: |
|
|
| Question: "Which features do you need?" |
| Header: "Features" |
| multiSelect: true |
| Options: |
| - Authentication |
| - Authorization |
| - Rate Limiting |
| - Caching |
| ``` |
| |
| ### Pattern: Environment Configuration |
| |
| ```markdown |
| Use AskUserQuestion: |
|
|
| Question: "Which environment is this?" |
| Header: "Environment" |
| Options: |
| - Development (Local development) |
| - Staging (Pre-production testing) |
| - Production (Live environment) |
| ``` |
| |
| ### Pattern: Priority Selection |
| |
| ```markdown |
| Use AskUserQuestion: |
|
|
| Question: "What's the priority for this task?" |
| Header: "Priority" |
| Options: |
| - Critical (Must be done immediately) |
| - High (Important, do soon) |
| - Medium (Standard priority) |
| - Low (Nice to have) |
| ``` |
| |
| ### Pattern: Scope Selection |
| |
| ```markdown |
| Use AskUserQuestion: |
|
|
| Question: "What scope should we analyze?" |
| Header: "Scope" |
| Options: |
| - Current file (Just this file) |
| - Current directory (All files in directory) |
| - Entire project (Full codebase scan) |
| ``` |
| |
| ## Combining Arguments and Questions |
| |
| ### Use Both Appropriately |
| |
| **Arguments for known values:** |
| ```markdown |
| --- |
| argument-hint: [project-name] |
| allowed-tools: AskUserQuestion, Write |
| --- |
|
|
| Setup for project: $1 |
|
|
| Now gather additional configuration... |
|
|
| Use AskUserQuestion for options that require explanation. |
| ``` |
| |
| **Questions for complex choices:** |
| ```markdown |
| Project name from argument: $1 |
|
|
| Now use AskUserQuestion to choose: |
| - Architecture pattern |
| - Technology stack |
| - Deployment strategy |
|
|
| These require explanation, so questions work better than arguments. |
| ``` |
| |
| ## Troubleshooting |
| |
| **Questions not appearing:** |
| - Verify AskUserQuestion in allowed-tools |
| - Check question format is correct |
| - Ensure options array has 2-4 items |
| |
| **User can't make selection:** |
| - Check option labels are clear |
| - Verify descriptions are helpful |
| - Consider if too many options |
| - Ensure multiSelect setting is correct |
| |
| **Flow feels confusing:** |
| - Reduce number of questions |
| - Group related questions |
| - Add explanation between stages |
| - Show progress through workflow |
| |
| With AskUserQuestion, commands become interactive wizards that guide users through complex decisions while maintaining the clarity that simple arguments provide for straightforward inputs. |
| |