--- name: ux-brief description: Create junior-dev-ready design systems through guided discovery before implementation allowed-tools: Read Write Edit Grep Glob WebSearch WebFetch AskUserQuestion Task Skill argument-hint: "[component, page, or feature to design]" --- # Design System Generator Create comprehensive, junior-dev-ready design system documents through guided discovery. ## Design Target $ARGUMENTS **If empty, ask:** "What would you like to design? Describe the component, page, or feature." ## Phase 0: Interview Option (Optional) For complex features where requirements are unclear, offer a deep interview first: ``` AskUserQuestion: "This design could benefit from a requirements interview to clarify goals and constraints. Would you like to explore it in depth first?" Options: - "Yes, interview me first" → Skill(skill: "majestic-tools:workflows:interview", args: "[design target]"), then use refined output - "No, proceed to design discovery" → Continue to Phase 1 ``` **When to suggest interview:** - Design target is vague (e.g., "dashboard", "admin panel") - Multiple user types or stakeholders involved - Business goals not clearly stated - User seems uncertain about what they want **Skip interview suggestion for:** - Specific components with clear scope (e.g., "login form", "settings page") - When user has existing specs/mockups - Iteration on existing designs ## Phase 1: Context Gathering Before asking questions, understand the project: 1. Check for existing design tokens (tailwind.config.js, CSS variables) 2. Look at existing UI components for patterns 3. Identify tech stack (React, Vue, Rails/Hotwire, vanilla) 4. Check for style guides or brand documentation ## Phase 2: Discovery Questions Ask questions **ONE AT A TIME**. Prefer multiple choice when options are bounded. ### Question Areas 1. **Purpose & Goals** - What is this UI trying to achieve? 2. **Target Audience** - Who will use this interface? 3. **Aesthetic Direction** - Pick one: Brutalist, Minimalist, Maximalist, Luxury, Playful, Retro-futuristic 4. **Typography** - Display and body font preferences 5. **Color Palette** - Primary brand color, light/dark theme, accent strategy 6. **Motion & Interaction** - Animation intensity (none, subtle, dramatic) 7. **Inspiration & References** - Sites they admire (Stripe, Linear, Vercel, etc.) 8. **Technical Constraints** - Browser support, performance, accessibility (WCAG level) 9. **Framework** (REQUIRED) - Based on tech_stack, suggest: - `rails` → DaisyUI + Tailwind - `react` → Tailwind or styled-components - Default → Plain Tailwind ### Visual Language Questions (if comprehensive design system needed) 10. **Photography style** - "What mood should photos convey?" - Options: Authentic/candid, Editorial/staged, Abstract/artistic, Product-focused, People-focused 11. **Illustration style** - "Do you need illustrations? If so, what style?" - Options: None needed, Geometric/clean, Organic/hand-drawn, Isometric/3D, Flat/minimal 12. **Iconography** - "What icon style fits your brand?" - Options: Outlined (Heroicons), Filled (solid), Duotone (Phosphor), Custom/branded ### Question Guidelines - **ONE question per turn** - **Multiple choice preferred** - **Skip obvious questions** from context - **Summarize every 2-3 questions** - **Research references** - if user mentions a site, fetch it ## Phase 3: Reference Research When user mentions reference sites: 1. Fetch the site using WebFetch 2. Identify: typography, color palette, layout patterns, animation, unique details 3. Present findings to confirm what resonates ### Common References - **Stripe**: Clean gradients, depth, premium, documentation excellence - **Linear**: Dark themes, minimal, focused, developer-oriented - **Vercel**: Typography-forward, confident whitespace - **Notion**: Friendly, approachable, illustration-forward - **Raycast**: Dark, utility-focused, keyboard-first ## Phase 4: Design System Generation Load the design system template directly: ``` Read(file_path="references/design-system-template.md") ``` Then customize it with the user's specific choices: - Replace all `[placeholder]` values with actual design decisions - Fill in color hex values based on palette - Configure typography choices - Customize component specifications - Add project-specific do's and don'ts Write the completed design system to `docs/design/design-system.md`. **Design principles applied during generation:** - **Junior-dev ready**: Document should be so complete that no follow-up questions are needed - **Copy-paste ready**: All classes, values, and configs should be directly usable - **Commit to a direction**: Avoid wishy-washy "a bit of everything" designs - **Avoid AI slop**: No Inter font, no purple gradients, no predictable layouts ## Phase 5: Save & Configure ### Step 1: Determine Output Path Check `.agents.yml` for `design_system_path`, default to `docs/design/design-system.md`. ### Step 2: Auto-Preview Check AUTO_PREVIEW = config_read("auto_preview", "false") If AUTO_PREVIEW is "true": Execute `open ` ### Step 3: Present Options Use AskUserQuestion: **If NOT auto-previewed:** - Preview in editor - Start building (Recommended) - Invoke `skill frontend-design` - Refine sections - Research more **If auto-previewed:** - Start building (Recommended) - Refine sections - Research more ## Integration with Workflow After completing the design system: 1. **`Skill("blueprint")`** - Automatically detects UI features and references design system 2. **`Skill("build-task")`** - Loads design system as context 3. **`visual-validator`** - Verifies implementation against specifications ## Key Principles - **Commit to a direction** - Avoid wishy-washy designs - **Avoid AI slop** - No Inter font, no purple gradients - **Research references** - Actually look at sites users mention - **Be opinionated** - Push back on generic choices - **Junior-dev ready** - Document so complete no follow-up needed - **Copy-paste ready** - All classes and configs directly usable