@su-record/vibe 2.7.14 → 2.7.16

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 (234) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +134 -126
  3. package/LICENSE +21 -21
  4. package/README.md +449 -449
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -294
  14. package/agents/explorer-low.md +42 -42
  15. package/agents/explorer-medium.md +59 -59
  16. package/agents/explorer.md +48 -48
  17. package/agents/implementer-low.md +43 -43
  18. package/agents/implementer-medium.md +52 -52
  19. package/agents/implementer.md +54 -54
  20. package/agents/junior-mentor.md +141 -141
  21. package/agents/planning/requirements-analyst.md +84 -84
  22. package/agents/planning/ux-advisor.md +83 -83
  23. package/agents/qa/acceptance-tester.md +86 -86
  24. package/agents/qa/edge-case-finder.md +93 -93
  25. package/agents/refactor-cleaner.md +143 -143
  26. package/agents/research/best-practices-agent.md +199 -199
  27. package/agents/research/codebase-patterns-agent.md +157 -157
  28. package/agents/research/framework-docs-agent.md +188 -188
  29. package/agents/research/security-advisory-agent.md +213 -213
  30. package/agents/review/architecture-reviewer.md +107 -107
  31. package/agents/review/complexity-reviewer.md +116 -116
  32. package/agents/review/data-integrity-reviewer.md +88 -88
  33. package/agents/review/git-history-reviewer.md +103 -103
  34. package/agents/review/performance-reviewer.md +86 -86
  35. package/agents/review/python-reviewer.md +150 -150
  36. package/agents/review/rails-reviewer.md +139 -139
  37. package/agents/review/react-reviewer.md +144 -144
  38. package/agents/review/security-reviewer.md +80 -80
  39. package/agents/review/simplicity-reviewer.md +140 -140
  40. package/agents/review/test-coverage-reviewer.md +116 -116
  41. package/agents/review/typescript-reviewer.md +127 -127
  42. package/agents/searcher.md +54 -54
  43. package/agents/simplifier.md +120 -120
  44. package/agents/tester.md +49 -49
  45. package/agents/ui/ui-a11y-auditor.md +93 -93
  46. package/agents/ui/ui-antipattern-detector.md +94 -94
  47. package/agents/ui/ui-dataviz-advisor.md +69 -69
  48. package/agents/ui/ui-design-system-gen.md +57 -57
  49. package/agents/ui/ui-industry-analyzer.md +49 -49
  50. package/agents/ui/ui-layout-architect.md +65 -65
  51. package/agents/ui/ui-stack-implementer.md +68 -68
  52. package/agents/ui/ux-compliance-reviewer.md +81 -81
  53. package/agents/ui-previewer.md +258 -258
  54. package/commands/vibe.analyze.md +11 -13
  55. package/commands/vibe.review.md +43 -1
  56. package/commands/vibe.run.md +2124 -2078
  57. package/commands/vibe.spec.md +9 -4
  58. package/commands/vibe.spec.review.md +569 -565
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +33 -8
  61. package/dist/cli/collaborator.js +52 -52
  62. package/dist/cli/commands/evolution.js +12 -12
  63. package/dist/cli/commands/info.d.ts.map +1 -1
  64. package/dist/cli/commands/info.js +51 -55
  65. package/dist/cli/commands/info.js.map +1 -1
  66. package/dist/cli/commands/init.js +5 -5
  67. package/dist/cli/commands/remove.js +14 -14
  68. package/dist/cli/commands/sentinel.js +27 -27
  69. package/dist/cli/commands/skills.js +5 -5
  70. package/dist/cli/commands/slack.js +10 -10
  71. package/dist/cli/commands/telegram.js +12 -12
  72. package/dist/cli/detect.js +32 -32
  73. package/dist/cli/index.js +51 -51
  74. package/dist/cli/llm/claude-commands.js +16 -16
  75. package/dist/cli/llm/config.js +18 -18
  76. package/dist/cli/llm/gemini-commands.js +16 -16
  77. package/dist/cli/llm/gpt-commands.js +19 -19
  78. package/dist/cli/llm/help.js +21 -21
  79. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  80. package/dist/cli/postinstall/constants.js +7 -8
  81. package/dist/cli/postinstall/constants.js.map +1 -1
  82. package/dist/cli/postinstall/cursor-agents.js +32 -32
  83. package/dist/cli/postinstall/cursor-rules.js +83 -83
  84. package/dist/cli/postinstall/cursor-skills.js +743 -743
  85. package/dist/cli/setup/Provisioner.js +42 -42
  86. package/dist/infra/lib/DeepInit.js +24 -24
  87. package/dist/infra/lib/IterationTracker.js +11 -11
  88. package/dist/infra/lib/PythonParser.js +108 -108
  89. package/dist/infra/lib/ReviewRace.js +96 -96
  90. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  91. package/dist/infra/lib/SkillQualityGate.js +9 -9
  92. package/dist/infra/lib/SkillRepository.js +159 -159
  93. package/dist/infra/lib/UltraQA.js +99 -99
  94. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  95. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  96. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  97. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  98. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  99. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  100. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  101. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  102. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  103. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  104. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  105. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  106. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  107. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  108. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  109. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  110. package/dist/infra/lib/gemini/orchestration.js +5 -5
  111. package/dist/infra/lib/gpt/orchestration.js +4 -4
  112. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  113. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  114. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  115. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  116. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  117. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  118. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  119. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  120. package/dist/infra/orchestrator/AgentManager.js +12 -12
  121. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  122. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  123. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  124. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  125. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  126. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  127. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  128. package/dist/tools/memory/getMemoryGraph.js +12 -12
  129. package/dist/tools/memory/getSessionContext.js +9 -9
  130. package/dist/tools/memory/linkMemories.js +14 -14
  131. package/dist/tools/memory/listMemories.js +4 -4
  132. package/dist/tools/memory/recallMemory.js +4 -4
  133. package/dist/tools/memory/saveMemory.js +4 -4
  134. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  135. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  136. package/dist/tools/semantic/astGrep.test.js +6 -6
  137. package/dist/tools/spec/prdParser.test.js +171 -171
  138. package/dist/tools/spec/specGenerator.js +169 -169
  139. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  140. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  141. package/hooks/gemini-hooks.json +73 -73
  142. package/hooks/hooks.json +137 -137
  143. package/hooks/scripts/code-check.js +77 -70
  144. package/hooks/scripts/context-save.js +212 -212
  145. package/hooks/scripts/hud-status.js +291 -291
  146. package/hooks/scripts/keyword-detector.js +214 -214
  147. package/hooks/scripts/llm-orchestrate.js +475 -475
  148. package/hooks/scripts/post-edit.js +32 -32
  149. package/hooks/scripts/pre-tool-guard.js +125 -125
  150. package/hooks/scripts/prompt-dispatcher.js +185 -185
  151. package/hooks/scripts/sentinel-guard.js +104 -104
  152. package/hooks/scripts/session-start.js +106 -106
  153. package/hooks/scripts/stop-notify.js +209 -209
  154. package/hooks/scripts/utils.js +100 -100
  155. package/languages/csharp-unity.md +515 -515
  156. package/languages/gdscript-godot.md +470 -470
  157. package/languages/ruby-rails.md +489 -489
  158. package/languages/typescript-angular.md +433 -433
  159. package/languages/typescript-astro.md +416 -416
  160. package/languages/typescript-electron.md +406 -406
  161. package/languages/typescript-nestjs.md +524 -524
  162. package/languages/typescript-svelte.md +407 -407
  163. package/languages/typescript-tauri.md +365 -365
  164. package/package.json +121 -121
  165. package/skills/agents-md/SKILL.md +120 -120
  166. package/skills/arch-guard/SKILL.md +180 -180
  167. package/skills/brand-assets/SKILL.md +146 -146
  168. package/skills/capability-loop/SKILL.md +167 -167
  169. package/skills/characterization-test/SKILL.md +206 -206
  170. package/skills/commerce-patterns/SKILL.md +63 -59
  171. package/skills/commit-push-pr/SKILL.md +75 -75
  172. package/skills/context7-usage/SKILL.md +105 -105
  173. package/skills/core-capabilities/SKILL.md +13 -48
  174. package/skills/e2e-commerce/SKILL.md +61 -57
  175. package/skills/exec-plan/SKILL.md +147 -147
  176. package/skills/frontend-design/SKILL.md +12 -73
  177. package/skills/git-worktree/SKILL.md +72 -72
  178. package/skills/handoff/SKILL.md +109 -109
  179. package/skills/parallel-research/SKILL.md +87 -87
  180. package/skills/priority-todos/SKILL.md +63 -63
  181. package/skills/seo-checklist/SKILL.md +57 -57
  182. package/skills/techdebt/SKILL.md +122 -122
  183. package/skills/tool-fallback/SKILL.md +103 -103
  184. package/skills/typescript-advanced-types/SKILL.md +66 -66
  185. package/skills/ui-ux-pro-max/SKILL.md +221 -206
  186. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  187. package/skills/video-production/SKILL.md +51 -51
  188. package/vibe/config.json +29 -29
  189. package/vibe/constitution.md +227 -227
  190. package/vibe/rules/principles/communication-guide.md +98 -98
  191. package/vibe/rules/principles/development-philosophy.md +52 -52
  192. package/vibe/rules/principles/quick-start.md +102 -102
  193. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  194. package/vibe/rules/quality/checklist.md +276 -276
  195. package/vibe/rules/quality/performance.md +236 -236
  196. package/vibe/rules/quality/testing-strategy.md +440 -440
  197. package/vibe/rules/standards/anti-patterns.md +541 -541
  198. package/vibe/rules/standards/code-structure.md +291 -291
  199. package/vibe/rules/standards/complexity-metrics.md +313 -313
  200. package/vibe/rules/standards/git-workflow.md +237 -237
  201. package/vibe/rules/standards/naming-conventions.md +198 -198
  202. package/vibe/rules/standards/security.md +305 -305
  203. package/vibe/rules/writing/document-style.md +74 -74
  204. package/vibe/setup.sh +31 -31
  205. package/vibe/templates/constitution-template.md +252 -252
  206. package/vibe/templates/contract-backend-template.md +526 -526
  207. package/vibe/templates/contract-frontend-template.md +599 -599
  208. package/vibe/templates/feature-template.md +96 -96
  209. package/vibe/templates/spec-template.md +221 -221
  210. package/vibe/ui-ux-data/charts.csv +26 -26
  211. package/vibe/ui-ux-data/colors.csv +97 -97
  212. package/vibe/ui-ux-data/icons.csv +101 -101
  213. package/vibe/ui-ux-data/landing.csv +31 -31
  214. package/vibe/ui-ux-data/products.csv +96 -96
  215. package/vibe/ui-ux-data/react-performance.csv +45 -45
  216. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  217. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  218. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  219. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  220. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  221. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  222. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  223. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  224. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  225. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  226. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  227. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  228. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  229. package/vibe/ui-ux-data/styles.csv +68 -68
  230. package/vibe/ui-ux-data/typography.csv +57 -57
  231. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  232. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  233. package/vibe/ui-ux-data/version.json +31 -31
  234. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,206 +1,221 @@
