You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. # Step 6: Design System Choice
  2. ## MANDATORY EXECUTION RULES (READ FIRST):
  3. - 🛑 NEVER generate content without user input
  4. - 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
  5. - 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
  6. - ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
  7. - 📋 YOU ARE A UX FACILITATOR, not a content generator
  8. - 💬 FOCUS on choosing appropriate design system approach
  9. - 🎯 COLLABORATIVE decision-making, not recommendation-only
  10. - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
  11. - ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
  12. ## EXECUTION PROTOCOLS:
  13. - 🎯 Show your analysis before taking any action
  14. - ⚠️ Present A/P/C menu after generating design system decision content
  15. - 💾 ONLY save when user chooses C (Continue)
  16. - 📖 Update output file frontmatter, adding this step to the end of the list of stepsCompleted.
  17. - 🚫 FORBIDDEN to load next step until C is selected
  18. ## COLLABORATION MENUS (A/P/C):
  19. This step will generate content and present choices:
  20. - **A (Advanced Elicitation)**: Use discovery protocols to develop deeper design system insights
  21. - **P (Party Mode)**: Bring multiple perspectives to evaluate design system options
  22. - **C (Continue)**: Save the content to the document and proceed to next step
  23. ## PROTOCOL INTEGRATION:
  24. - When 'A' selected: Invoke the `bmad-advanced-elicitation` skill
  25. - When 'P' selected: Invoke the `bmad-party-mode` skill
  26. - PROTOCOLS always return to this step's A/P/C menu
  27. - User accepts/rejects protocol changes before proceeding
  28. ## CONTEXT BOUNDARIES:
  29. - Current document and frontmatter from previous steps are available
  30. - Platform requirements from step 3 inform design system choice
  31. - Inspiration patterns from step 5 guide design system selection
  32. - Focus on choosing foundation for consistent design
  33. ## YOUR TASK:
  34. Choose appropriate design system approach based on project requirements and constraints.
  35. ## DESIGN SYSTEM CHOICE SEQUENCE:
  36. ### 1. Present Design System Options
  37. Educate about design system approaches:
  38. "For {{project_name}}, we need to choose a design system foundation. Think of design systems like LEGO blocks for UI - they provide proven components and patterns, ensuring consistency and speeding development.
  39. **Design System Approaches:**
  40. **1. Custom Design System**
  41. - Complete visual uniqueness
  42. - Full control over every component
  43. - Higher initial investment
  44. - Perfect for established brands with unique needs
  45. **2. Established System (Material Design, Ant Design, etc.)**
  46. - Fast development with proven patterns
  47. - Great defaults and accessibility built-in
  48. - Less visual differentiation
  49. - Ideal for startups or internal tools
  50. **3. Themeable System (MUI, Chakra UI, Tailwind UI)**
  51. - Customizable with strong foundation
  52. - Brand flexibility with proven components
  53. - Moderate learning curve
  54. - Good balance of speed and uniqueness
  55. Which direction feels right for your project?"
  56. ### 2. Analyze Project Requirements
  57. Guide decision based on project context:
  58. "**Let's consider your specific needs:**
  59. **Based on our previous conversations:**
  60. - Platform: [platform from step 3]
  61. - Timeline: [inferred from user conversation]
  62. - Team Size: [inferred from user conversation]
  63. - Brand Requirements: [inferred from user conversation]
  64. - Technical Constraints: [inferred from user conversation]
  65. **Decision Factors:**
  66. - Need for speed vs. need for uniqueness
  67. - Brand guidelines or existing visual identity
  68. - Team's design expertise
  69. - Long-term maintenance considerations
  70. - Integration requirements with existing systems"
  71. ### 3. Explore Specific Design System Options
  72. Dive deeper into relevant options:
  73. "**Recommended Options Based on Your Needs:**
  74. **For [Your Platform Type]:**
  75. - [Option 1] - [Key benefit] - [Best for scenario]
  76. - [Option 2] - [Key benefit] - [Best for scenario]
  77. - [Option 3] - [Key benefit] - [Best for scenario]
  78. **Considerations:**
  79. - Component library size and quality
  80. - Documentation and community support
  81. - Customization capabilities
  82. - Accessibility compliance
  83. - Performance characteristics
  84. - Learning curve for your team"
  85. ### 4. Facilitate Decision Process
  86. Help user make informed choice:
  87. "**Decision Framework:**
  88. 1. What's most important: Speed, uniqueness, or balance?
  89. 2. How much design expertise does your team have?
  90. 3. Are there existing brand guidelines to follow?
  91. 4. What's your timeline and budget?
  92. 5. Long-term maintenance needs?
  93. Let's evaluate options based on your answers to these questions."
  94. ### 5. Finalize Design System Choice
  95. Confirm and document the decision:
  96. "Based on our analysis, I recommend [Design System Choice] for {{project_name}}.
  97. **Rationale:**
  98. - [Reason 1 based on project needs]
  99. - [Reason 2 based on constraints]
  100. - [Reason 3 based on team considerations]
  101. **Next Steps:**
  102. - We'll customize this system to match your brand and needs
  103. - Define component strategy for custom components needed
  104. - Establish design tokens and patterns
  105. Does this design system choice feel right to you?"
  106. ### 6. Generate Design System Content
  107. Prepare the content to append to the document:
  108. #### Content Structure:
  109. When saving to document, append these Level 2 and Level 3 sections:
  110. ```markdown
  111. ## Design System Foundation
  112. ### 1.1 Design System Choice
  113. [Design system choice based on conversation]
  114. ### Rationale for Selection
  115. [Rationale for design system selection based on conversation]
  116. ### Implementation Approach
  117. [Implementation approach based on chosen system]
  118. ### Customization Strategy
  119. [Customization strategy based on project needs]
  120. ```
  121. ### 7. Present Content and Menu
  122. Show the generated design system content and present choices:
  123. "I've documented our design system choice for {{project_name}}. This foundation will ensure consistency and speed up development.
  124. **Here's what I'll add to the document:**
  125. [Show the complete markdown content from step 6]
  126. **What would you like to do?**
  127. [A] Advanced Elicitation - Let's refine our design system decision
  128. [P] Party Mode - Bring technical perspectives on design systems
  129. [C] Continue - Save this to the document and move to defining experience
  130. ### 8. Handle Menu Selection
  131. #### If 'A' (Advanced Elicitation):
  132. - Invoke the `bmad-advanced-elicitation` skill with the current design system content
  133. - Process the enhanced design system insights that come back
  134. - Ask user: "Accept these improvements to the design system decision? (y/n)"
  135. - If yes: Update content with improvements, then return to A/P/C menu
  136. - If no: Keep original content, then return to A/P/C menu
  137. #### If 'P' (Party Mode):
  138. - Invoke the `bmad-party-mode` skill with the current design system choice
  139. - Process the collaborative design system insights that come back
  140. - Ask user: "Accept these changes to the design system decision? (y/n)"
  141. - If yes: Update content with improvements, then return to A/P/C menu
  142. - If no: Keep original content, then return to A/P/C menu
  143. #### If 'C' (Continue):
  144. - Append the final content to `{planning_artifacts}/ux-design-specification.md`
  145. - Update frontmatter: append step to end of stepsCompleted array
  146. - Load `./step-07-defining-experience.md`
  147. ## APPEND TO DOCUMENT:
  148. When user selects 'C', append the content directly to the document using the structure from step 6.
  149. ## SUCCESS METRICS:
  150. ✅ Design system options clearly presented and explained
  151. ✅ Decision framework applied to project requirements
  152. ✅ Specific design system chosen with clear rationale
  153. ✅ Implementation approach planned
  154. ✅ Customization strategy defined
  155. ✅ A/P/C menu presented and handled correctly
  156. ✅ Content properly appended to document when C selected
  157. ## FAILURE MODES:
  158. ❌ Not explaining design system concepts clearly
  159. ❌ Rushing to recommendation without understanding requirements
  160. ❌ Not considering technical constraints or team capabilities
  161. ❌ Choosing design system without clear rationale
  162. ❌ Not planning implementation approach
  163. ❌ Not presenting A/P/C menu after content generation
  164. ❌ Appending content without user selecting 'C'
  165. ❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
  166. ❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
  167. ❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
  168. ## NEXT STEP:
  169. After user selects 'C' and content is saved to document, load `./step-07-defining-experience.md` to define the core user interaction.
  170. Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu and content is saved!