Question templates and patterns for clarifying incomplete feature requirements. Auto-invoke when asking clarifying questions, resolving ambiguities, or enriching vague requirements. Do NOT load for implementation, code review, or validation tasks.
Auto-invoke when you need to clarify ambiguous feature requirements. Provides structured question templates for scope, UI placement, data persistence, integrations, and behavior timing to resolve incomplete specifications before implementation.
/plugin marketplace add L-Sypniewski/claude-code-toolkit/plugin install development-workflow@claude-code-toolkitThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides structured patterns for asking clarifying questions when feature requirements are incomplete, vague, or ambiguous.
Template:
Question: "What's the scope of [feature]?"
Header: "Scope"
Options:
- "[Minimal scope]" (Faster, limited functionality)
- "[Standard scope]" (Recommended - balanced)
- "[Comprehensive scope]" (Full-featured, more complex)
- "Custom scope" (Let me specify)
Examples:
Template:
Question: "Where should [UI element] be located?"
Header: "Placement"
Options:
- "[Primary location]" (Recommended - standard placement)
- "[Alternative location]" (Different UX pattern)
- "[Multiple locations]" (More visible, more work)
Examples:
Template:
Question: "How should [data] be stored/persisted?"
Header: "Persistence"
Options:
- "Client-side only" (localStorage/sessionStorage)
- "Server-side only" (Database)
- "Both client + server" (Recommended - instant + synced)
- "No persistence" (Session only)
Examples:
Template:
Question: "What should [feature] integrate with?"
Header: "Integration"
Options:
- "Isolated feature" (No dependencies)
- "[System A]" (Single integration)
- "[System A] + [System B]" (Multiple integrations)
- "Custom integrations" (Let me specify)
Examples:
Template:
Question: "When should [action] happen?"
Header: "Trigger"
Options:
- "Immediately" (Real-time)
- "On user action" (Manual trigger)
- "Scheduled/background" (Async)
- "Conditional" (Based on criteria)
Examples:
Template:
Question: "How should we handle existing [data/users/functionality]?"
Header: "Migration"
Options:
- "No migration needed" (New feature, no existing data)
- "Automatic migration" (Convert automatically)
- "Manual migration" (User/admin action required)
- "Gradual rollout" (Optional adoption)
Examples:
Bad:
Question: "What do you want?"
Options: "I don't know", "Whatever you think is best"
Good:
Question: "Where should the export button be placed?"
Options:
- "In the toolbar above the table" (Recommended)
- "As a dropdown in each row"
- "Both toolbar and row actions"
Bad:
Options:
- "Option A"
- "Option B"
- "Option C"
Good:
Options:
- "localStorage only" (Fast, client-side, no backend changes)
- "Database only" (Syncs across devices, requires backend)
- "Both" (Recommended - instant + persistent)
Guide users toward best practices:
- "Settings page" (Recommended - standard location for preferences)
- "Header" (More visible but unconventional)
If options aren't mutually exclusive:
Question: "Which notification channels should be supported?"
MultiSelect: true
Options:
- "In-app notifications"
- "Email notifications"
- "Push notifications"
- "SMS notifications"
Headers display as chips/tags - max 12 characters:
Order questions by impact on complexity/architecture:
If answer to one question determines need for another:
Q1: "Scope of dark mode?"
Answer: "Entire application"
Q2 (follow-up): "Should we support per-component theme overrides?"
[Only asked if scope is "entire application"]
Ask multiple questions together when they're related:
AskUserQuestion:
Questions:
1. "Where should toggle be placed?" [Placement]
2. "How should preference be stored?" [Persistence]
3. "What's the scope?" [Coverage]
This is better than asking separately (fewer interruptions).
When user selects "Other" and provides custom text:
Some answer combinations may conflict:
If: Scope = "Entire application"
And: Storage = "No persistence"
Then: Warn - "Full-app dark mode without persistence means users must re-enable every session. Recommend adding persistence."
Convert answers into structured format:
Questions:
Synthesized Requirement:
FEATURE: Implement dark mode toggle in Settings page with full application coverage.
- Toggle control in Settings → Appearance section
- Preference stored in localStorage for instant application
- Preference synced to user profile database for cross-device persistence
- All UI components and pages support dark theme
Input: GitHub issue says "add CSV export"
Agent Analysis:
Questions Asked:
Question 1: "What data should be exportable to CSV?"
Header: "Export Scope"
Options:
- "Current page/view only" (Recommended - simpler)
- "All data with current filters"
- "Entire dataset" (May need pagination/batching)
User Answer: "Current page/view only"
Question 2: "Where should the export button be placed?"
Header: "Placement"
Options:
- "Toolbar above the data table" (Recommended)
- "Dropdown menu"
- "Both toolbar and dropdown"
User Answer: "Toolbar above the data table"
Question 3: "Should the export include all columns or let users choose?"
Header: "Columns"
Options:
- "All visible columns" (Recommended - matches view)
- "All columns including hidden"
- "Let user select columns" (More flexible, more complex)
User Answer: "All visible columns"
Structured Output:
## FEATURE
Add CSV export functionality to [data table/list].
- Export button in toolbar above data table
- Exports currently visible data (respects filters/pagination)
- Includes all visible columns in current view
- Filename: [entity-name]-export-YYYY-MM-DD.csv
- UTF-8 encoding with BOM for Excel compatibility
## EXAMPLES
1. User viewing filtered product list (50 items, 8 visible columns)
- Clicks "Export CSV" button in toolbar
- Browser downloads: products-export-2026-01-05.csv
- File contains 50 rows + header row with 8 columns
2. User viewing single page of paginated results
- Current page shows 25 of 500 total items
- Export includes only 25 visible items
- User can navigate pages and export separately if needed
## DOCUMENTATION
- Client-side CSV generation for small datasets (<10k rows)
- Server-side generation if dataset exceeds 10k rows
- UTF-8 with BOM for Excel compatibility
- RFC 4180 CSV format compliance
## OTHER CONSIDERATIONS
- No permissions needed (user can already view this data)
- Performance: Client-side OK for typical page sizes
- Testing: Verify special characters, commas, newlines in data
- Mobile: Download behavior varies by mobile browser
feature-issue-analyzer agent when analyzing vague requirementsAskUserQuestion tool (the mechanism for asking)mcp__sequentialthinking__sequentialthinking (for analyzing when to ask)This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.