design-protocol 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/agents/dp-researcher.md +239 -0
  4. package/agents/dp-verifier.md +207 -0
  5. package/bin/install.js +464 -0
  6. package/commands/dp-back.md +221 -0
  7. package/commands/dp-discuss.md +257 -0
  8. package/commands/dp-execute.md +513 -0
  9. package/commands/dp-journey.md +85 -0
  10. package/commands/dp-progress.md +178 -0
  11. package/commands/dp-roadmap.md +83 -0
  12. package/commands/dp-skip.md +186 -0
  13. package/commands/dp-start.md +510 -0
  14. package/commands/dp-storytell.md +94 -0
  15. package/commands/dp-verify.md +207 -0
  16. package/package.json +59 -0
  17. package/skills/dp-color/SKILL.md +214 -0
  18. package/skills/dp-color/export_tokens.py +297 -0
  19. package/skills/dp-color/references/apca-contrast.md +87 -0
  20. package/skills/dp-color/references/hue-emotions.md +109 -0
  21. package/skills/dp-color/references/oklch-gamut.md +79 -0
  22. package/skills/dp-color/references/pitfalls.md +171 -0
  23. package/skills/dp-color/references/scale-patterns.md +206 -0
  24. package/skills/dp-color/references/tool-workflows.md +200 -0
  25. package/skills/dp-discovery/SKILL.md +480 -0
  26. package/skills/dp-eng_review/SKILL.md +471 -0
  27. package/skills/dp-eng_review/references/code-review-checklist.md +385 -0
  28. package/skills/dp-eng_review/references/react-patterns.md +512 -0
  29. package/skills/dp-eng_review/references/shadcn-patterns.md +510 -0
  30. package/skills/dp-eng_review/references/tailwind-conventions.md +351 -0
  31. package/skills/dp-journey/SKILL.md +682 -0
  32. package/skills/dp-journey/references/journey-types.md +97 -0
  33. package/skills/dp-journey/references/map-structures.md +177 -0
  34. package/skills/dp-journey/references/omnichannel-patterns.md +208 -0
  35. package/skills/dp-journey/references/research-methods.md +125 -0
  36. package/skills/dp-prd/SKILL.md +201 -0
  37. package/skills/dp-prd/references/claude-code-spec.md +107 -0
  38. package/skills/dp-prd/references/interview-questions.md +158 -0
  39. package/skills/dp-prd/references/section-templates.md +231 -0
  40. package/skills/dp-research/SKILL.md +540 -0
  41. package/skills/dp-research/references/facilitation-guide.md +291 -0
  42. package/skills/dp-research/references/interview-guide-template.md +190 -0
  43. package/skills/dp-research/references/method-selection.md +195 -0
  44. package/skills/dp-research/references/question-writing.md +244 -0
  45. package/skills/dp-research/references/research-report-template.md +363 -0
  46. package/skills/dp-research/references/synthesis-methods.md +289 -0
  47. package/skills/dp-research/references/usability-test-template.md +260 -0
  48. package/skills/dp-roadmap/SKILL.md +648 -0
  49. package/skills/dp-roadmap/references/prioritization-frameworks.md +312 -0
  50. package/skills/dp-roadmap/references/roadmap-structures.md +179 -0
  51. package/skills/dp-roadmap/references/roadmap-workshops.md +264 -0
  52. package/skills/dp-roadmap/references/theme-development.md +168 -0
  53. package/skills/dp-storytell/SKILL.md +645 -0
  54. package/skills/dp-storytell/references/audience-playbooks.md +260 -0
  55. package/skills/dp-storytell/references/content-type-templates.md +310 -0
  56. package/skills/dp-storytell/references/delivery-tactics.md +228 -0
  57. package/skills/dp-storytell/references/narrative-frameworks.md +259 -0
  58. package/skills/dp-ui/SKILL.md +503 -0
  59. package/skills/dp-ui/references/b2b-enterprise-patterns.md +319 -0
  60. package/skills/dp-ui/references/data-visualization.md +304 -0
  61. package/skills/dp-ui/references/visual-design-principles.md +237 -0
  62. package/skills/dp-ux/SKILL.md +414 -0
  63. package/skills/dp-ux/references/accessibility-checklist.md +128 -0
  64. package/skills/dp-ux/references/product-excellence.md +149 -0
  65. package/skills/dp-ux/references/usability-principles.md +140 -0
  66. package/skills/dp-ux/references/ux-patterns.md +221 -0
  67. package/templates/config.json +55 -0
  68. package/templates/context.md +96 -0
  69. package/templates/project.md +83 -0
  70. package/templates/requirements.md +137 -0
  71. package/templates/roadmap.md +168 -0
  72. package/templates/state.md +107 -0
