--- name: prompt-clarifier description: | WHEN: Ambiguous prompts, vague requirements, missing context, unclear instructions WHAT: Ambiguity detection + AskUserQuestion clarification + Interactive option selection WHEN NOT: Clear detailed instructions → proceed directly --- # Prompt Clarifier Skill ## Purpose Detects ambiguous prompts and asks clarification questions using AskUserQuestion with interactive selections. ## When to Use Activate when: 1. Prompt seems ambiguous or lacks necessary details 2. User wants to create/build something without specifying technical details 3. Vague instructions like "fix this", "optimize", or "improve" without context 4. Excessive pronouns ("this", "that", "it") without clear references ## Detection Criteria Consider prompt ambiguous if it: - Is very short (< 5 words) and lacks context - Mentions project type without specifying: - Technology stack - Main features - Project scope - Contains optimization requests without specifying aspect: - Performance/speed - Memory usage - Code readability - Bundle size - References code/files without paths - Uses vague verbs without specifying target ## Workflow ### Step 1: Acknowledge Briefly acknowledge what the user is asking for. ### Step 2: Use AskUserQuestion Present targeted questions with multiple-choice options. **Example Question Patterns:** For missing tech stack: ``` AskUserQuestion: "Which tech stack would you like to use?" Options: - React + TypeScript + Node.js - Vue + JavaScript + Express - Vanilla JS + Python + FastAPI - I'll specify manually ``` For missing features: ``` AskUserQuestion: "Select main features (multiple selection)" Options: - User auth/login - Database CRUD - File upload - Real-time (WebSocket) - Payment system - Admin dashboard multiSelect: true ``` For vague optimization: ``` AskUserQuestion: "What type of optimization do you need?" Options: - Execution speed/performance - Memory usage reduction - Bundle size reduction - Code readability ``` For project scope: ``` AskUserQuestion: "What's the project scale?" Options: - Simple prototype/MVP - Medium-scale project - Large enterprise-level - Not sure (recommend for me) ``` ### Step 3: Provide Guidance After receiving answers, proceed with enhanced context. ## Response Template When detecting ambiguity: 1. **Acknowledge**: "Got it. I'll help you with [request]." 2. **Explain**: "To provide better results, I have a few questions." 3. **Ask**: Use AskUserQuestion with relevant options 4. **Proceed**: Start implementation with full context ## Examples ### Example 1: Vague Web Project **User**: "Build me a website" **Response**: ``` Got it. I'll help you build a website. For better results, I have a few questions. [Use AskUserQuestion] 1. Tech stack selection 2. Main features selection 3. Project scope [After answers, proceed with implementation] ``` ### Example 2: Vague Optimization **User**: "Optimize this code" **Response**: ``` I'll help optimize your code. First, let me understand what type of optimization you need. [Use AskUserQuestion for optimization type] [Ask for file path if not specified] [Proceed with targeted optimization] ``` ## Best Practices 1. **Keep questions focused**: Ask only what's necessary 2. **Provide sensible defaults**: Include common choices 3. **Allow custom input**: Include "Other" option 4. **Be conversational**: Don't make it feel like a form 5. **Group related questions**: Ask related questions together 6. **Proceed efficiently**: Once you have enough context, start working ## Integration with Hook Works with UserPromptSubmit hook. When you see: ``` ``` Automatically activate this skill and use AskUserQuestion. ## Notes - Enhances vibe coding by ensuring sufficient context - Interactive selections make it easy to provide details - Don't ask unnecessary questions if prompt is clear