Back to skills
SKILL.md
Moai Alfred Ask User Questions
ASecurityGuide Alfred sub-agents to actively invoke AskUserQuestion for ambiguous decisions.
- 586 stars
- 0 votes
- 0 copies
- 1 view
- Added September 2, 2026
Works with
Security analysis
100/100npx -y skills add majiayu000/claude-skill-registry --skill moai-alfred-ask-user-questions --agent claude-codeAre you the author of Moai Alfred Ask User Questions?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-moai-alfred-ask-user-questions-claude-skill-registry)---
name: moai-alfred-ask-user-questions
version: 3.1.0
created: 2025-10-22
updated: 2025-11-04
status: active
description: Guide Alfred sub-agents to actively invoke AskUserQuestion for ambiguous decisions.
keywords: ['interactive', 'clarification', 'decision-making', 'AskUserQuestion']
allowed-tools:
- AskUserQuestion
---
# Alfred Ask User Questions - Skill Guide
## Skill Metadata
| Field | Value |
| ----- | ----- |
| **Skill Name** | moai-alfred-ask-user-questions |
| **Version** | 3.1.0 (2025-10-27) |
| **Core Tool** | `AskUserQuestion` (Claude Code built-in) |
| **Auto-load** | When Alfred detects ambiguity in requests |
| **Tier** | Alfred (Workflow Orchestration) |
---
## What It Does
**Purpose**: Empower Alfred sub-agents to **actively ask clarifying questions** whenever user intent is ambiguous, rather than guessing.
Leverages Claude Code's native `AskUserQuestion` tool to collect explicit, structured user input that transforms vague requests into precise specifications.
**Key capabilities**:
- ✅ Single-select & multi-select option types
- ✅ 1-4 questions per survey (avoid fatigue)
- ✅ 2-4 options per question (prevent choice overload)
- ✅ Automatic "Other" option for custom input
- ✅ Conditional branching based on answers
- ✅ Integration across all Alfred commands (Plan/Run/Sync)
- ✅ Reduces ambiguity → fewer iterations → faster execution
---
## When to Ask (Trigger Patterns)
### ✅ ASK when user intent is ambiguous:
1. **Vague noun phrases**: "Add dashboard", "Refactor auth", "Improve performance"
2. **Missing scope**: No specification of WHERE, WHO, WHAT, HOW, WHEN
3. **Multiple valid paths**: ≥2 reasonable implementation approaches
4. **Trade-off decisions**: Speed vs quality, simple vs comprehensive, etc.
5. **Risky operations**: Destructive actions needing explicit consent
### ❌ DON'T ask when:
- User explicitly specified exact requirements
- Decision is automatic (no choices)
- Single obvious path exists
- Quick yes/no confirmation only (maybe, but keep it brief)
---
## Core Principle: Just Ask!
**Golden Rule**: When in doubt, **ask the user** instead of guessing.
**Why**:
- ✅ User sees exactly what you'll do → no surprises
- ✅ Single interaction vs 3-5 rounds of back-and-forth
- ✅ Fast → execute with certainty
- ✅ Reduces "vibe coding" frustration
**Pattern**:
```
Ambiguous request detected
↓
Call AskUserQuestion({questions: [...]})
↓
User selects from clear options
↓
Proceed with confirmed specifications
```
---
## Quick Start: Minimal Invocation
```typescript
const answer = await AskUserQuestion({
questions: [
{
question: "How should we implement this?",
header: "Approach", // max 12 chars
multiSelect: false,
options: [
{
label: "Option 1", // 1-5 words
description: "What it does and why you'd pick it."
},
{
label: "Option 2",
description: "Alternative with different trade-offs."
}
]
}
]
});
// Returns: { "Approach": "Option 1" }
```
---
## Key Constraints
| Constraint | Reason |
|-----------|--------|
| **1-4 questions max** | Avoid user fatigue |
| **2-4 options per Q** | Prevent choice overload |
| **Header ≤12 chars** | TUI layout fit |
| **Label 1-5 words** | Quick scanning |
| **Description required** | Enables informed choice |
| **Auto "Other" option** | Always available for custom input |
---
## Top 5 Usage Patterns
### Pattern 1: Implementation Approach
**Trigger**: "Add feature X" or "Build Y" without specifics
### Pattern 2: Confirmation (Risky Operations)
**Trigger**: Destructive action (delete, migrate, reset)
### Pattern 3: Multi-Option Feature Selection
**Trigger**: "Which framework/library/approach?"
### Pattern 4: Multi-Select (Independent Features)
**Trigger**: "Which features to enable/include?"
### Pattern 5: Sequential Questions (Conditional Flow)
**Trigger**: Dependent decisions (Q2 depends on Q1 answer)
> **Detailed examples and code**: See [examples.md](examples.md)
---
## Integration with Alfred Sub-agents
| Sub-agent | When to Ask | Example Trigger |
|-----------|-------------|-----------------|
| **spec-builder** (`/alfred:1-plan`) | SPEC title vague, scope undefined | "Add feature" without specifics |
| **code-builder** (`/alfred:2-run`) | Implementation approach unclear | Multiple valid implementation paths |
| **doc-syncer** (`/alfred:3-sync`) | Sync scope unclear | Full vs partial sync decision |
> **Detailed integration patterns**: See [reference.md](reference.md)
---
## Best Practices Summary
### ✅ DO
- **Be specific**: "Which database type?" not "What should we use?"
- **Provide context**: Include file names, scope, or impact
- **Order logically**: General → Specific; safest option first
- **Flag risks**: Use "NOT RECOMMENDED" or "CAUTION:" prefixes
- **Explain trade-offs**: Mention time, resources, complexity
### ❌ DON'T
- **Overuse questions**: Only ask when ambiguous
- **Too many options**: 2-4 per question max
- **Vague labels**: "Option A", "Use tokens", "Option 2"
- **Skip descriptions**: User needs rationale
- **Hide trade-offs**: Always mention implications
> **Complete best practices guide**: See [reference.md](reference.md)
---
## Error Handling
### User Cancels (ESC key)
```typescript
try {
const answer = await AskUserQuestion({...});
} catch (error) {
console.log("User cancelled survey");
// Fall back to default or abort
}
```
### Validate Custom Input ("Other" option)
```typescript
const answer = await AskUserQuestion({...});
if (answer["Header"] === "Other" || !VALID_OPTIONS.includes(answer["Header"])) {
validateCustomInput(answer["Header"]);
}
```
---
## Related Skills
- `moai-alfred-spec-metadata-validation` (SPEC clarity)
- `moai-alfred-ears-authoring` (requirement phrasing)
- `moai-foundation-specs` (SPEC structure)
---
## Quick Reference
**When to use**:
- User intent is ambiguous
- Multiple valid approaches exist
- Architectural decisions with trade-offs
- Approvals needed before risky ops
**How**:
1. Detect ambiguity (vague request, multiple paths, etc.)
2. Call `AskUserQuestion({ questions: [...] })`
3. User selects from clear options
4. Proceed with confirmed specifications
**Benefits**:
- ✅ Certainty instead of guessing
- ✅ Single interaction vs 3-5 iterations
- ✅ Faster, happier users
- ✅ Less "vibe coding" frustration
---
**For detailed API specifications**: [reference.md](reference.md)
**For real-world examples**: [examples.md](examples.md)
---
**End of Skill** | Refactored 2025-10-27
Attribution
Comments
Loading comments…