--- description: Refine a UI design option based on user feedback allowed-tools: [Task, LinearMCP, Context7MCP, AskUserQuestion, Read] argument-hint: [option-number] [feedback] --- # Refining UI Design: $1 - Option $2 You are **refining a design option** for Linear issue **$1** based on user feedback. ## 🚨 CRITICAL: Safety Rules **READ FIRST**: ``$CCPM_COMMANDS_DIR/SAFETY_RULES.md`` This command is **READ-ONLY** for external systems and **WRITE** to Linear (internal tracking). ## Arguments - **$1**: Linear issue ID (e.g., WORK-123) - **$2**: Option number to refine (1, 2, or 3) - OPTIONAL if feedback is clear - **$3+**: User feedback describing what to change - OPTIONAL (will prompt if missing) ## Workflow ### Step 1: Fetch Current Design Options Use **Linear MCP** to get issue details: ```javascript linear_get_issue({ id: "$1" }) ``` Extract: - Previous design options from description - Which option user selected for refinement (if $2 not provided) - Any previous feedback or comments - Original requirements Display: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔄 Refining Design Option $2 for $1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📋 Issue: [Title from Linear] 🎨 Refining: Option $2 🔗 URL: https://linear.app/workspace/issue/$1 **Current Design** (Option $2): [Display the selected option's wireframe and description] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` ### Step 2: Collect Refinement Feedback **If $3 (feedback) not provided**, use **AskUserQuestion**: ```javascript { questions: [ { question: "What would you like to change about Option $2?", header: "Changes", multiSelect: true, options: [ { label: "Layout/Structure", description: "Change how elements are arranged" }, { label: "Visual Style", description: "Adjust colors, spacing, shadows" }, { label: "Component Choice", description: "Use different components or patterns" }, { label: "Responsive Behavior", description: "Change mobile/tablet/desktop layouts" }, { label: "Interactions", description: "Modify hover, click, animation effects" }, { label: "Content Priority", description: "Emphasize different information" } ] }, { question: "Please describe the specific changes you want:", header: "Details", multiSelect: false, options: [ { label: "Type custom feedback", description: "I'll describe exactly what I want" } ] } ] } ``` **Get detailed feedback**: - What user wants to change - Why the current design doesn't work - Any specific examples or references - Priority of changes (must-have vs nice-to-have) **Example feedback types**: - "Make it more minimalist" → Reduce visual weight, increase whitespace - "Add more color" → Introduce color accents, vibrant palette - "Better hierarchy" → Adjust typography, spacing, contrast - "Improve mobile" → Larger touch targets, better stacking - "More modern" → Latest trends, animations, gradients - "Simpler" → Remove complexity, fewer elements - "More professional" → Conservative colors, clean lines ### Step 3: Analyze Feedback & Plan Changes **Parse feedback to identify**: 1. **What stays** (elements user likes) 2. **What changes** (specific adjustments) 3. **What's added** (new elements) 4. **What's removed** (unnecessary elements) Display: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📝 Change Analysis ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ **Feedback**: [User's feedback] **Change Type**: [Layout / Visual Style / Component / Responsive / Interaction / Content] **Interpretation**: [Explain what changes are needed and why] **Planned Adjustments**: ✅ Keep: [Elements that stay the same] 🔄 Change: [Elements to modify] ➕ Add: [New elements] ➖ Remove: [Elements to remove] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` ### Step 4: Research Context (if needed) **If feedback requires new patterns**, use **Context7 MCP**: ```javascript // Example: User wants "more modern card design" get-library-docs({ context7CompatibleLibraryID: "/shadcn-ui/ui", topic: "modern card component patterns and styles", tokens: 2000 }) // Example: User wants "better mobile navigation" get-library-docs({ context7CompatibleLibraryID: "/tailwindlabs/tailwindcss", topic: "mobile navigation patterns and responsive menus", tokens: 2000 }) ``` ### Step 5: Invoke pm:ui-designer Agent for Refinement **CRITICAL: Invoke the specialist agent**: ```javascript Task(pm:ui-designer): ` Refine design Option $2 for Linear issue $1 based on user feedback. **Original Design (Option $2)**: [Include the original wireframe and description] **User Feedback**: [User's feedback and requested changes] **Change Analysis**: - Keep: [What stays] - Change: [What modifies] - Add: [What's new] - Remove: [What goes] **Requirements**: 1. Generate refined design that addresses ALL feedback 2. Include ASCII wireframe showing the changes 3. Explain what changed and why 4. Show before/after comparison for major changes 5. Maintain consistency with design system 6. Preserve what user liked about original 7. Ensure changes improve the design, not just differ **Additional Context**: - **Frontend Architecture**: [From original design-ui analysis - component patterns, existing components, conventions] - Design System: [From codebase] - Original Requirements: [From issue] - Latest Trends: [From Context7 if fetched] **Constraints**: - Must still reuse existing components where possible - Must follow project conventions - Must remain technically feasible - Changes should not conflict with architecture **Deliverable**: Present refined design in structured markdown format with: - Updated ASCII wireframe - Description of changes made - Explanation of how feedback was addressed - Before/after comparison (if significant changes) - Updated pros/cons - Technical considerations ` ``` **Agent Output Expected**: - Refined design wireframe - Clear explanation of what changed - Before/after comparison - How feedback was addressed - Updated pros/cons ### Step 6: Present Refined Design Display: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎨 Refined Design Option $2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Agent's refined design output] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 Changes Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ **Addressed Feedback**: ✅ [Feedback point 1]: [How it was addressed] ✅ [Feedback point 2]: [How it was addressed] ✅ [Feedback point 3]: [How it was addressed] **What Changed**: - [Change 1 with explanation] - [Change 2 with explanation] - [Change 3 with explanation] **What Stayed the Same**: - [Element 1 - kept because it worked] - [Element 2 - user liked it] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` ### Step 7: Collect User Feedback on Refinement Use **AskUserQuestion**: ```javascript { questions: [{ question: "Does this refined design meet your needs?", header: "Approval", multiSelect: false, options: [ { label: "⭐ Approve this design", description: "Perfect! Generate full UI specifications" }, { label: "Needs further refinement", description: "Close, but I want more adjustments" }, { label: "Go back to original", description: "The original Option $2 was better" }, { label: "Try different approach", description: "Let's explore a completely different direction" } ] }] } ``` ### Step 8: Handle User Response **If user approves**: - Jump to `/ccpm:planning:design-approve $1 $2-refined` - Generate full UI specifications **If user wants further refinement**: - Prompt: "What else would you like to adjust?" - Store additional feedback - Return to Step 5 with cumulative feedback **If user wants original**: - Restore original Option $2 design - Ask: "What about the original did you prefer?" - Consider showing both side-by-side **If user wants different approach**: - Jump back to `/ccpm:planning:design-ui $1` - Start fresh with new direction ### Step 9: Update Linear Issue Use **Linear MCP** to update with refinement progress: ```javascript linear_update_issue({ id: "$1", description: "[Existing description with design options]\n\n---\n\n## 🔄 Design Refinement (Option $2)\n\n**User Feedback**: [Feedback]\n\n**Refined Design**:\n[Refined wireframe and description]\n\n**Changes Made**: [List of changes]\n\n**Status**: [Awaiting approval / Approved / Needs more refinement]" }) // If approved, add label linear_update_issue({ id: "$1", labels: ["design-approved"] }) ``` ### Step 10: Show Status & Next Actions Display: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ Design Refinement Complete ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📋 Issue: $1 🎨 Refined: Option $2 🔗 Linear: https://linear.app/workspace/issue/$1 🏷️ Status: [design-approved / design-in-progress] 📝 Changes Made: [X] adjustments ✅ Feedback Addressed: [Y] points ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 💡 Next Steps ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [If approved]: Perfect! I'll now generate comprehensive UI specifications including: - Component breakdown with TypeScript interfaces - Tailwind class mappings - Responsive behavior documentation - Accessibility guidelines - Dark mode implementation - Animation and interaction specs [If needs more refinement]: I can refine further. Just describe what else needs adjusting. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📝 Quick Commands ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Approve: /ccpm:planning:design-approve $1 $2 Refine more: /ccpm:planning:design-refine $1 $2 [new feedback] Status: /ccpm:utils:status $1 Start over: /ccpm:planning:design-ui $1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` ## Refinement Patterns ### Common Feedback Types **"Make it more minimalist"**: - Increase whitespace (gap-6 → gap-8) - Reduce visual elements (remove borders, shadows) - Simplify color palette (fewer accent colors) - Use more subtle typography (lighter weights) **"Add more color/personality"**: - Introduce accent colors (primary, secondary) - Add gradient backgrounds - Use colorful icons or illustrations - Implement subtle animations **"Improve information hierarchy"**: - Increase heading size/weight - Add visual separators (borders, backgrounds) - Use color to emphasize important elements - Adjust spacing to group related items **"Better mobile experience"**: - Stack elements vertically - Increase touch target sizes (min 44x44px) - Simplify navigation (hamburger menu) - Reduce content density **"More modern/trendy"**: - Use latest component patterns (from Context7) - Add micro-interactions (hover effects, transitions) - Implement glass-morphism or neumorphism - Use modern typography (variable fonts) **"Simpler/Less complex"**: - Remove secondary features - Combine similar elements - Reduce the number of sections - Use progressive disclosure (hide details) **"More professional/corporate"**: - Use conservative colors (blues, grays) - Formal typography (sans-serif, medium weights) - Grid-based layouts - Subtle effects only ### Iteration Strategy **First Refinement** (this command): - Address primary feedback - Make targeted changes - Preserve what worked **Second Refinement** (if needed): - Fine-tune details - Adjust based on cumulative feedback - Consider showing multiple micro-variants **Third+ Refinement** (rarely needed): - If still not right, consider: - Going back to original options - Generating completely new options - Having a design discussion about requirements ## Notes ### This Command Does 1. ✅ Fetches current design options from Linear 2. ✅ Collects specific refinement feedback 3. ✅ Analyzes what needs to change vs what stays 4. ✅ Researches new patterns if needed (Context7) 5. ✅ Invokes pm:ui-designer agent for expert refinement 6. ✅ Presents refined design with before/after comparison 7. ✅ Explains how feedback was addressed 8. ✅ Handles approval or further iteration 9. ✅ Updates Linear with refinement progress ### Usage Examples **Basic usage** (will prompt for feedback): ```bash /ccpm:planning:design-refine WORK-123 2 ``` **With inline feedback**: ```bash /ccpm:planning:design-refine WORK-123 2 "Make it more minimalist with larger spacing" ``` **After design-ui command**: ```bash # After running /ccpm:planning:design-ui WORK-123 # User selected "Refine Option 2" /ccpm:planning:design-refine WORK-123 2 ``` **Multiple refinements**: ```bash # First refinement /ccpm:planning:design-refine WORK-123 2 "Add more color" # After reviewing, second refinement /ccpm:planning:design-refine WORK-123 2 "Good but reduce the amount of purple" ``` ### Benefits - ✅ Targeted refinements without starting over - ✅ Preserves what user liked - ✅ Clear before/after comparison - ✅ Explains how feedback was addressed - ✅ Iterative improvement workflow - ✅ Context-aware changes using Context7 - ✅ Expert refinement from pm:ui-designer agent - ✅ Linear tracking of all refinements