@@ -0,0 +1,128 @@
1
+ # Accessibility Checklist
2
+
3
+ Essential WCAG 2.1 AA compliance for production interfaces.
4
+
5
+ ## Keyboard Navigation
6
+
7
+ - [ ] All interactive elements reachable via Tab
8
+ - [ ] Logical tab order (follows visual flow)
9
+ - [ ] Focus indicator visible on all focusable elements
10
+ - [ ] Custom focus styles (not just browser default)
11
+ - [ ] Skip links for main content on complex pages
12
+ - [ ] No keyboard traps (can always Tab out)
13
+ - [ ] Modal focus trapping (Tab cycles within modal)
14
+ - [ ] Escape closes modals/dropdowns
15
+ - [ ] Arrow keys for menu/option navigation
16
+ - [ ] Enter/Space activates buttons and links
17
+
18
+ ## Color & Contrast
19
+
20
+ - [ ] Text contrast ratio ≥ 4.5:1 (normal text)
21
+ - [ ] Text contrast ratio ≥ 3:1 (large text, 18px+ or 14px bold)
22
+ - [ ] UI component contrast ≥ 3:1 against background
23
+ - [ ] Focus indicators have ≥ 3:1 contrast
24
+ - [ ] Color is never the ONLY indicator of meaning
25
+ - [ ] Error states use icon/text + color, not just red
26
+ - [ ] Links distinguishable from body text (underline or 3:1 contrast)
27
+
28
+ ## Text & Typography
29
+
30
+ - [ ] Base font size ≥ 16px
31
+ - [ ] Line height ≥ 1.5 for body text
32
+ - [ ] Text resizable up to 200% without breaking layout
33
+ - [ ] No text in images (except logos)
34
+ - [ ] Language attribute set on HTML element
35
+ - [ ] Avoid justified text (uneven spacing)
36
+
37
+ ## Images & Media
38
+
39
+ - [ ] All images have alt text (or alt="" for decorative)
40
+ - [ ] Complex images have extended descriptions
41
+ - [ ] Icons with meaning have accessible labels
42
+ - [ ] Decorative icons hidden from screen readers (aria-hidden="true")
43
+ - [ ] Video has captions
44
+ - [ ] Audio has transcript
45
+
46
+ ## Forms
47
+
48
+ - [ ] All inputs have associated labels (not just placeholder)
49
+ - [ ] Labels are visible (not visually hidden unless icon is clear)
50
+ - [ ] Required fields marked and announced
51
+ - [ ] Error messages linked to inputs (aria-describedby)
52
+ - [ ] Error messages are specific and helpful
53
+ - [ ] Form validation announced to screen readers
54
+ - [ ] Autocomplete attributes for common fields
55
+ - [ ] Input type matches expected data (email, tel, etc.)
56
+
57
+ ## Interactive Elements
58
+
59
+ - [ ] Buttons use `<button>`, not `<div onClick>`
60
+ - [ ] Links use `<a>` with href, not `<span onClick>`
61
+ - [ ] Custom components have appropriate ARIA roles
62
+ - [ ] aria-expanded for collapsible sections
63
+ - [ ] aria-selected for tabs/selections
64
+ - [ ] aria-live regions for dynamic content
65
+ - [ ] Loading states announced (aria-busy or live region)
66
+ - [ ] Disabled states use `disabled` attribute or aria-disabled
67
+
68
+ ## Motion & Animation
69
+
70
+ - [ ] Respect prefers-reduced-motion media query
71
+ - [ ] No auto-playing video/audio
72
+ - [ ] Animations can be paused
73
+ - [ ] No flashing content (< 3 flashes/second)
74
+ - [ ] Essential information not conveyed only through motion
75
+
76
+ ## Touch & Mobile
77
+
78
+ - [ ] Touch targets ≥ 44×44px
79
+ - [ ] Adequate spacing between touch targets (≥ 8px)
80
+ - [ ] Gestures have alternative controls
81
+ - [ ] Pinch-to-zoom not disabled
82
+ - [ ] Orientation not locked (unless essential)
83
+
84
+ ## Screen Reader Essentials
85
+
86
+ ```html
87
+ <!-- Landmark regions -->
88
+ <header role="banner">
89
+ <nav role="navigation">
90
+ <main role="main">
91
+ <footer role="contentinfo">
92
+
93
+ <!-- Headings hierarchy -->
94
+ <h1> (one per page)
95
+ <h2>
96
+ <h3>
97
+
98
+ <!-- Live regions for dynamic updates -->
99
+ <div aria-live="polite">Status updates here</div>
100
+ <div aria-live="assertive">Critical alerts here</div>
101
+
102
+ <!-- Hide decorative elements -->
103
+ <span aria-hidden="true">🎉</span>
104
+
105
+ <!-- Accessible names -->
106
+ <button aria-label="Close dialog">×</button>
107
+ <input aria-describedby="hint-id">
108
+ <span id="hint-id">Password must be 8+ characters</span>
109
+ ```
110
+
111
+ ## Testing Checklist
112
+
113
+ 1. **Keyboard only** — Unplug mouse, complete all tasks
114
+ 2. **Screen reader** — Test with VoiceOver (Mac) or NVDA (Windows)
115
+ 3. **Zoom** — Test at 200% browser zoom
116
+ 4. **Color blindness** — Use simulator (Stark, Sim Daltonism)
117
+ 5. **Reduced motion** — Enable in OS settings, verify animations reduce
118
+ 6. **Contrast checker** — Use WebAIM contrast checker or Figma plugin
119
+
120
+ ## Quick Wins
121
+
122
+ If limited time, prioritize these high-impact items:
123
+ 1. Keyboard navigation works for all interactions
124
+ 2. All form inputs have visible labels
125
+ 3. Color contrast meets minimums
126
+ 4. Focus indicators are visible
127
+ 5. Images have alt text
128
+ 6. Buttons are `<button>`, links are `<a>`
@@ -0,0 +1,149 @@
1
+ # Product Excellence
2
+
3
+ What separates great products from good ones. Learn from the best.
4
+
5
+ ## Linear — Speed as a Feature
6
+
7
+ **Philosophy**: Software should feel instant. Every interaction should respond in milliseconds.
8
+
9
+ **Key UX decisions**:
10
+ - **Optimistic updates everywhere** — Actions feel instant, sync in background
11
+ - **Keyboard-first** — Every action has a shortcut, power users never touch mouse
12
+ - **Command palette (Cmd+K)** — Single entry point to everything
13
+ - **Minimal UI chrome** — Content takes center stage, UI fades away
14
+ - **Animations are fast** — 150-200ms transitions, never sluggish
15
+ - **Offline-capable** — Works without network, syncs when available
16
+
17
+ **Steal these patterns**:
18
+ - Sub-100ms response to all interactions
19
+ - Global keyboard shortcuts with discoverability (Cmd+/)
20
+ - Dense but scannable information display
21
+ - Smooth, fast animations (ease-out, short duration)
22
+
23
+ ## Stripe — Clarity in Complexity
24
+
25
+ **Philosophy**: Complex systems should feel simple. Guide users through sophisticated workflows without overwhelming them.
26
+
27
+ **Key UX decisions**:
28
+ - **Progressive disclosure** — Show basics first, reveal complexity on demand
29
+ - **Inline documentation** — Help text right where you need it, not in separate docs
30
+ - **Real-time validation** — Card fields validate as you type with clear feedback
31
+ - **Test mode everywhere** — Safe sandbox to experiment without consequences
32
+ - **Consistent patterns** — Once you learn one part, you understand the whole
33
+
34
+ **Steal these patterns**:
35
+ - Inline validation with specific, helpful messages
36
+ - Contextual help (?) icons with popovers
37
+ - Clear success/error states with next steps
38
+ - Dashboard overviews that answer "what should I do now?"
39
+
40
+ ## Notion — Flexibility Without Chaos
41
+
42
+ **Philosophy**: One tool that adapts to any workflow. Blocks as universal building blocks.
43
+
44
+ **Key UX decisions**:
45
+ - **Slash commands** — Universal entry point for all content types
46
+ - **Blocks** — Everything is a draggable, transformable block
47
+ - **Templates** — Reduce blank page anxiety with starting points
48
+ - **Gentle onboarding** — Learn by using, not by reading
49
+ - **Multiplayer presence** — See who's here, what they're doing
50
+
51
+ **Steal these patterns**:
52
+ - Slash commands for contextual actions
53
+ - Drag-and-drop for organization
54
+ - Template galleries for common use cases
55
+ - Inline @mentions for collaboration
56
+
57
+ ## Vercel — Developer Experience as UX
58
+
59
+ **Philosophy**: Developers are users too. Reduce friction to zero.
60
+
61
+ **Key UX decisions**:
62
+ - **Zero-config defaults** — Works out of box, configure only when needed
63
+ - **Preview deployments** — Every PR gets a live URL automatically
64
+ - **Real-time logs** — See what's happening instantly
65
+ - **Git-centric workflow** — Meets developers where they are
66
+ - **Beautiful CLI** — Even terminal output is designed
67
+
68
+ **Steal these patterns**:
69
+ - Smart defaults that handle 80% of cases
70
+ - Live previews of changes
71
+ - Clear deployment/build status visualization
72
+ - One-click actions for common tasks
73
+
74
+ ## Figma — Collaborative by Default
75
+
76
+ **Philosophy**: Design is a team sport. Real-time collaboration changes everything.
77
+
78
+ **Key UX decisions**:
79
+ - **Multiplayer cursors** — Always know who's here and where
80
+ - **Browser-based** — No install, share via URL
81
+ - **Components & variants** — Single source of truth for design systems
82
+ - **Comments in context** — Feedback attached to what it's about
83
+ - **Prototyping built-in** — Design and prototype in one tool
84
+
85
+ **Steal these patterns**:
86
+ - Real-time presence indicators
87
+ - Shareable URLs for everything
88
+ - Comment threads attached to specific elements
89
+ - Version history with named checkpoints
90
+
91
+ ## Apple — Invisible Technology
92
+
93
+ **Philosophy**: Technology should disappear. The best interface is no interface.
94
+
95
+ **Key UX decisions**:
96
+ - **Sensible defaults** — Works perfectly out of box
97
+ - **Reduce options** — One obvious way to do things
98
+ - **Direct manipulation** — Touch, drag, pinch — interact naturally
99
+ - **System-wide consistency** — Learn once, use everywhere
100
+ - **Delight in details** — Polish that makes you smile
101
+
102
+ **Steal these patterns**:
103
+ - Haptic feedback for physical confirmation
104
+ - Smooth, physics-based animations
105
+ - Limited but powerful feature sets
106
+ - Empty states that guide, not just inform
107
+
108
+ ## Common Patterns Across Great Products
109
+
110
+ ### Speed
111
+ - < 100ms for feedback on any interaction
112
+ - Optimistic UI for perceived performance
113
+ - Skeleton screens, not spinners
114
+ - Background sync, not blocking operations
115
+
116
+ ### Keyboard-First
117
+ - All actions have keyboard shortcuts
118
+ - Command palette (Cmd+K) as universal entry point
119
+ - Tab navigation works logically
120
+ - Shortcut hints in UI
121
+
122
+ ### Progressive Disclosure
123
+ - Simple by default, powerful when needed
124
+ - Advanced options tucked away but findable
125
+ - Contextual help, not separate documentation
126
+ - Learn by doing, not by reading
127
+
128
+ ### Status & Feedback
129
+ - Always show system status
130
+ - Clear success/error/loading states
131
+ - Undo for mistakes, not confirmation dialogs
132
+ - Non-blocking notifications
133
+
134
+ ### Polish
135
+ - Consistent spacing and alignment
136
+ - Smooth, purposeful animations
137
+ - Attention to empty states
138
+ - Error messages that help
139
+
140
+ ## Anti-Patterns to Avoid
141
+
142
+ - **Modal abuse** — Modals interrupt flow; use sheets, drawers, or inline expansion
143
+ - **Confirmation dialogs for routine actions** — Provide undo instead
144
+ - **Spinners for content loading** — Use skeleton screens
145
+ - **Error codes without explanation** — Always explain what went wrong and how to fix
146
+ - **Hidden navigation** — Don't make users hunt for common actions
147
+ - **Requiring signup before value** — Show the product first
148
+ - **Feature overload** — Not every feature needs to be visible always
149
+ - **Inconsistent patterns** — Same action should work same way everywhere
@@ -0,0 +1,140 @@
1
+ # Usability Principles
2
+
3
+ ## Nielsen's 10 Heuristics (with Modern Interpretations)
4
+
5
+ ### 1. Visibility of System Status
6
+ **Classic**: Keep users informed about what's going on through appropriate feedback within reasonable time.
7
+
8
+ **Modern application**:
9
+ - Skeleton screens during loading (not spinners for content)
10
+ - Progress indicators for multi-step processes
11
+ - Real-time sync status (saved, saving, offline)
12
+ - Subtle toast notifications for background operations
13
+ - Network/connection status indicators
14
+
15
+ **Examples**: Linear shows "Saving..." → "Saved" transitions. Figma shows multiplayer cursors and selection states.
16
+
17
+ ### 2. Match Between System and Real World
18
+ **Classic**: Use words, phrases, and concepts familiar to the user, not system-oriented jargon.
19
+
20
+ **Modern application**:
21
+ - Domain-specific language matching user's mental model
22
+ - Metaphors that make sense (folder, trash, archive)
23
+ - Date/time in user's locale and relative terms ("2 hours ago")
24
+ - Currency and number formatting per locale
25
+ - Avoid technical errors ("Error 500") — translate to human impact
26
+
27
+ ### 3. User Control and Freedom
28
+ **Classic**: Provide a clearly marked "emergency exit" to leave unwanted states.
29
+
30
+ **Modern application**:
31
+ - Undo everywhere (Cmd+Z should work)
32
+ - Non-destructive operations by default (soft delete, archive)
33
+ - Easy escape from modals (click outside, Escape key)
34
+ - Clear back/cancel paths in flows
35
+ - Bulk undo for batch operations
36
+ - Draft auto-save so users never lose work
37
+
38
+ **Examples**: Gmail's "Undo Send", Notion's version history, Linear's Cmd+Z for almost everything.
39
+
40
+ ### 4. Consistency and Standards
41
+ **Classic**: Follow platform conventions — users shouldn't wonder if different words/actions mean the same thing.
42
+
43
+ **Modern application**:
44
+ - Platform-native keyboard shortcuts (Cmd on Mac, Ctrl on Windows)
45
+ - Standard icon meanings (gear = settings, X = close)
46
+ - Consistent terminology throughout the app
47
+ - Design tokens for spacing, colors, typography
48
+ - Component behavior consistency (all dropdowns work the same)
49
+
50
+ ### 5. Error Prevention
51
+ **Classic**: Eliminate error-prone conditions or present users with a confirmation option.
52
+
53
+ **Modern application**:
54
+ - Disable invalid actions, don't just error afterward
55
+ - Smart defaults that minimize required input
56
+ - Inline validation as users type
57
+ - Format hints and input masks for structured data
58
+ - Confirmation only for truly destructive/irreversible actions
59
+ - Autosuggest to prevent typos
60
+
61
+ **Examples**: Stripe's inline card validation, Linear's smart date parsing.
62
+
63
+ ### 6. Recognition Rather Than Recall
64
+ **Classic**: Minimize memory load by making objects, actions, and options visible.
65
+
66
+ **Modern application**:
67
+ - Command palette with searchable actions (Cmd+K)
68
+ - Recent items and frequently used at the top
69
+ - Contextual actions in right-click menus
70
+ - Autocomplete with recent/suggested options
71
+ - Visual affordances for draggable/interactive elements
72
+ - Breadcrumbs for deep navigation
73
+
74
+ ### 7. Flexibility and Efficiency of Use
75
+ **Classic**: Accelerators — unseen by novices — speed up interaction for experts.
76
+
77
+ **Modern application**:
78
+ - Keyboard shortcuts for power users
79
+ - Command palette (Cmd+K) for everything
80
+ - Bulk operations and multi-select
81
+ - Quick actions and hover menus
82
+ - Customizable workflows and views
83
+ - API/integrations for automation
84
+
85
+ **Examples**: Notion's slash commands, Linear's keyboard-first design, Figma's plugins.
86
+
87
+ ### 8. Aesthetic and Minimalist Design
88
+ **Classic**: Don't include information that is irrelevant or rarely needed.
89
+
90
+ **Modern application**:
91
+ - Progressive disclosure — show advanced options on demand
92
+ - Information hierarchy — most important content is most prominent
93
+ - Whitespace as a design element, not wasted space
94
+ - Reduce visual noise — every element should earn its place
95
+ - Contextual UI that adapts to current task
96
+
97
+ ### 9. Help Users Recognize, Diagnose, and Recover from Errors
98
+ **Classic**: Error messages should be expressed in plain language, precisely indicate the problem, and constructively suggest a solution.
99
+
100
+ **Modern application**:
101
+ - Error format: What happened → Why → How to fix
102
+ - Inline errors next to the field, not at page top
103
+ - Suggested fixes and one-click resolution when possible
104
+ - Link to help docs for complex errors
105
+ - Never show stack traces or error codes alone
106
+
107
+ **Example**: "This email is already registered. [Log in instead] or [Reset password]"
108
+
109
+ ### 10. Help and Documentation
110
+ **Classic**: Provide help and documentation that is easy to search and focused on user tasks.
111
+
112
+ **Modern application**:
113
+ - Contextual help (? icons, tooltips) over manual hunting
114
+ - Searchable help within the app
115
+ - Interactive tutorials and onboarding
116
+ - Empty states as teaching moments
117
+ - Keyboard shortcut cheat sheets (Cmd+/)
118
+
119
+ ## Additional Modern Principles
120
+
121
+ ### Performance is a Feature
122
+ - First contentful paint < 1.5s
123
+ - Time to interactive < 3s
124
+ - Perceived performance through optimistic UI
125
+ - Skeleton screens and progressive loading
126
+ - Offline-capable when relevant
127
+
128
+ ### Mobile is Not Desktop Shrunk Down
129
+ - Touch targets 44×44px minimum
130
+ - Thumb-zone optimized primary actions
131
+ - Swipe gestures for common actions
132
+ - Pull-to-refresh where expected
133
+ - Bottom sheets over modals on mobile
134
+
135
+ ### Accessibility is Not Optional
136
+ - Keyboard navigable
137
+ - Screen reader compatible
138
+ - Sufficient color contrast
139
+ - Focus indicators visible
140
+ - Motion-reduced alternatives
@@ -0,0 +1,221 @@
1
+ # UX Patterns
2
+
3
+ Proven patterns for common UI challenges.
4
+
5
+ ## Component States
6
+
7
+ Every interactive component needs these states designed:
8
+
9
+ ### Button States
10
+ ```
11
+ Default → Hover → Focus → Active (pressed) → Disabled → Loading
12
+ ```
13
+ - **Loading**: Replace label with spinner, maintain button width, disable interaction
14
+ - **Disabled**: Reduce opacity (50-60%), remove hover effects, `cursor: not-allowed`
15
+ - **Focus**: Visible ring (not just browser default), works on dark and light backgrounds
16
+
17
+ ### Input States
18
+ ```
19
+ Empty → Focused → Filled → Error → Disabled → Read-only
20
+ ```
21
+ - **Focused**: Border color change + subtle shadow/glow
22
+ - **Error**: Red border + error icon + message below (not just red border)
23
+ - **Filled**: Subtle distinction from empty (optional, for complex forms)
24
+
25
+ ### Card/Item States
26
+ ```
27
+ Default → Hover → Selected → Dragging → Drop target
28
+ ```
29
+ - **Hover**: Subtle lift (shadow) or background shift
30
+ - **Selected**: Checkmark + background color + border (multiple indicators)
31
+ - **Dragging**: Reduced opacity on original, cursor change
32
+
33
+ ## Empty States
34
+
35
+ Never leave users staring at blank space.
36
+
37
+ **Good empty state includes**:
38
+ 1. Clear message about why it's empty
39
+ 2. Visual element (illustration or icon)
40
+ 3. Primary action to remedy the emptiness
41
+ 4. Secondary context (optional)
42
+
43
+ **Examples**:
44
+ ```
45
+ [Illustration of inbox]
46
+ No messages yet
47
+ When you receive messages, they'll appear here.
48
+ [Compose message] ← Primary CTA
49
+ ```
50
+
51
+ ```
52
+ [Search icon]
53
+ No results for "quarterly reports"
54
+ Try adjusting your search or filters.
55
+ [Clear filters] [Browse all]
56
+ ```
57
+
58
+ ## Loading States
59
+
60
+ ### Skeleton Screens (preferred for content)
61
+ - Match layout of expected content
62
+ - Animate with subtle shimmer (left to right)
63
+ - Transition smoothly to loaded state
64
+
65
+ ### Spinners (for actions)
66
+ - Use for button loading states
67
+ - Use for discrete operations (save, submit)
68
+ - Include timeout/retry for long operations
69
+
70
+ ### Progress Bars (for known duration)
71
+ - File uploads, multi-step processes
72
+ - Show percentage or steps remaining
73
+ - Include cancel option for long operations
74
+
75
+ ### Optimistic UI (for fast actions)
76
+ - Show success immediately, reconcile in background
77
+ - Have rollback plan for failures
78
+ - Example: Toggling a like shows instantly, syncs async
79
+
80
+ ## Error Handling
81
+
82
+ ### Inline Validation
83
+ ```
84
+ [Email input with red border]
85
+ ✗ Please enter a valid email address
86
+ ```
87
+ - Validate on blur (not on every keystroke)
88
+ - Clear error when user starts fixing
89
+ - Show success state when corrected ✓
90
+
91
+ ### Error Messages Formula
92
+ ```
93
+ What happened + Why + How to fix
94
+ ```
95
+
96
+ **Bad**: "Error 422: Unprocessable entity"
97
+ **Good**: "We couldn't save your changes. The file is too large (max 10MB). Try compressing it or choosing a smaller file."
98
+
99
+ ### Error Message Placement
100
+ - Form errors: Below the input, not at page top
101
+ - System errors: Toast notification or banner
102
+ - Critical errors: Full-screen with recovery options
103
+
104
+ ### Error Recovery
105
+ - Preserve user input on error (never clear the form)
106
+ - Offer one-click retry
107
+ - Suggest alternatives when primary path fails
108
+
109
+ ## Feedback & Confirmation
110
+
111
+ ### Toast Notifications
112
+ - Position: Top-right or bottom-center
113
+ - Auto-dismiss: 3-5 seconds for success, persist for errors
114
+ - Include undo action when relevant
115
+ - Stack if multiple (limit to 3 visible)
116
+
117
+ ### Success Feedback
118
+ - Checkmark animation (200-300ms)
119
+ - Brief toast: "Saved" / "Sent" / "Done"
120
+ - Don't overdo it — success should feel lightweight
121
+
122
+ ### Destructive Action Confirmation
123
+ **Use confirmation dialog when**:
124
+ - Action is irreversible
125
+ - Data loss would occur
126
+ - Significant impact on others
127
+
128
+ **Avoid confirmation when**:
129
+ - Undo is available
130
+ - Action is easily recoverable
131
+ - Frequent/routine action
132
+
133
+ **Confirmation dialog pattern**:
134
+ ```
135
+ Delete "Q3 Report"?
136
+ This will permanently delete the file and cannot be undone.
137
+ [Cancel] [Delete] ← Destructive action in red, on right
138
+ ```
139
+
140
+ ## Navigation Patterns
141
+
142
+ ### Breadcrumbs
143
+ - Use for hierarchical content (> 2 levels deep)
144
+ - Current page is last item, not clickable
145
+ - Truncate middle items on mobile: Home > ... > Current
146
+
147
+ ### Tabs
148
+ - Use for same-level, parallel content
149
+ - One tab active at a time
150
+ - Content changes, URL optionally changes
151
+ - Tab count: 2-7 (more = consider different pattern)
152
+
153
+ ### Command Palette (Cmd+K)
154
+ - Search across all actions, pages, items
155
+ - Recent/frequent items first
156
+ - Keyboard navigable (arrows, enter)
157
+ - Show keyboard shortcuts in results
158
+
159
+ ### Back Navigation
160
+ - Back button returns to previous view/state
161
+ - Preserve scroll position and filters when returning
162
+ - Clear navigation history mental model
163
+
164
+ ## Form Patterns
165
+
166
+ ### Single Column Layout
167
+ - One column for most forms (fastest to complete)
168
+ - Only use multi-column for related short fields (First/Last name)
169
+
170
+ ### Logical Grouping
171
+ - Group related fields with subtle visual separator
172
+ - Limit groups to 5-7 fields each
173
+ - Progressive disclosure for optional/advanced fields
174
+
175
+ ### Smart Defaults
176
+ - Pre-fill from context (timezone from location, etc.)
177
+ - Remember user preferences
178
+ - Select most common option by default
179
+
180
+ ### Required vs Optional
181
+ - If most fields required: Mark optional ones "(optional)"
182
+ - If most fields optional: Mark required ones with asterisk *
183
+ - Never mark both — redundant
184
+
185
+ ### Form Submission
186
+ ```
187
+ [Idle] → [Submitting...] → [Success ✓] or [Error]
188
+ ```
189
+ - Disable submit button while processing
190
+ - Show inline errors on validation failure
191
+ - Success: Navigate away or show clear confirmation
192
+
193
+ ## Mobile-Specific Patterns
194
+
195
+ ### Bottom Sheet
196
+ - Prefer over modals on mobile
197
+ - Drag handle at top
198
+ - Swipe down to dismiss
199
+ - Multiple breakpoints (peek, half, full)
200
+
201
+ ### Pull to Refresh
202
+ - Use for feed/list content
203
+ - Loading spinner at top
204
+ - Release threshold before triggering
205
+
206
+ ### Swipe Actions
207
+ - Swipe to reveal actions (delete, archive)
208
+ - Show action preview during swipe
209
+ - Snap back if not completed
210
+
211
+ ### Thumb Zone
212
+ ```
213
+ ┌─────────────────┐
214
+ │ Hard to reach │
215
+ │ │
216
+ │ Okay reach │
217
+ │ │
218
+ │ Easy reach │ ← Primary actions here
219
+ └─────────────────┘
220
+ ```
221
+ Primary actions (FAB, main nav) in bottom third.
@@ -0,0 +1,55 @@
1
+ {
2
+ "version": "2.1",
3
+ "created": "",
4
+ "project_name": "",
5
+ "workflow": {
6
+ "current_phase": 0,
7
+ "phases_completed": [],
8
+ "workflow_status": "not_started",
9
+ "executions": {
10
+ "wireframe": {
11
+ "completed": false,
12
+ "timestamp": null,
13
+ "output_dir": null
14
+ },
15
+ "polished": {
16
+ "completed": false,
17
+ "timestamp": null,
18
+ "output_dir": null
19
+ }
20
+ }
21
+ },
22
+ "settings": {
23
+ "depth": "standard",
24
+ "challenge_mode": "heavy"
25
+ },
26
+ "phases": {
27
+ "discovery": {
28
+ "enabled": true,
29
+ "challenge_mode": "heavy",
30
+ "depth": "standard"
31
+ },
32
+ "ux": {
33
+ "enabled": true,
34
+ "include_accessibility": true,
35
+ "include_all_states": true
36
+ },
37
+ "ui": {
38
+ "enabled": true,
39
+ "include_b2b": false,
40
+ "include_data_viz": false,
41
+ "grid_system": "8px"
42
+ },
43
+ "review": {
44
+ "enabled": true,
45
+ "severity_threshold": "moderate",
46
+ "include_spec_alignment": true
47
+ }
48
+ },
49
+ "optional_phases": {
50
+ "research": {
51
+ "enabled": false,
52
+ "methods": []
53
+ }
54
+ }
55
+ }