1
- ---
2
- name: ui-ux-pro-max
3
- description: "UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples."
4
- ---
5
-
6
- # UI/UX Pro Max - Design Intelligence
7
-
8
- Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks.
9
-
10
- ## Pre-check (K1)
11
-
12
- > Does this project need custom UI/UX design? If using a pre-built template or admin framework (e.g., Retool, Vercel templates), skip this skill.
13
-
14
- ## Rule Categories by Priority
15
-
16
- | Priority | Category | Impact | Domain |
17
- |----------|----------|--------|--------|
18
- | 1 | Accessibility | CRITICAL | `ux` |
19
- | 2 | Touch & Interaction | CRITICAL | `ux` |
20
- | 3 | Performance | HIGH | `ux` |
21
- | 4 | Layout & Responsive | HIGH | `ux` |
22
- | 5 | Typography & Color | MEDIUM | `typography`, `color` |
23
- | 6 | Animation | MEDIUM | `ux` |
24
- | 7 | Style Selection | MEDIUM | `style`, `product` |
25
- | 8 | Charts & Data | LOW | `chart` |
26
-
27
- ## Quick Reference
28
-
29
- ### 1. Accessibility (CRITICAL)
30
-
31
- - `color-contrast` - Minimum 4.5:1 ratio for normal text
32
- - `focus-states` - Visible focus rings on interactive elements
33
- - `alt-text` - Descriptive alt text for meaningful images
34
- - `aria-labels` - aria-label for icon-only buttons
35
- - `keyboard-nav` - Tab order matches visual order
36
- - `form-labels` - Use label with for attribute
37
-
38
- ### 2. Touch & Interaction (CRITICAL)
39
-
40
- - `touch-target-size` - Minimum 44x44px touch targets
41
- - `hover-vs-tap` - Use click/tap for primary interactions
42
- - `loading-buttons` - Disable button during async operations
43
- - `error-feedback` - Clear error messages near problem
44
- - `cursor-pointer` - Add cursor-pointer to clickable elements
45
-
46
- ### 3. Performance (HIGH)
47
-
48
- - `image-optimization` - Use WebP, srcset, lazy loading
49
- - `reduced-motion` - Check prefers-reduced-motion
50
- - `content-jumping` - Reserve space for async content
51
-
52
- ### 4. Layout & Responsive (HIGH)
53
-
54
- - `viewport-meta` - width=device-width initial-scale=1
55
- - `readable-font-size` - Minimum 16px body text on mobile
56
- - `horizontal-scroll` - Ensure content fits viewport width
57
- - `z-index-management` - Define z-index scale (10, 20, 30, 50)
58
-
59
- ### 5. Typography & Color (MEDIUM)
60
-
61
- - `line-height` - Use 1.5-1.75 for body text
62
- - `line-length` - Limit to 65-75 characters per line
63
- - `font-pairing` - Match heading/body font personalities
64
-
65
- ### 6. Animation (MEDIUM)
66
-
67
- - `duration-timing` - Use 150-300ms for micro-interactions
68
- - `transform-performance` - Use transform/opacity, not width/height
69
- - `loading-states` - Skeleton screens or spinners
70
-
71
- ### 7. Style Selection (MEDIUM)
72
-
73
- - `style-match` - Match style to product type
74
- - `consistency` - Use same style across all pages
75
- - `no-emoji-icons` - Use SVG icons, not emojis
76
-
77
- ### 8. Charts & Data (LOW)
78
-
79
- - `chart-type` - Match chart type to data type
80
- - `color-guidance` - Use accessible color palettes
81
- - `data-table` - Provide table alternative for accessibility
82
-
83
- ---
84
-
85
- ## How to Use
86
-
87
- ### Step 1: Analyze Requirements
88
-
89
- Extract from user request: **product type**, **style keywords**, **industry**, **stack** (default: html-tailwind).
90
-
91
- ### Step 2: Generate Design System (REQUIRED)
92
-
93
- ```bash
94
- python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
95
- ```
96
-
97
- This searches 5 domains in parallel (product, style, color, landing, typography), applies reasoning rules, and returns complete design system.
98
-
99
- **Persist for cross-session use:**
100
- ```bash
101
- python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
102
- ```
103
-
104
- Creates `design-system/MASTER.md` (global) + optional `design-system/pages/<page>.md` (overrides).
105
-
106
- **With page-specific override:**
107
- ```bash
108
- python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Name" --page "dashboard"
109
- ```
110
-
111
- **Hierarchical retrieval**: Page file overrides Master. No page file → Master exclusively.
112
-
113
- ### Step 3: Detailed Searches (as needed)
114
-
115
- ```bash
116
- python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
117
- ```
118
-
119
- Domains: `product`, `style`, `typography`, `color`, `landing`, `chart`, `ux`, `react`, `web`, `prompt`
120
-
121
- ### Step 4: Stack Guidelines (default: html-tailwind)
122
-
123
- ```bash
124
- python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
125
- ```
126
-
127
- Stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
128
-
129
- ---
130
-
131
- ## Common Rules for Professional UI
132
-
133
- ### Icons & Visual Elements
134
-
135
- | Rule | Do | Don't |
136
- |------|----|----- |
137
- | **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis as UI icons |
138
- | **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
139
- | **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
140
- | **Consistent icon sizing** | Fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes |
141
-
142
- ### Interaction & Cursor
143
-
144
- | Rule | Do | Don't |
145
- |------|----|----- |
146
- | **Cursor pointer** | `cursor-pointer` on all clickable elements | Default cursor on interactive elements |
147
- | **Hover feedback** | Visual feedback (color, shadow, border) | No indication element is interactive |
148
- | **Smooth transitions** | `transition-colors duration-200` | Instant changes or >500ms |
149
-
150
- ### Light/Dark Mode Contrast
151
-
152
- | Rule | Do | Don't |
153
- |------|----|----- |
154
- | **Glass card light mode** | `bg-white/80` or higher opacity | `bg-white/10` (too transparent) |
155
- | **Text contrast light** | `#0F172A` (slate-900) for text | `#94A3B8` (slate-400) for body |
156
- | **Muted text light** | `#475569` (slate-600) minimum | gray-400 or lighter |
157
- | **Border visibility** | `border-gray-200` in light mode | `border-white/10` (invisible) |
158
-
159
- ### Layout & Spacing
160
-
161
- | Rule | Do | Don't |
162
- |------|----|----- |
163
- | **Floating navbar** | `top-4 left-4 right-4` spacing | Stick to `top-0 left-0 right-0` |
164
- | **Content padding** | Account for fixed navbar height | Content hidden behind fixed elements |
165
- | **Consistent max-width** | Same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
166
-
167
- ---
168
-
169
- ## Pre-Delivery Checklist
170
-
171
- ### Visual Quality
172
- - [ ] No emojis used as icons (SVG instead)
173
- - [ ] All icons from consistent set (Heroicons/Lucide)
174
- - [ ] Brand logos verified (Simple Icons)
175
- - [ ] Hover states don't cause layout shift
176
-
177
- ### Interaction
178
- - [ ] All clickable elements have `cursor-pointer`
179
- - [ ] Hover states provide clear visual feedback
180
- - [ ] Transitions are smooth (150-300ms)
181
- - [ ] Focus states visible for keyboard navigation
182
-
183
- ### Light/Dark Mode
184
- - [ ] Light mode text has sufficient contrast (4.5:1)
185
- - [ ] Glass/transparent elements visible in light mode
186
- - [ ] Borders visible in both modes
187
- - [ ] Both modes tested before delivery
188
-
189
- ### Layout
190
- - [ ] Floating elements have proper edge spacing
191
- - [ ] No content hidden behind fixed navbars
192
- - [ ] Responsive at 375px, 768px, 1024px, 1440px
193
- - [ ] No horizontal scroll on mobile
194
-
195
- ### Accessibility
196
- - [ ] All images have alt text
197
- - [ ] Form inputs have labels
198
- - [ ] Color is not the only indicator
199
- - [ ] `prefers-reduced-motion` respected
200
-
201
- ## Done Criteria (K4)
202
-
203
- - [ ] Design system generated before implementation
204
- - [ ] All pre-delivery checklist items verified
205
- - [ ] Both light and dark modes tested
206
- - [ ] Responsive at all breakpoints
1
+ ---
2
+ name: ui-ux-pro-max
3
+ description: "UI/UX design intelligence with bold aesthetic direction. 50+ styles, 97 palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks."
4
+ ---
5
+
6
+ # UI/UX Pro Max - Design Intelligence
7
+
8
+ Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks.
9
+
10
+ ## Pre-check (K1)
11
+
12
+ > Does this project need custom UI/UX design? If using a pre-built template or admin framework (e.g., Retool, Vercel templates), skip this skill.
13
+
14
+ ## Rule Categories by Priority
15
+
16
+ | Priority | Category | Impact | Domain |
17
+ |----------|----------|--------|--------|
18
+ | 1 | Accessibility | CRITICAL | `ux` |
19
+ | 2 | Touch & Interaction | CRITICAL | `ux` |
20
+ | 3 | Performance | HIGH | `ux` |
21
+ | 4 | Layout & Responsive | HIGH | `ux` |
22
+ | 5 | Typography & Color | MEDIUM | `typography`, `color` |
23
+ | 6 | Animation | MEDIUM | `ux` |
24
+ | 7 | Style Selection | MEDIUM | `style`, `product` |
25
+ | 8 | Charts & Data | LOW | `chart` |
26
+
27
+ ## Quick Reference
28
+
29
+ ### 1. Accessibility (CRITICAL)
30
+
31
+ - `color-contrast` - Minimum 4.5:1 ratio for normal text
32
+ - `focus-states` - Visible focus rings on interactive elements
33
+ - `alt-text` - Descriptive alt text for meaningful images
34
+ - `aria-labels` - aria-label for icon-only buttons
35
+ - `keyboard-nav` - Tab order matches visual order
36
+ - `form-labels` - Use label with for attribute
37
+
38
+ ### 2. Touch & Interaction (CRITICAL)
39
+
40
+ - `touch-target-size` - Minimum 44x44px touch targets
41
+ - `hover-vs-tap` - Use click/tap for primary interactions
42
+ - `loading-buttons` - Disable button during async operations
43
+ - `error-feedback` - Clear error messages near problem
44
+ - `cursor-pointer` - Add cursor-pointer to clickable elements
45
+
46
+ ### 3. Performance (HIGH)
47
+
48
+ - `image-optimization` - Use WebP, srcset, lazy loading
49
+ - `reduced-motion` - Check prefers-reduced-motion
50
+ - `content-jumping` - Reserve space for async content
51
+
52
+ ### 4. Layout & Responsive (HIGH)
53
+
54
+ - `viewport-meta` - width=device-width initial-scale=1
55
+ - `readable-font-size` - Minimum 16px body text on mobile
56
+ - `horizontal-scroll` - Ensure content fits viewport width
57
+ - `z-index-management` - Define z-index scale (10, 20, 30, 50)
58
+
59
+ ### 5. Typography & Color (MEDIUM)
60
+
61
+ - `line-height` - Use 1.5-1.75 for body text
62
+ - `line-length` - Limit to 65-75 characters per line
63
+ - `font-pairing` - Match heading/body font personalities
64
+
65
+ ### 6. Animation (MEDIUM)
66
+
67
+ - `duration-timing` - Use 150-300ms for micro-interactions
68
+ - `transform-performance` - Use transform/opacity, not width/height
69
+ - `loading-states` - Skeleton screens or spinners
70
+
71
+ ### 7. Style Selection (MEDIUM)
72
+
73
+ - `style-match` - Match style to product type
74
+ - `consistency` - Use same style across all pages
75
+ - `no-emoji-icons` - Use SVG icons, not emojis
76
+
77
+ ### 8. Charts & Data (LOW)
78
+
79
+ - `chart-type` - Match chart type to data type
80
+ - `color-guidance` - Use accessible color palettes
81
+ - `data-table` - Provide table alternative for accessibility
82
+
83
+ ---
84
+
85
+ ## How to Use
86
+
87
+ ### Step 1: Analyze Requirements
88
+
89
+ Extract from user request: **product type**, **style keywords**, **industry**, **stack** (default: html-tailwind).
90
+
91
+ ### Step 2: Generate Design System (REQUIRED)
92
+
93
+ ```bash
94
+ python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
95
+ ```
96
+
97
+ This searches 5 domains in parallel (product, style, color, landing, typography), applies reasoning rules, and returns complete design system.
98
+
99
+ **Persist for cross-session use:**
100
+ ```bash
101
+ python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
102
+ ```
103
+
104
+ Creates `design-system/MASTER.md` (global) + optional `design-system/pages/<page>.md` (overrides).
105
+
106
+ **With page-specific override:**
107
+ ```bash
108
+ python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Name" --page "dashboard"
109
+ ```
110
+
111
+ **Hierarchical retrieval**: Page file overrides Master. No page file → Master exclusively.
112
+
113
+ ### Step 3: Detailed Searches (as needed)
114
+
115
+ ```bash
116
+ python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
117
+ ```
118
+
119
+ Domains: `product`, `style`, `typography`, `color`, `landing`, `chart`, `ux`, `react`, `web`, `prompt`
120
+
121
+ ### Step 4: Stack Guidelines (default: html-tailwind)
122
+
123
+ ```bash
124
+ python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
125
+ ```
126
+
127
+ Stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
128
+
129
+ ---
130
+
131
+ ## Common Rules for Professional UI
132
+
133
+ ### Icons & Visual Elements
134
+
135
+ | Rule | Do | Don't |
136
+ |------|----|----- |
137
+ | **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis as UI icons |
138
+ | **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
139
+ | **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
140
+ | **Consistent icon sizing** | Fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes |
141
+
142
+ ### Interaction & Cursor
143
+
144
+ | Rule | Do | Don't |
145
+ |------|----|----- |
146
+ | **Cursor pointer** | `cursor-pointer` on all clickable elements | Default cursor on interactive elements |
147
+ | **Hover feedback** | Visual feedback (color, shadow, border) | No indication element is interactive |
148
+ | **Smooth transitions** | `transition-colors duration-200` | Instant changes or >500ms |
149
+
150
+ ### Light/Dark Mode Contrast
151
+
152
+ | Rule | Do | Don't |
153
+ |------|----|----- |
154
+ | **Glass card light mode** | `bg-white/80` or higher opacity | `bg-white/10` (too transparent) |
155
+ | **Text contrast light** | `#0F172A` (slate-900) for text | `#94A3B8` (slate-400) for body |
156
+ | **Muted text light** | `#475569` (slate-600) minimum | gray-400 or lighter |
157
+ | **Border visibility** | `border-gray-200` in light mode | `border-white/10` (invisible) |
158
+
159
+ ### Layout & Spacing
160
+
161
+ | Rule | Do | Don't |
162
+ |------|----|----- |
163
+ | **Floating navbar** | `top-4 left-4 right-4` spacing | Stick to `top-0 left-0 right-0` |
164
+ | **Content padding** | Account for fixed navbar height | Content hidden behind fixed elements |
165
+ | **Consistent max-width** | Same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
166
+
167
+ ---
168
+
169
+ ## Pre-Delivery Checklist
170
+
171
+ ### Visual Quality
172
+ - [ ] No emojis used as icons (SVG instead)
173
+ - [ ] All icons from consistent set (Heroicons/Lucide)
174
+ - [ ] Brand logos verified (Simple Icons)
175
+ - [ ] Hover states don't cause layout shift
176
+
177
+ ### Interaction
178
+ - [ ] All clickable elements have `cursor-pointer`
179
+ - [ ] Hover states provide clear visual feedback
180
+ - [ ] Transitions are smooth (150-300ms)
181
+ - [ ] Focus states visible for keyboard navigation
182
+
183
+ ### Light/Dark Mode
184
+ - [ ] Light mode text has sufficient contrast (4.5:1)
185
+ - [ ] Glass/transparent elements visible in light mode
186
+ - [ ] Borders visible in both modes
187
+ - [ ] Both modes tested before delivery
188
+
189
+ ### Layout
190
+ - [ ] Floating elements have proper edge spacing
191
+ - [ ] No content hidden behind fixed navbars
192
+ - [ ] Responsive at 375px, 768px, 1024px, 1440px
193
+ - [ ] No horizontal scroll on mobile
194
+
195
+ ### Accessibility
196
+ - [ ] All images have alt text
197
+ - [ ] Form inputs have labels
198
+ - [ ] Color is not the only indicator
199
+ - [ ] `prefers-reduced-motion` respected
200
+
201
+ ## Design Direction Anti-Patterns
202
+
203
+ Avoid these signs of generic, AI-generated UI:
204
+
205
+ | Anti-Pattern | Fix |
206
+ |---|---|
207
+ | Default Bootstrap/Tailwind without customization | Define design tokens first (colors, typography, spacing, motion) |
208
+ | Overused fonts (Inter, Roboto) without styling | Choose distinctive typefaces that set the tone |
209
+ | Predictable card-based layouts everywhere | Use asymmetry and unconventional layouts when appropriate |
210
+ | Stock photography without curation | Custom icons and illustrations |
211
+ | Safe, corporate color palettes | Develop unique color palettes beyond defaults |
212
+ | No micro-interactions | Add meaningful motion to guide user attention (150-300ms) |
213
+
214
+ ## Done Criteria (K4)
215
+
216
+ - [ ] Design system generated before implementation
217
+ - [ ] All pre-delivery checklist items verified
218
+ - [ ] Both light and dark modes tested
219
+ - [ ] Responsive at all breakpoints
220
+ - [ ] No default/uncustomized framework styles remain
221
+ - [ ] All interactive states designed (hover, focus, active, disabled)
@@ -1,59 +1,59 @@
1
- ---
2
- name: vercel-react-best-practices
3
- description: "React/Next.js performance gotchas from Vercel engineering. Non-intuitive pitfalls that LLMs commonly miss."
4
- triggers: [react, next.js, performance, optimization, vercel, component, rendering]
5
- priority: 60
6
- ---
7
-
8
- # Vercel React Best Practices
9
-
10
- ## Pre-check (K1)
11
-
12
- > Is this a React/Next.js performance issue? Standard React patterns (useState, useEffect, components) don't need this skill. Activate only for performance optimization or code review.
13
-
14
- ## CRITICAL Gotchas
15
-
16
- ### Waterfall Elimination
17
-
18
- | Gotcha | Why Non-obvious |
19
- |--------|----------------|
20
- | **Sequential awaits** | `const a = await f1(); const b = await f2();` creates waterfall. Use `Promise.all([f1(), f2()])` for independent ops |
21
- | **Await placement** | Move `await` to the branch where value is actually used, not at declaration |
22
- | **Missing Suspense** | Wrap slow server components in `<Suspense>` to stream — don't block entire page |
23
-
24
- ### Bundle Size
25
-
26
- | Gotcha | Why Non-obvious |
27
- |--------|----------------|
28
- | **Barrel imports** | `import { Button } from "@/components"` pulls entire barrel. Use `import { Button } from "@/components/Button"` |
29
- | **Third-party in initial bundle** | Load analytics/logging AFTER hydration with `next/dynamic` or lazy `useEffect` |
30
- | **Heavy components** | Charts, editors, maps → `next/dynamic` with `{ ssr: false }` |
31
-
32
- ## HIGH Gotchas
33
-
34
- ### Server-side
35
-
36
- | Gotcha | Fix |
37
- |--------|-----|
38
- | Duplicate DB calls across server components | Wrap with `React.cache()` for per-request dedup |
39
- | Large data serialized to client | Pick only needed fields before passing to client components |
40
- | Blocking post-processing (logging, analytics) | Use `after()` for non-blocking tasks |
41
-
42
- ## MEDIUM Gotchas
43
-
44
- | Gotcha | Fix |
45
- |--------|-----|
46
- | Expensive computation re-runs on parent re-render | Isolate in `memo()` wrapped component |
47
- | Static JSX recreated every render | Hoist outside component: `const HEADER = <header>...</header>` |
48
- | Long lists render all items | `content-visibility: auto; contain-intrinsic-size: 0 80px;` on list items |
49
- | `{count && <Item />}` renders `0` | Use ternary: `{count > 0 ? <Item /> : null}` |
50
- | Event handler changes every render → effect re-runs | Store handlers in `useRef` for stable effects |
51
- | Object in useEffect deps | Use primitive values (id, not entire object) as dependencies |
52
-
53
- ## Done Criteria (K4)
54
-
55
- - [ ] No sequential awaits for independent operations
56
- - [ ] No barrel imports for tree-shakeable modules
57
- - [ ] Server component data is `React.cache()`-wrapped where reused
58
- - [ ] Heavy third-party loaded after hydration
59
- - [ ] Long lists use `content-visibility: auto`
1
+ ---
2
+ name: vercel-react-best-practices
3
+ description: "React/Next.js performance gotchas from Vercel engineering. Non-intuitive pitfalls that LLMs commonly miss."
4
+ triggers: [react, next.js, performance, optimization, vercel, component, rendering]
5
+ priority: 60
6
+ ---
7
+
8
+ # Vercel React Best Practices
9
+
10
+ ## Pre-check (K1)
11
+
12
+ > Is this a React/Next.js performance issue? Standard React patterns (useState, useEffect, components) don't need this skill. Activate only for performance optimization or code review.
13
+
14
+ ## CRITICAL Gotchas
15
+
16
+ ### Waterfall Elimination
17
+
18
+ | Gotcha | Why Non-obvious |
19
+ |--------|----------------|
20
+ | **Sequential awaits** | `const a = await f1(); const b = await f2();` creates waterfall. Use `Promise.all([f1(), f2()])` for independent ops |
21
+ | **Await placement** | Move `await` to the branch where value is actually used, not at declaration |
22
+ | **Missing Suspense** | Wrap slow server components in `<Suspense>` to stream — don't block entire page |
23
+
24
+ ### Bundle Size
25
+
26
+ | Gotcha | Why Non-obvious |
27
+ |--------|----------------|
28
+ | **Barrel imports** | `import { Button } from "@/components"` pulls entire barrel. Use `import { Button } from "@/components/Button"` |
29
+ | **Third-party in initial bundle** | Load analytics/logging AFTER hydration with `next/dynamic` or lazy `useEffect` |
30
+ | **Heavy components** | Charts, editors, maps → `next/dynamic` with `{ ssr: false }` |
31
+
32
+ ## HIGH Gotchas
33
+
34
+ ### Server-side
35
+
36
+ | Gotcha | Fix |
37
+ |--------|-----|
38
+ | Duplicate DB calls across server components | Wrap with `React.cache()` for per-request dedup |
39
+ | Large data serialized to client | Pick only needed fields before passing to client components |
40
+ | Blocking post-processing (logging, analytics) | Use `after()` for non-blocking tasks |
41
+
42
+ ## MEDIUM Gotchas
43
+
44
+ | Gotcha | Fix |
45
+ |--------|-----|
46
+ | Expensive computation re-runs on parent re-render | Isolate in `memo()` wrapped component |
47
+ | Static JSX recreated every render | Hoist outside component: `const HEADER = <header>...</header>` |
48
+ | Long lists render all items | `content-visibility: auto; contain-intrinsic-size: 0 80px;` on list items |
49
+ | `{count && <Item />}` renders `0` | Use ternary: `{count > 0 ? <Item /> : null}` |
50
+ | Event handler changes every render → effect re-runs | Store handlers in `useRef` for stable effects |
51
+ | Object in useEffect deps | Use primitive values (id, not entire object) as dependencies |
52
+
53
+ ## Done Criteria (K4)
54
+
55
+ - [ ] No sequential awaits for independent operations
56
+ - [ ] No barrel imports for tree-shakeable modules
57
+ - [ ] Server component data is `React.cache()`-wrapped where reused
58
+ - [ ] Heavy third-party loaded after hydration
59
+ - [ ] Long lists use `content-visibility: auto`
@@ -1,51 +1,51 @@
1
- ---
2
- name: video-production
3
- description: "Video processing gotchas — FFmpeg, transcoding, streaming, subtitles."
4
- triggers: [video, ffmpeg, transcode, encode, stream, media, subtitle, thumbnail, hls, dash]
5
- priority: 60
6
- ---
7
-
8
- # Video Production
9
-
10
- ## Pre-check (K1)
11
-
12
- > Are you processing video files programmatically? If just embedding a YouTube/Vimeo player, this skill is not needed.
13
-
14
- ## Gotchas
15
-
16
- | Gotcha | Consequence | Prevention |
17
- |--------|-------------|------------|
18
- | Direct CLI string concatenation | Command injection risk | Always use wrapper library (fluent-ffmpeg for TS, ffmpeg-python for Python) |
19
- | No input validation | Crash on corrupted files | Always `ffprobe` input before processing — check codec, resolution, duration |
20
- | No temp file cleanup | Disk fills up silently | `try/finally` or cleanup handler — never leave partial outputs |
21
- | No progress callback | Long encoding appears frozen | Implement progress events for any operation >10s |
22
- | Memory loading large files | OOM on 4K+ video | Use streaming I/O, never read entire file into memory |
23
- | Assuming codec availability | Fails on different FFmpeg builds | Check `ffmpeg -codecs` at runtime before encoding |
24
- | Fixed bitrate encoding | Inconsistent quality | Use CRF-based quality (18-28 for H.264) instead |
25
- | No timeout | Encoding hangs forever | Set timeout + kill process on expiry |
26
-
27
- ## Codec Quick Reference
28
-
29
- | Use Case | Codec | Note |
30
- |----------|-------|------|
31
- | Maximum compatibility | H.264 (libx264) | CRF 23 default |
32
- | Smaller files | H.265 (libx265) | 50% smaller, slower, licensing issues |
33
- | Open source | VP9 (libvpx-vp9) | Good for WebM |
34
- | Best compression | AV1 (libaom-av1) | Very slow encoding |
35
-
36
- ## Resolution Presets
37
-
38
- | Preset | Resolution | Bitrate (H.264) |
39
- |--------|-----------|-----------------|
40
- | 360p | 640x360 | 800 kbps |
41
- | 720p | 1280x720 | 3 Mbps |
42
- | 1080p | 1920x1080 | 6 Mbps |
43
- | 4K | 3840x2160 | 15 Mbps |
44
-
45
- ## Done Criteria (K4)
46
-
47
- - [ ] All FFmpeg calls go through wrapper library (no raw CLI strings)
48
- - [ ] Input files validated with ffprobe before processing
49
- - [ ] Temp files cleaned up in all paths (success + error)
50
- - [ ] Progress reporting for long operations
51
- - [ ] Codec availability checked at runtime
1
+ ---
2
+ name: video-production
3
+ description: "Video processing gotchas — FFmpeg, transcoding, streaming, subtitles."
4
+ triggers: [video, ffmpeg, transcode, encode, stream, media, subtitle, thumbnail, hls, dash]
5
+ priority: 60
6
+ ---
7
+
8
+ # Video Production
9
+
10
+ ## Pre-check (K1)
11
+
12
+ > Are you processing video files programmatically? If just embedding a YouTube/Vimeo player, this skill is not needed.
13
+
14
+ ## Gotchas
15
+
16
+ | Gotcha | Consequence | Prevention |
17
+ |--------|-------------|------------|
18
+ | Direct CLI string concatenation | Command injection risk | Always use wrapper library (fluent-ffmpeg for TS, ffmpeg-python for Python) |
19
+ | No input validation | Crash on corrupted files | Always `ffprobe` input before processing — check codec, resolution, duration |
20
+ | No temp file cleanup | Disk fills up silently | `try/finally` or cleanup handler — never leave partial outputs |
21
+ | No progress callback | Long encoding appears frozen | Implement progress events for any operation >10s |
22
+ | Memory loading large files | OOM on 4K+ video | Use streaming I/O, never read entire file into memory |
23
+ | Assuming codec availability | Fails on different FFmpeg builds | Check `ffmpeg -codecs` at runtime before encoding |
24
+ | Fixed bitrate encoding | Inconsistent quality | Use CRF-based quality (18-28 for H.264) instead |
25
+ | No timeout | Encoding hangs forever | Set timeout + kill process on expiry |
26
+
27
+ ## Codec Quick Reference
28
+
29
+ | Use Case | Codec | Note |
30
+ |----------|-------|------|
31
+ | Maximum compatibility | H.264 (libx264) | CRF 23 default |
32
+ | Smaller files | H.265 (libx265) | 50% smaller, slower, licensing issues |
33
+ | Open source | VP9 (libvpx-vp9) | Good for WebM |
34
+ | Best compression | AV1 (libaom-av1) | Very slow encoding |
35
+
36
+ ## Resolution Presets
37
+
38
+ | Preset | Resolution | Bitrate (H.264) |
39
+ |--------|-----------|-----------------|
40
+ | 360p | 640x360 | 800 kbps |
41
+ | 720p | 1280x720 | 3 Mbps |
42
+ | 1080p | 1920x1080 | 6 Mbps |
43
+ | 4K | 3840x2160 | 15 Mbps |
44
+
45
+ ## Done Criteria (K4)
46
+
47
+ - [ ] All FFmpeg calls go through wrapper library (no raw CLI strings)
48
+ - [ ] Input files validated with ffprobe before processing
49
+ - [ ] Temp files cleaned up in all paths (success + error)
50
+ - [ ] Progress reporting for long operations
51
+ - [ ] Codec availability checked at runtime