@nerdev/skillset 0.2.1

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 (567) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +351 -0
  3. package/bin/skillset.mjs +205 -0
  4. package/curations/README.md +53 -0
  5. package/curations/TEMPLATE/WHY.md +23 -0
  6. package/curations/TEMPLATE/overlay/SKILL.md +6 -0
  7. package/curations/impeccable/WHY.md +34 -0
  8. package/curations/impeccable/overlay/SKILL.md +116 -0
  9. package/package.json +43 -0
  10. package/scripts/ste-gate.mjs +39 -0
  11. package/scripts/ste-lint.py +201 -0
  12. package/scripts/sync.mjs +174 -0
  13. package/skills/ai-agent/agent-docs-writer/SKILL.md +105 -0
  14. package/skills/ai-agent/agent-docs-writer/references/principles.md +73 -0
  15. package/skills/ai-agent/agent-docs-writer/templates/AGENTS.template.md +44 -0
  16. package/skills/ai-agent/agent-docs-writer/templates/README.template.md +19 -0
  17. package/skills/ai-agent/ultra-context-engine/SKILL.md +941 -0
  18. package/skills/architecture/blueprint/SKILL.md +191 -0
  19. package/skills/architecture/code-tour/SKILL.md +204 -0
  20. package/skills/architecture/progress-guard/SKILL.md +148 -0
  21. package/skills/architecture/search-first/SKILL.md +97 -0
  22. package/skills/backend/api-design/SKILL.md +456 -0
  23. package/skills/backend/auth/SKILL.md +596 -0
  24. package/skills/backend/database/SKILL.md +431 -0
  25. package/skills/backend/realtime/SKILL.md +670 -0
  26. package/skills/backend/security/SKILL.md +590 -0
  27. package/skills/business/brag/SKILL.md +177 -0
  28. package/skills/business/brag/assets/music/README.md +20 -0
  29. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
  30. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
  31. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
  32. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
  33. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
  34. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
  35. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
  36. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
  37. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
  38. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
  39. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
  40. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
  41. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
  42. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
  43. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
  44. package/skills/business/brag/assets/sfx/casino/card-fan-1.ogg +0 -0
  45. package/skills/business/brag/assets/sfx/casino/card-fan-2.ogg +0 -0
  46. package/skills/business/brag/assets/sfx/casino/card-place-1.ogg +0 -0
  47. package/skills/business/brag/assets/sfx/casino/card-place-2.ogg +0 -0
  48. package/skills/business/brag/assets/sfx/casino/card-place-3.ogg +0 -0
  49. package/skills/business/brag/assets/sfx/casino/card-place-4.ogg +0 -0
  50. package/skills/business/brag/assets/sfx/casino/card-shove-1.ogg +0 -0
  51. package/skills/business/brag/assets/sfx/casino/card-shove-2.ogg +0 -0
  52. package/skills/business/brag/assets/sfx/casino/card-shove-3.ogg +0 -0
  53. package/skills/business/brag/assets/sfx/casino/card-shove-4.ogg +0 -0
  54. package/skills/business/brag/assets/sfx/casino/card-shuffle.ogg +0 -0
  55. package/skills/business/brag/assets/sfx/casino/card-slide-1.ogg +0 -0
  56. package/skills/business/brag/assets/sfx/casino/card-slide-2.ogg +0 -0
  57. package/skills/business/brag/assets/sfx/casino/card-slide-3.ogg +0 -0
  58. package/skills/business/brag/assets/sfx/casino/card-slide-4.ogg +0 -0
  59. package/skills/business/brag/assets/sfx/casino/card-slide-5.ogg +0 -0
  60. package/skills/business/brag/assets/sfx/casino/card-slide-6.ogg +0 -0
  61. package/skills/business/brag/assets/sfx/casino/card-slide-7.ogg +0 -0
  62. package/skills/business/brag/assets/sfx/casino/card-slide-8.ogg +0 -0
  63. package/skills/business/brag/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
  64. package/skills/business/brag/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
  65. package/skills/business/brag/assets/sfx/casino/chip-lay-1.ogg +0 -0
  66. package/skills/business/brag/assets/sfx/casino/chip-lay-2.ogg +0 -0
  67. package/skills/business/brag/assets/sfx/casino/chip-lay-3.ogg +0 -0
  68. package/skills/business/brag/assets/sfx/casino/chips-collide-1.ogg +0 -0
  69. package/skills/business/brag/assets/sfx/casino/chips-collide-2.ogg +0 -0
  70. package/skills/business/brag/assets/sfx/casino/chips-collide-3.ogg +0 -0
  71. package/skills/business/brag/assets/sfx/casino/chips-collide-4.ogg +0 -0
  72. package/skills/business/brag/assets/sfx/casino/chips-handle-1.ogg +0 -0
  73. package/skills/business/brag/assets/sfx/casino/chips-handle-2.ogg +0 -0
  74. package/skills/business/brag/assets/sfx/casino/chips-handle-3.ogg +0 -0
  75. package/skills/business/brag/assets/sfx/casino/chips-handle-4.ogg +0 -0
  76. package/skills/business/brag/assets/sfx/casino/chips-handle-6.ogg +0 -0
  77. package/skills/business/brag/assets/sfx/casino/chips-stack-1.ogg +0 -0
  78. package/skills/business/brag/assets/sfx/casino/chips-stack-2.ogg +0 -0
  79. package/skills/business/brag/assets/sfx/casino/chips-stack-3.ogg +0 -0
  80. package/skills/business/brag/assets/sfx/casino/chips-stack-4.ogg +0 -0
  81. package/skills/business/brag/assets/sfx/casino/chips-stack-5.ogg +0 -0
  82. package/skills/business/brag/assets/sfx/casino/chips-stack-6.ogg +0 -0
  83. package/skills/business/brag/assets/sfx/casino/dice-grab-1.ogg +0 -0
  84. package/skills/business/brag/assets/sfx/casino/dice-grab-2.ogg +0 -0
  85. package/skills/business/brag/assets/sfx/casino/dice-shake-1.ogg +0 -0
  86. package/skills/business/brag/assets/sfx/casino/dice-shake-2.ogg +0 -0
  87. package/skills/business/brag/assets/sfx/casino/dice-shake-3.ogg +0 -0
  88. package/skills/business/brag/assets/sfx/casino/dice-throw-1.ogg +0 -0
  89. package/skills/business/brag/assets/sfx/casino/dice-throw-2.ogg +0 -0
  90. package/skills/business/brag/assets/sfx/casino/dice-throw-3.ogg +0 -0
  91. package/skills/business/brag/assets/sfx/casino/die-throw-1.ogg +0 -0
  92. package/skills/business/brag/assets/sfx/casino/die-throw-2.ogg +0 -0
  93. package/skills/business/brag/assets/sfx/casino/die-throw-3.ogg +0 -0
  94. package/skills/business/brag/assets/sfx/casino/die-throw-4.ogg +0 -0
  95. package/skills/business/brag/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
  96. package/skills/business/brag/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
  97. package/skills/business/brag/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
  98. package/skills/business/brag/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
  99. package/skills/business/brag/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
  100. package/skills/business/brag/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
  101. package/skills/business/brag/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
  102. package/skills/business/brag/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
  103. package/skills/business/brag/assets/sfx/impact/footstep_grass_000.ogg +0 -0
  104. package/skills/business/brag/assets/sfx/impact/footstep_grass_001.ogg +0 -0
  105. package/skills/business/brag/assets/sfx/impact/footstep_grass_002.ogg +0 -0
  106. package/skills/business/brag/assets/sfx/impact/footstep_grass_003.ogg +0 -0
  107. package/skills/business/brag/assets/sfx/impact/footstep_grass_004.ogg +0 -0
  108. package/skills/business/brag/assets/sfx/impact/footstep_snow_000.ogg +0 -0
  109. package/skills/business/brag/assets/sfx/impact/footstep_snow_001.ogg +0 -0
  110. package/skills/business/brag/assets/sfx/impact/footstep_snow_002.ogg +0 -0
  111. package/skills/business/brag/assets/sfx/impact/footstep_snow_003.ogg +0 -0
  112. package/skills/business/brag/assets/sfx/impact/footstep_snow_004.ogg +0 -0
  113. package/skills/business/brag/assets/sfx/impact/footstep_wood_000.ogg +0 -0
  114. package/skills/business/brag/assets/sfx/impact/footstep_wood_001.ogg +0 -0
  115. package/skills/business/brag/assets/sfx/impact/footstep_wood_002.ogg +0 -0
  116. package/skills/business/brag/assets/sfx/impact/footstep_wood_003.ogg +0 -0
  117. package/skills/business/brag/assets/sfx/impact/footstep_wood_004.ogg +0 -0
  118. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
  119. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
  120. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
  121. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
  122. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
  123. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
  124. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
  125. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
  126. package/skills/business/brag/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
  127. package/skills/business/brag/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
  128. package/skills/business/brag/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
  129. package/skills/business/brag/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
  130. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
  131. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
  132. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
  133. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
  134. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
  135. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
  136. package/skills/business/brag/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
  137. package/skills/business/brag/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
  138. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
  139. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
  140. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
  141. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
  142. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
  143. package/skills/business/brag/assets/sfx/impact/impactMining_001.ogg +0 -0
  144. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
  145. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
  146. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
  147. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
  148. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
  149. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
  150. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
  151. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
  152. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
  153. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
  154. package/skills/business/brag/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
  155. package/skills/business/brag/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
  156. package/skills/business/brag/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
  157. package/skills/business/brag/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
  158. package/skills/business/brag/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
  159. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
  160. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
  161. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
  162. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
  163. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
  164. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
  165. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
  166. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
  167. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
  168. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
  169. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
  170. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
  171. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
  172. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
  173. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
  174. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
  175. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
  176. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
  177. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
  178. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
  179. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
  180. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
  181. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
  182. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
  183. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
  184. package/skills/business/brag/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
  185. package/skills/business/brag/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
  186. package/skills/business/brag/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
  187. package/skills/business/brag/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
  188. package/skills/business/brag/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
  189. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
  190. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
  191. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
  192. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
  193. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
  194. package/skills/business/brag/assets/sfx/impact/impactWood_light_000.ogg +0 -0
  195. package/skills/business/brag/assets/sfx/impact/impactWood_light_001.ogg +0 -0
  196. package/skills/business/brag/assets/sfx/impact/impactWood_light_002.ogg +0 -0
  197. package/skills/business/brag/assets/sfx/impact/impactWood_light_003.ogg +0 -0
  198. package/skills/business/brag/assets/sfx/impact/impactWood_light_004.ogg +0 -0
  199. package/skills/business/brag/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
  200. package/skills/business/brag/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
  201. package/skills/business/brag/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
  202. package/skills/business/brag/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
  203. package/skills/business/brag/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
  204. package/skills/business/brag/assets/sfx/interface/bong_001.ogg +0 -0
  205. package/skills/business/brag/assets/sfx/interface/click_001.ogg +0 -0
  206. package/skills/business/brag/assets/sfx/interface/click_002.ogg +0 -0
  207. package/skills/business/brag/assets/sfx/interface/click_003.ogg +0 -0
  208. package/skills/business/brag/assets/sfx/interface/click_004.ogg +0 -0
  209. package/skills/business/brag/assets/sfx/interface/click_005.ogg +0 -0
  210. package/skills/business/brag/assets/sfx/interface/drop_001.ogg +0 -0
  211. package/skills/business/brag/assets/sfx/interface/drop_002.ogg +0 -0
  212. package/skills/business/brag/assets/sfx/interface/drop_003.ogg +0 -0
  213. package/skills/business/brag/assets/sfx/interface/error_005.ogg +0 -0
  214. package/skills/business/brag/assets/sfx/interface/error_006.ogg +0 -0
  215. package/skills/business/brag/assets/sfx/interface/glitch_002.ogg +0 -0
  216. package/skills/business/brag/assets/sfx/interface/glitch_004.ogg +0 -0
  217. package/skills/business/brag/assets/sfx/interface/select_008.ogg +0 -0
  218. package/skills/business/brag/assets/sfx/interface/switch_001.ogg +0 -0
  219. package/skills/business/brag/assets/sfx/interface/switch_002.ogg +0 -0
  220. package/skills/business/brag/assets/sfx/interface/switch_004.ogg +0 -0
  221. package/skills/business/brag/assets/sfx/interface/switch_005.ogg +0 -0
  222. package/skills/business/brag/assets/sfx/interface/switch_006.ogg +0 -0
  223. package/skills/business/brag/assets/sfx/interface/switch_007.ogg +0 -0
  224. package/skills/business/brag/assets/sfx/keyboard/keypress-001.wav +0 -0
  225. package/skills/business/brag/assets/sfx/keyboard/keypress-002.wav +0 -0
  226. package/skills/business/brag/assets/sfx/keyboard/keypress-003.wav +0 -0
  227. package/skills/business/brag/assets/sfx/keyboard/keypress-004.wav +0 -0
  228. package/skills/business/brag/assets/sfx/keyboard/keypress-005.wav +0 -0
  229. package/skills/business/brag/assets/sfx/keyboard/keypress-006.wav +0 -0
  230. package/skills/business/brag/assets/sfx/keyboard/keypress-007.wav +0 -0
  231. package/skills/business/brag/assets/sfx/keyboard/keypress-008.wav +0 -0
  232. package/skills/business/brag/assets/sfx/keyboard/keypress-009.wav +0 -0
  233. package/skills/business/brag/assets/sfx/keyboard/keypress-010.wav +0 -0
  234. package/skills/business/brag/assets/sfx/keyboard/keypress-011.wav +0 -0
  235. package/skills/business/brag/assets/sfx/keyboard/keypress-012.wav +0 -0
  236. package/skills/business/brag/assets/sfx/keyboard/keypress-013.wav +0 -0
  237. package/skills/business/brag/assets/sfx/keyboard/keypress-014.wav +0 -0
  238. package/skills/business/brag/assets/sfx/keyboard/keypress-015.wav +0 -0
  239. package/skills/business/brag/assets/sfx/keyboard/keypress-016.wav +0 -0
  240. package/skills/business/brag/assets/sfx/keyboard/keypress-017.wav +0 -0
  241. package/skills/business/brag/assets/sfx/keyboard/keypress-018.wav +0 -0
  242. package/skills/business/brag/assets/sfx/keyboard/keypress-019.wav +0 -0
  243. package/skills/business/brag/assets/sfx/keyboard/keypress-020.wav +0 -0
  244. package/skills/business/brag/assets/sfx/keyboard/keypress-021.wav +0 -0
  245. package/skills/business/brag/assets/sfx/keyboard/keypress-022.wav +0 -0
  246. package/skills/business/brag/assets/sfx/keyboard/keypress-023.wav +0 -0
  247. package/skills/business/brag/assets/sfx/keyboard/keypress-024.wav +0 -0
  248. package/skills/business/brag/assets/sfx/keyboard/keypress-025.wav +0 -0
  249. package/skills/business/brag/assets/sfx/keyboard/keypress-026.wav +0 -0
  250. package/skills/business/brag/assets/sfx/keyboard/keypress-027.wav +0 -0
  251. package/skills/business/brag/assets/sfx/keyboard/keypress-028.wav +0 -0
  252. package/skills/business/brag/assets/sfx/keyboard/keypress-029.wav +0 -0
  253. package/skills/business/brag/assets/sfx/keyboard/keypress-030.wav +0 -0
  254. package/skills/business/brag/assets/sfx/keyboard/keypress-031.wav +0 -0
  255. package/skills/business/brag/assets/sfx/keyboard/keypress-032.wav +0 -0
  256. package/skills/business/brag/assets/sfx/sfx-analysis.json +15584 -0
  257. package/skills/business/brag/assets/sfx/sfx-analysis.md +75 -0
  258. package/skills/business/brag/assets/sfx/ui/click1.ogg +0 -0
  259. package/skills/business/brag/assets/sfx/ui/click2.ogg +0 -0
  260. package/skills/business/brag/assets/sfx/ui/click3.ogg +0 -0
  261. package/skills/business/brag/assets/sfx/ui/click4.ogg +0 -0
  262. package/skills/business/brag/assets/sfx/ui/click5.ogg +0 -0
  263. package/skills/business/brag/assets/sfx/ui/mouseclick1.ogg +0 -0
  264. package/skills/business/brag/assets/sfx/ui/rollover1.ogg +0 -0
  265. package/skills/business/brag/assets/sfx/ui/rollover2.ogg +0 -0
  266. package/skills/business/brag/assets/sfx/ui/rollover4.ogg +0 -0
  267. package/skills/business/brag/assets/sfx/ui/rollover5.ogg +0 -0
  268. package/skills/business/brag/assets/sfx/ui/switch1.ogg +0 -0
  269. package/skills/business/brag/assets/sfx/ui/switch10.ogg +0 -0
  270. package/skills/business/brag/assets/sfx/ui/switch11.ogg +0 -0
  271. package/skills/business/brag/assets/sfx/ui/switch12.ogg +0 -0
  272. package/skills/business/brag/assets/sfx/ui/switch13.ogg +0 -0
  273. package/skills/business/brag/assets/sfx/ui/switch14.ogg +0 -0
  274. package/skills/business/brag/assets/sfx/ui/switch15.ogg +0 -0
  275. package/skills/business/brag/assets/sfx/ui/switch16.ogg +0 -0
  276. package/skills/business/brag/assets/sfx/ui/switch17.ogg +0 -0
  277. package/skills/business/brag/assets/sfx/ui/switch18.ogg +0 -0
  278. package/skills/business/brag/assets/sfx/ui/switch19.ogg +0 -0
  279. package/skills/business/brag/assets/sfx/ui/switch2.ogg +0 -0
  280. package/skills/business/brag/assets/sfx/ui/switch20.ogg +0 -0
  281. package/skills/business/brag/assets/sfx/ui/switch21.ogg +0 -0
  282. package/skills/business/brag/assets/sfx/ui/switch22.ogg +0 -0
  283. package/skills/business/brag/assets/sfx/ui/switch23.ogg +0 -0
  284. package/skills/business/brag/assets/sfx/ui/switch24.ogg +0 -0
  285. package/skills/business/brag/assets/sfx/ui/switch25.ogg +0 -0
  286. package/skills/business/brag/assets/sfx/ui/switch26.ogg +0 -0
  287. package/skills/business/brag/assets/sfx/ui/switch27.ogg +0 -0
  288. package/skills/business/brag/assets/sfx/ui/switch28.ogg +0 -0
  289. package/skills/business/brag/assets/sfx/ui/switch29.ogg +0 -0
  290. package/skills/business/brag/assets/sfx/ui/switch3.ogg +0 -0
  291. package/skills/business/brag/assets/sfx/ui/switch30.ogg +0 -0
  292. package/skills/business/brag/assets/sfx/ui/switch31.ogg +0 -0
  293. package/skills/business/brag/assets/sfx/ui/switch32.ogg +0 -0
  294. package/skills/business/brag/assets/sfx/ui/switch33.ogg +0 -0
  295. package/skills/business/brag/assets/sfx/ui/switch34.ogg +0 -0
  296. package/skills/business/brag/assets/sfx/ui/switch35.ogg +0 -0
  297. package/skills/business/brag/assets/sfx/ui/switch36.ogg +0 -0
  298. package/skills/business/brag/assets/sfx/ui/switch37.ogg +0 -0
  299. package/skills/business/brag/assets/sfx/ui/switch38.ogg +0 -0
  300. package/skills/business/brag/assets/sfx/ui/switch4.ogg +0 -0
  301. package/skills/business/brag/assets/sfx/ui/switch5.ogg +0 -0
  302. package/skills/business/brag/assets/sfx/ui/switch6.ogg +0 -0
  303. package/skills/business/brag/assets/sfx/ui/switch7.ogg +0 -0
  304. package/skills/business/brag/assets/sfx/ui/switch8.ogg +0 -0
  305. package/skills/business/brag/assets/sfx/ui/switch9.ogg +0 -0
  306. package/skills/business/brag/references/audio.md +307 -0
  307. package/skills/business/brag/references/step-1-inspect.md +133 -0
  308. package/skills/business/brag/references/step-2-plan.md +234 -0
  309. package/skills/business/brag/references/step-3-compose.md +210 -0
  310. package/skills/business/brag/references/step-4-deliver.md +168 -0
  311. package/skills/business/brag/references/tones.md +231 -0
  312. package/skills/business/brag/scripts/analyze_music_cues.py +309 -0
  313. package/skills/business/brag/scripts/pyproject.toml +14 -0
  314. package/skills/business/brag/scripts/uv.lock +819 -0
  315. package/skills/business/copywriting/SKILL.md +178 -0
  316. package/skills/business/customer-research/SKILL.md +259 -0
  317. package/skills/business/freelancing/SKILL.md +679 -0
  318. package/skills/business/launch/SKILL.md +273 -0
  319. package/skills/business/marketing-psychology/SKILL.md +364 -0
  320. package/skills/business/pricing/SKILL.md +233 -0
  321. package/skills/business/resume-revamp-jake-ats/SKILL.md +64 -0
  322. package/skills/business/startup-founder/SKILL.md +400 -0
  323. package/skills/business/startup-founder/references/funding.md +48 -0
  324. package/skills/business/startup-founder/references/further-reading.md +132 -0
  325. package/skills/business/startup-founder/references/gtm-tools.md +57 -0
  326. package/skills/business/startup-founder/references/legal-india.md +36 -0
  327. package/skills/business/startup-founder/references/marketing/README.md +16 -0
  328. package/skills/business/startup-founder/references/marketing/cold-email.md +172 -0
  329. package/skills/business/startup-founder/references/marketing/competitors.md +245 -0
  330. package/skills/business/startup-founder/references/marketing/customer-research.md +276 -0
  331. package/skills/business/startup-founder/references/marketing/free-tools.md +168 -0
  332. package/skills/business/startup-founder/references/marketing/launch.md +343 -0
  333. package/skills/business/startup-founder/references/marketing/marketing-plan.md +270 -0
  334. package/skills/business/startup-founder/references/marketing/pricing.md +237 -0
  335. package/skills/business/startup-founder/references/marketing/product-marketing.md +250 -0
  336. package/skills/business/startup-founder/references/validation.md +267 -0
  337. package/skills/devops/deployments/SKILL.md +339 -0
  338. package/skills/devops/git-ci/SKILL.md +372 -0
  339. package/skills/devops/performance/SKILL.md +523 -0
  340. package/skills/devops/testing/SKILL.md +558 -0
  341. package/skills/engineering/code-review/SKILL.md +149 -0
  342. package/skills/engineering/coding-standards/SKILL.md +229 -0
  343. package/skills/engineering/product-engineering/SKILL.md +219 -0
  344. package/skills/engineering/senior-engineer-prompts/SKILL.md +145 -0
  345. package/skills/engineering/tdd-workflow/SKILL.md +178 -0
  346. package/skills/engineering/verification-loop/SKILL.md +199 -0
  347. package/skills/nerdev/nerdev-abstraction/SKILL.md +412 -0
  348. package/skills/nerdev/nerdev-docs/SKILL.md +527 -0
  349. package/skills/nerdev/nerdev-docs/templates/adr-template.md +39 -0
  350. package/skills/nerdev/nerdev-docs/templates/contributing-template.md +140 -0
  351. package/skills/nerdev/nerdev-docs/templates/deploy-template.md +426 -0
  352. package/skills/nerdev/nerdev-docs/templates/design-template.md +105 -0
  353. package/skills/nerdev/nerdev-docs/templates/incident-template.md +66 -0
  354. package/skills/nerdev/nerdev-monorepo/SKILL.md +522 -0
  355. package/skills/quality/output-skill/SKILL.md +49 -0
  356. package/skills/quality/unslop/SKILL.md +67 -0
  357. package/skills/ui/animaxxing/SKILL.md +58 -0
  358. package/skills/ui/animaxxing/agents/openai.yaml +7 -0
  359. package/skills/ui/animaxxing/references/effect-restoration.md +26 -0
  360. package/skills/ui/animaxxing/references/motion-vocabulary.md +142 -0
  361. package/skills/ui/animaxxing/references/recipes/blast-off.md +119 -0
  362. package/skills/ui/animaxxing/references/recipes/particle-effects.md +718 -0
  363. package/skills/ui/animaxxing/references/recipes/particle-field.md +428 -0
  364. package/skills/ui/animaxxing/references/recipes/route-letters.md +205 -0
  365. package/skills/ui/animaxxing/references/recipes/speak-in.md +181 -0
  366. package/skills/ui/animaxxing/references/recipes/split-entrances.md +345 -0
  367. package/skills/ui/animaxxing/references/recipes/wave.md +144 -0
  368. package/skills/ui/animaxxing/references/text-stability.md +68 -0
  369. package/skills/ui/animaxxing/references/verification.md +44 -0
  370. package/skills/ui/ask-animation/SKILL.md +178 -0
  371. package/skills/ui/ask-base-ui/SKILL.md +400 -0
  372. package/skills/ui/ask-cmdk/SKILL.md +315 -0
  373. package/skills/ui/ask-command-menu/SKILL.md +262 -0
  374. package/skills/ui/ask-drawer/SKILL.md +235 -0
  375. package/skills/ui/ask-form/SKILL.md +229 -0
  376. package/skills/ui/ask-gsap/SKILL.md +435 -0
  377. package/skills/ui/ask-modal/SKILL.md +145 -0
  378. package/skills/ui/ask-motion/SKILL.md +339 -0
  379. package/skills/ui/ask-rhf/SKILL.md +388 -0
  380. package/skills/ui/ask-sonner/API.md +64 -0
  381. package/skills/ui/ask-sonner/SKILL.md +88 -0
  382. package/skills/ui/ask-table/SKILL.md +253 -0
  383. package/skills/ui/ask-tanstack-table/SKILL.md +490 -0
  384. package/skills/ui/ask-toast/SKILL.md +163 -0
  385. package/skills/ui/ask-vaul/SKILL.md +291 -0
  386. package/skills/ui/ask-virtual-list/SKILL.md +304 -0
  387. package/skills/ui/ask-virtuoso/SKILL.md +332 -0
  388. package/skills/ui/email-craft/SKILL.md +258 -0
  389. package/skills/ui/frontend-craftsmanship/SKILL.md +462 -0
  390. package/skills/ui/gsap-astro/SKILL.md +56 -0
  391. package/skills/ui/gsap-astro/agents/openai.yaml +7 -0
  392. package/skills/ui/gsap-astro/references/client-router-navigation.md +139 -0
  393. package/skills/ui/gsap-astro/references/initialization.md +87 -0
  394. package/skills/ui/gsap-astro/references/motion-system.md +152 -0
  395. package/skills/ui/gsap-astro/references/scripts-and-islands.md +65 -0
  396. package/skills/ui/gsap-astro/references/verification.md +44 -0
  397. package/skills/ui/gsap-core/SKILL.md +254 -0
  398. package/skills/ui/gsap-frameworks/SKILL.md +266 -0
  399. package/skills/ui/gsap-nextjs/SKILL.md +51 -0
  400. package/skills/ui/gsap-nextjs/agents/openai.yaml +7 -0
  401. package/skills/ui/gsap-nextjs/references/app-router-navigation.md +189 -0
  402. package/skills/ui/gsap-nextjs/references/initialization.md +87 -0
  403. package/skills/ui/gsap-nextjs/references/motion-system.md +158 -0
  404. package/skills/ui/gsap-nextjs/references/verification.md +40 -0
  405. package/skills/ui/gsap-nuxt/SKILL.md +56 -0
  406. package/skills/ui/gsap-nuxt/agents/openai.yaml +7 -0
  407. package/skills/ui/gsap-nuxt/references/initialization.md +87 -0
  408. package/skills/ui/gsap-nuxt/references/motion-system.md +161 -0
  409. package/skills/ui/gsap-nuxt/references/navigation.md +145 -0
  410. package/skills/ui/gsap-nuxt/references/page-transitions.md +107 -0
  411. package/skills/ui/gsap-nuxt/references/verification.md +42 -0
  412. package/skills/ui/gsap-performance/SKILL.md +79 -0
  413. package/skills/ui/gsap-plugins/SKILL.md +433 -0
  414. package/skills/ui/gsap-react/SKILL.md +136 -0
  415. package/skills/ui/gsap-react-router/SKILL.md +55 -0
  416. package/skills/ui/gsap-react-router/agents/openai.yaml +7 -0
  417. package/skills/ui/gsap-react-router/references/initialization.md +87 -0
  418. package/skills/ui/gsap-react-router/references/motion-system.md +158 -0
  419. package/skills/ui/gsap-react-router/references/react-router-navigation.md +165 -0
  420. package/skills/ui/gsap-react-router/references/route-lifetime.md +74 -0
  421. package/skills/ui/gsap-react-router/references/verification.md +42 -0
  422. package/skills/ui/gsap-scrolltrigger/SKILL.md +296 -0
  423. package/skills/ui/gsap-sveltekit/SKILL.md +54 -0
  424. package/skills/ui/gsap-sveltekit/agents/openai.yaml +7 -0
  425. package/skills/ui/gsap-sveltekit/references/initialization.md +87 -0
  426. package/skills/ui/gsap-sveltekit/references/motion-system.md +156 -0
  427. package/skills/ui/gsap-sveltekit/references/page-lifetime.md +63 -0
  428. package/skills/ui/gsap-sveltekit/references/sveltekit-navigation.md +160 -0
  429. package/skills/ui/gsap-sveltekit/references/verification.md +41 -0
  430. package/skills/ui/gsap-tanstack-router/SKILL.md +56 -0
  431. package/skills/ui/gsap-tanstack-router/agents/openai.yaml +7 -0
  432. package/skills/ui/gsap-tanstack-router/references/initialization.md +87 -0
  433. package/skills/ui/gsap-tanstack-router/references/motion-system.md +160 -0
  434. package/skills/ui/gsap-tanstack-router/references/route-lifetime.md +66 -0
  435. package/skills/ui/gsap-tanstack-router/references/tanstack-navigation.md +156 -0
  436. package/skills/ui/gsap-tanstack-router/references/verification.md +41 -0
  437. package/skills/ui/gsap-timeline/SKILL.md +107 -0
  438. package/skills/ui/gsap-utils/SKILL.md +284 -0
  439. package/skills/ui/gsap-vanilla/SKILL.md +63 -0
  440. package/skills/ui/gsap-vanilla/agents/openai.yaml +7 -0
  441. package/skills/ui/gsap-vanilla/references/cross-document-navigation.md +54 -0
  442. package/skills/ui/gsap-vanilla/references/initialization.md +87 -0
  443. package/skills/ui/gsap-vanilla/references/motion-system.md +150 -0
  444. package/skills/ui/gsap-vanilla/references/page-load.md +96 -0
  445. package/skills/ui/gsap-vanilla/references/spa-navigation.md +70 -0
  446. package/skills/ui/gsap-vanilla/references/verification.md +41 -0
  447. package/skills/ui/house-style/SKILL.md +366 -0
  448. package/skills/ui/imagegen/SKILL.md +49 -0
  449. package/skills/ui/imagegen/references/brandkit.md +48 -0
  450. package/skills/ui/imagegen/references/image-to-code.md +56 -0
  451. package/skills/ui/imagegen/references/mobile.md +58 -0
  452. package/skills/ui/imagegen/references/web.md +63 -0
  453. package/skills/ui/impeccable/SKILL.md +116 -0
  454. package/skills/ui/impeccable/reference/adapt.md +318 -0
  455. package/skills/ui/impeccable/reference/adapt.native.md +58 -0
  456. package/skills/ui/impeccable/reference/android.md +46 -0
  457. package/skills/ui/impeccable/reference/animate.md +89 -0
  458. package/skills/ui/impeccable/reference/audit.md +137 -0
  459. package/skills/ui/impeccable/reference/audit.native.md +139 -0
  460. package/skills/ui/impeccable/reference/bolder.md +33 -0
  461. package/skills/ui/impeccable/reference/clarify.md +94 -0
  462. package/skills/ui/impeccable/reference/colorize.md +86 -0
  463. package/skills/ui/impeccable/reference/craft-floor.md +44 -0
  464. package/skills/ui/impeccable/reference/craft.md +5 -0
  465. package/skills/ui/impeccable/reference/critique.md +806 -0
  466. package/skills/ui/impeccable/reference/degraded/asset-producer.md +37 -0
  467. package/skills/ui/impeccable/reference/degraded/documenter.md +24 -0
  468. package/skills/ui/impeccable/reference/degraded/finish-reviewer.md +38 -0
  469. package/skills/ui/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  470. package/skills/ui/impeccable/reference/delight.md +70 -0
  471. package/skills/ui/impeccable/reference/distill.md +111 -0
  472. package/skills/ui/impeccable/reference/doctor.md +54 -0
  473. package/skills/ui/impeccable/reference/document.md +416 -0
  474. package/skills/ui/impeccable/reference/extract.md +69 -0
  475. package/skills/ui/impeccable/reference/generate.md +101 -0
  476. package/skills/ui/impeccable/reference/harden.md +345 -0
  477. package/skills/ui/impeccable/reference/hooks.md +111 -0
  478. package/skills/ui/impeccable/reference/init.md +131 -0
  479. package/skills/ui/impeccable/reference/ios.md +51 -0
  480. package/skills/ui/impeccable/reference/layout.md +84 -0
  481. package/skills/ui/impeccable/reference/live-setup.md +104 -0
  482. package/skills/ui/impeccable/reference/live.md +325 -0
  483. package/skills/ui/impeccable/reference/new-work.md +145 -0
  484. package/skills/ui/impeccable/reference/onboard.md +234 -0
  485. package/skills/ui/impeccable/reference/operate.md +61 -0
  486. package/skills/ui/impeccable/reference/optimize.md +258 -0
  487. package/skills/ui/impeccable/reference/overdrive.md +127 -0
  488. package/skills/ui/impeccable/reference/polish.md +105 -0
  489. package/skills/ui/impeccable/reference/quieter.md +99 -0
  490. package/skills/ui/impeccable/reference/routing.md +24 -0
  491. package/skills/ui/impeccable/reference/shape.md +59 -0
  492. package/skills/ui/impeccable/reference/typeset.md +80 -0
  493. package/skills/ui/impeccable/reference/visualize.md +46 -0
  494. package/skills/ui/impeccable/scripts/VERSION +1 -0
  495. package/skills/ui/impeccable/scripts/command-metadata.json +98 -0
  496. package/skills/ui/impeccable/scripts/data/font-index-failures.json +121 -0
  497. package/skills/ui/impeccable/scripts/data/font-index.json +1 -0
  498. package/skills/ui/impeccable/scripts/impeccable +206 -0
  499. package/skills/ui/impeccable/scripts/impeccable.cmd +214 -0
  500. package/skills/ui/impeccable/scripts/live-browser-dom.js +167 -0
  501. package/skills/ui/impeccable/scripts/live-browser-ignores.js +242 -0
  502. package/skills/ui/impeccable/scripts/live-browser-session.js +144 -0
  503. package/skills/ui/impeccable/scripts/live-browser.js +13510 -0
  504. package/skills/ui/impeccable/scripts/modern-screenshot.umd.js +14 -0
  505. package/skills/ui/motion/SKILL.md +207 -0
  506. package/skills/ui/pick-ui-library/SKILL.md +85 -0
  507. package/skills/ui/product-messaging/SKILL.md +163 -0
  508. package/skills/ui/product-site/SKILL.md +465 -0
  509. package/skills/ui/prototype/PICKER.md +197 -0
  510. package/skills/ui/prototype/SKILL.md +98 -0
  511. package/skills/ui/refero-design/SKILL.md +534 -0
  512. package/skills/ui/refero-design/agents/openai.yaml +4 -0
  513. package/skills/ui/refero-design/references/anti-ai-slop.md +292 -0
  514. package/skills/ui/refero-design/references/color.md +563 -0
  515. package/skills/ui/refero-design/references/copywriting.md +222 -0
  516. package/skills/ui/refero-design/references/craft-details.md +525 -0
  517. package/skills/ui/refero-design/references/example-workflow.md +264 -0
  518. package/skills/ui/refero-design/references/icons.md +166 -0
  519. package/skills/ui/refero-design/references/mcp-tools.md +258 -0
  520. package/skills/ui/refero-design/references/motion.md +504 -0
  521. package/skills/ui/refero-design/references/typography.md +737 -0
  522. package/skills/ui/refero-design/references/visual-workflow.md +105 -0
  523. package/skills/ui/style-animaxxing/SKILL.md +48 -0
  524. package/skills/ui/style-animaxxing/agents/openai.yaml +7 -0
  525. package/skills/ui/style-animaxxing/references/motion-vocabulary.md +51 -0
  526. package/skills/ui/style-animaxxing/references/tokens.md +288 -0
  527. package/skills/ui/style-animaxxing/references/typography-and-layout.md +149 -0
  528. package/skills/ui/style-animaxxing/references/verification.md +38 -0
  529. package/skills/ui/typography-picker/SKILL.md +305 -0
  530. package/skills/ui/ui-core/SKILL.md +345 -0
  531. package/skills/ui/ui-core/references/accessibility.md +85 -0
  532. package/skills/ui/ui-core/references/build.md +666 -0
  533. package/skills/ui/ui-core/references/copy.md +70 -0
  534. package/skills/ui/ui-core/references/dark-mode.md +76 -0
  535. package/skills/ui/ui-core/references/direction.md +99 -0
  536. package/skills/ui/ui-core/references/redesign.md +74 -0
  537. package/skills/ui/ui-core/references/responsive.md +77 -0
  538. package/skills/ui/ui-core/references/styles.md +42 -0
  539. package/skills/ui/ui-core/references/system.md +190 -0
  540. package/skills/ui/ui-core/references/verify.md +37 -0
  541. package/skills/ui/ui-engineering/SKILL.md +436 -0
  542. package/skills/ui/ui-engineering/references/avatars.md +74 -0
  543. package/skills/ui/ui-engineering/references/card-patterns.md +66 -0
  544. package/skills/ui/ui-engineering/references/floating-actions.md +65 -0
  545. package/skills/ui/ui-engineering/references/navigation.md +81 -0
  546. package/skills/ui/ui-engineering/references/overlays.md +74 -0
  547. package/skills/ui/ui-engineering/references/pagination.md +71 -0
  548. package/skills/ui/ui-engineering/references/progress-indicators.md +77 -0
  549. package/skills/ui/ui-engineering/references/quality-bar.md +293 -0
  550. package/skills/ui/ui-engineering/references/search.md +68 -0
  551. package/skills/ui/ui-engineering/references/tailwind-architecture.md +81 -0
  552. package/skills/ui/ui-theme-picker/SKILL.md +522 -0
  553. package/skills/ui/ui-theme-picker/references/component-sources.md +223 -0
  554. package/skills/ui/ui-theme-picker/references/styles.md +298 -0
  555. package/skills/ui/vitepress-docs/SKILL.md +439 -0
  556. package/skills/ui/vitepress-docs/references/components.md +333 -0
  557. package/skills/ui/vitepress-docs/references/layout.md +128 -0
  558. package/skills/ui/vitepress-docs/references/tokens.md +87 -0
  559. package/skills/ui/vitepress-docs/references/typography.md +76 -0
  560. package/skills/workflow/careful/SKILL.md +48 -0
  561. package/skills/workflow/context-restore/SKILL.md +69 -0
  562. package/skills/workflow/context-save/SKILL.md +96 -0
  563. package/skills/workflow/health/SKILL.md +99 -0
  564. package/skills/workflow/learn/SKILL.md +95 -0
  565. package/skills/workflow/office-hours/SKILL.md +136 -0
  566. package/skills/workflow/ship/SKILL.md +95 -0
  567. package/vendor.json +80 -0
@@ -0,0 +1,81 @@
1
+ # Tailwind architecture
2
+
3
+ Rules for Tailwind v3 vs v4 strategy, token architecture, and
4
+ implementation conventions. For dark-mode token wiring, see
5
+ ui-core/references/dark-mode.md.
6
+
7
+ ## v3 vs v4 strategy
8
+
9
+ - Use v4 if the project is new and the team can adopt it. v4's `@theme`
10
+ is simpler and keeps tokens in CSS, not JS config.
11
+ - Use v3 if the project is existing with a mature config, or if the
12
+ team needs plugin stability. Don't upgrade mid-project unless the
13
+ pain of v3 is acute.
14
+ - Don't mix: pick one version per project. v3 and v4 configs are not
15
+ compatible.
16
+
17
+ ## @theme vs theme.extend
18
+
19
+ - v4: `@theme` in globals.css. Tokens are CSS custom properties by
20
+ default. Extend with `@theme` blocks, not JS config.
21
+ - v3: `theme.extend` in tailwind.config.js. Tokens are JS objects.
22
+ Extend with nested objects.
23
+ - Rule: tokens live in one file. globals.css for v4, tailwind.config.js
24
+ for v3. Don't scatter tokens across components.
25
+
26
+ ## Design token naming
27
+
28
+ - Semantic tokens: `bg-canvas`, `text-primary`, `border-muted`. Use
29
+ function, not appearance.
30
+ - Component tokens: `btn-bg-primary`, `input-border`. Derived from
31
+ semantic tokens, not standalone.
32
+ - Arbitrary values: use sparingly. `bg-[#ff0000]` is a one-off, not a
33
+ token. If you use it twice, make a token.
34
+ - Arbitrary values for layout: `w-[calc(100%-2rem)]` is acceptable for
35
+ one-off layouts. Don't make it a token unless it's reused.
36
+
37
+ ## When to extend vs arbitrary
38
+
39
+ - Extend the theme when the value is reused 2 or more times. Two
40
+ buttons with the same padding = a token.
41
+ - Use arbitrary values for one-off layouts, experimental designs, or
42
+ when the value is tied to content (image width, text length).
43
+ - Don't extend the theme for every variant. Button variants (primary,
44
+ secondary, ghost) are component variants, not theme tokens.
45
+
46
+ ## Dark-mode token wiring
47
+
48
+ - All colors via CSS variables or semantic tokens. Never hardcode
49
+ `bg-white` or `bg-gray-900` in components.
50
+ - v4: `@theme` supports `--color-*` tokens. Define light and dark
51
+ values in `:root` and `.dark`.
52
+ - v3: `darkMode: 'class'` with `dark:` variants on token utilities, or
53
+ CSS variables with `@apply`.
54
+ - See ui-core/references/dark-mode.md for color adjustment rules.
55
+
56
+ ## Implementation conventions
57
+
58
+ - Component classes: `class="btn btn-primary"` not `class="bg-blue-500
59
+ text-white px-4 py-2 rounded"`. Tokens in components, utilities in
60
+ tokens.
61
+ - Variant composition: use `group` and `peer` for hover/focus states
62
+ that depend on parent or sibling. Don't duplicate state logic.
63
+ - Responsive: mobile-first. `md:`, `lg:`, `xl:` for breakpoints. See
64
+ ui-core/references/responsive.md.
65
+ - State: `hover:`, `focus:`, `active:`, `disabled:`, `data-*:` for
66
+ component states. Don't use arbitrary state selectors.
67
+ - Plugins: use `@tailwindcss/forms`, `@tailwindcss/typography` only
68
+ when the project needs them. Don't install plugins for one use case.
69
+
70
+ ## Don'ts
71
+
72
+ - Don't use `!important` or `!` utility. If you need it, the cascade
73
+ is wrong.
74
+ - Don't use `@apply` in component files. `@apply` belongs in the theme
75
+ or utilities, not in JSX.
76
+ - Don't create utility classes that duplicate token utilities. If you
77
+ need `text-primary` often, make it a token.
78
+ - Don't extend the theme for every shade of gray. One gray family, one
79
+ scale.
80
+ - Don't use arbitrary values for colors. If you use `#ff0000` twice,
81
+ make a token.
@@ -0,0 +1,522 @@
1
+ ---
2
+ name: ui-theme-picker
3
+ description: Use whenever the user is starting a new project/page/component and needs a visual direction. Also use when the user shares a reference site/screenshot they like and wants its techniques identified or recreated, or asks to make an existing UI feel like a real/finished product rather than a template. Any request to build, redesign, polish, refine, or implement a frontend interface should trigger productization thinking. The skill is not only responsible for choosing a visual theme. It is responsible for making the resulting interface feel like a coherent, production-ready product. Asks context questions, matches answers to style families, outputs ready-to-paste tokens and Tailwind config, runs a productization pass (identity, IA, interaction model, component language, signature interaction) so results behave like a designed product, and hands back hand-buildable code for signature interactions.
4
+ ---
5
+
6
+ # UI Theme Picker
7
+
8
+ Picks a visual direction for a project by asking a few sharp questions, then hands back
9
+ 2-3 concrete, opinionated theme options with copy-pasteable tokens - not vague adjectives.
10
+
11
+ **Default taste target: give the product one memorable product-native idea.** The
12
+ visual and interaction language should emerge from what the product actually is, not
13
+ from a generic "modern SaaS" template. For T3, the memorable idea isn't a particle
14
+ effect. It's the developer/agent workflow itself. For 100x, it isn't a glowing card.
15
+ It's the content/project browsing experience. For Linear, it's the precision and
16
+ density. For Raycast, it's the command-driven interaction model. Prioritize
17
+ product-native signatures over decorative signatures. A contextual toolbar, command
18
+ palette, inline editing, keyboard workflow, drag interaction, intelligent filtering,
19
+ or spatial manipulation will always be more memorable than a gradient or glow effect.
20
+
21
+ Motion should earn its place: reinforce hierarchy, guide attention, feel natural. The
22
+ single biggest failure mode is janky or slow animation: it converts "great UI" into
23
+ "cheap UI" instantly. Prefer GPU-friendly transforms, respect
24
+ `prefers-reduced-motion`, and don't stack more than 2-3 signature effects per page.
25
+
26
+ **Animation mechanics checklist - apply whenever writing actual motion code, not just
27
+ picking a "motion character" adjective:**
28
+ - **Ask "should this animate at all" first.** High-frequency actions (hover states,
29
+ list navigation, keyboard-triggered actions used tens/hundreds of times a day) should
30
+ usually get little or no animation - the fastest interface is the best interface for
31
+ those. Reserve real motion for things that happen occasionally and benefit from
32
+ spatial continuity or feedback (opening a panel, confirming a destructive action,
33
+ onboarding moments).
34
+ - **`transform` and `opacity` only.** These skip layout/paint and run on the GPU.
35
+ `width`/`height`/`margin`/`padding`/`top`/`left` (or animating x/y/scale via
36
+ non-GPU-backed properties) trigger layout thrash - treat as a bug, not a style choice.
37
+ `clip-path` is an acceptable fourth property when needed; `height` is tolerated only
38
+ for accordions where there's no transform equivalent.
39
+ - **Sub-300ms for UI motion.** Anything slower on a UI element (button, toggle,
40
+ dropdown, toast) needs a specific reason - slower is fine for deliberate marketing/
41
+ hero moments, not for routine interface feedback.
42
+ - **Popovers/dropdowns/tooltips scale from their trigger** (`transform-origin` set to
43
+ the anchor point), not from center - center-scaling reads as generic and spatially
44
+ wrong. Modals are the exception and stay centered.
45
+ - **Never animate in from `scale(0)`.** Start from `scale(0.9 - 0.97)` + `opacity: 0` -
46
+ scaling from zero reads as a bug, not an entrance.
47
+ - **Rapidly-retriggerable motion must be interruptible** (toasts, toggles, drag) - use
48
+ transitions/springs that retarget from current state, not keyframes that restart from
49
+ zero every time they fire.
50
+ - **`prefers-reduced-motion` means gentler, not zero.** Keep opacity/color transitions
51
+ that aid comprehension; drop movement, scale, and position changes.
52
+ - **No bounce/elastic easing on ordinary UI** - it reads as dated/cheap on anything
53
+ other than a deliberately playful signature moment.
54
+
55
+ **What "great UI" means for this user (apply by default unless a specific project
56
+ overrides it):**
57
+ - The bar is "does this feel like a real, intentional product" - not just "is this
58
+ clean." Polish alone isn't the goal; polish that makes someone stop scrolling is.
59
+ - **Structure safe, detail bold.** Default to conventional, proven page structure and
60
+ layout - but push hard on visual polish and product-native detail within that
61
+ structure. Don't default to structurally-risky styles unless the project explicitly
62
+ calls for it.
63
+ - **Color mood is context-dependent, not fixed** - dark/techy for dev tools, light-clean
64
+ or bold-colorful for SaaS/consumer, matched to brand when one exists.
65
+ - **Deliver signature interactions as actual hand-buildable code**, not just a library
66
+ pointer. Still name the library if one exists, but always include the code to build it
67
+ directly.
68
+ - **Proactively identify one product-native signature interaction** even if not asked.
69
+ Prefer product-native interaction (a contextual toolbar, command palette, inline
70
+ editing, a keyboard flow, drag interaction) over a decorative effect (particles, glow,
71
+ ambient blobs). A visual effect is acceptable only when it reinforces the product's
72
+ actual identity, not as a default move to seem eye-catching. The signature should be
73
+ the interaction that naturally belongs to the product, not an effect added to impress.
74
+ - **Hard avoid-list** (reads instantly cheap/dated or as generic AI output): overused
75
+ purple/blue SaaS gradient combos; cheesy rounded corporate fonts; defaulting to
76
+ Inter/Arial for everything; pure black or pure gray with no tint; cards nested inside
77
+ cards; rounded-square icon tiles above every heading; unexplained dark ambient glow
78
+ effects; floating decorative pills with no functional purpose.
79
+
80
+ **Animation effort has no fixed default - always ask per-project.** Don't assume "go
81
+ heavy" or "keep it light" from a past project; the right amount depends on the specific
82
+ client/timeline/budget each time. Frame the question as a rough 1-10 dial: **1** =
83
+ essentially static, functional transitions only; **5** = a couple of signature moments,
84
+ rest clean and fast; **10** = cinematic, motion-forward on nearly every surface. The
85
+ signature moments should be product-native interactions, not decorative effects. Same
86
+ applies to density: **1** = airy/gallery-like, **5** = normal app spacing, **10** =
87
+ packed "cockpit" spacing.
88
+
89
+ **"Finished product" is the actual quality bar - not "themed" or "styled."** The user
90
+ should not need to supervise routine design decisions. When requirements are
91
+ sufficiently clear, make reasonable product and design decisions autonomously. The
92
+ difference between AI-generated UI and a UI that "looks like a real product" isn't the
93
+ palette - it's these eight things, check output against all of them before presenting:
94
+
95
+ 1. **Recognizable visual language** - a person could screenshot one component and
96
+ identify it belongs to this product, not a template. If every button/card/input
97
+ would look at home in any other AI-generated app, it hasn't cleared the bar.
98
+ 2. **Every spacing decision is intentional** - no leftover default padding, no random
99
+ `mt-4` that doesn't relate to a scale. If asked "why 24px here," there's a reason.
100
+ 3. **Clear hierarchy between primary and secondary actions** - one obvious primary
101
+ action per view, everything else visually recedes. Not three equally-weighted
102
+ buttons competing for attention.
103
+ 4. **Dense functionality is organized, not hidden or dumped flat** - group related
104
+ controls, use progressive disclosure, don't either cram everything into one panel
105
+ or bury it three menus deep.
106
+ 5. **Non-happy-path states are designed too** - empty states, loading states, error
107
+ states, hover/focus/disabled states, and menus need the same care as the main view.
108
+ A polished main screen with a default browser error state is still unfinished.
109
+ 6. **Components behave consistently** - the same interaction (e.g. how a dropdown opens,
110
+ how a destructive action confirms) works the same way everywhere in the product.
111
+ 7. **Restraint - not decorating every surface "to look modern."** Gradients, glows,
112
+ shadows, and glassmorphism used on everything read as trying too hard. Reach for
113
+ these only where they earn their place.
114
+ 8. **The UI reflects the product's actual personality**, not a generic "professional
115
+ SaaS" default. A playful whiteboard tool and an enterprise dashboard should not
116
+ converge on the same look just because both used this skill.
117
+
118
+ **Reference products for this bar** (study for *why* they feel finished - extract
119
+ principles, never copy pixels):
120
+ - **Excalidraw** - simple, playful, distinctive, doesn't try to look "premium," has its
121
+ own visual language. Best anchor for creative/canvas tools.
122
+ - **Linear** - restrained SaaS UI, dense info without clutter, strong hierarchy.
123
+ - **Raycast** - utility that feels like a finished product; typography/spacing/motion
124
+ all reinforce it. Best anchor for command palettes, search, keyboard-driven UI.
125
+ - **Vercel** - restrained system; strong reference for typography, cards, nav, dark/light.
126
+ - **Figma** - complex functionality staying coherent; best anchor for creative/dev tools.
127
+ - **Notion** - huge functionality made approachable without being visually flashy.
128
+ - **Stripe** - typography, hierarchy, and density for marketing/product surfaces.
129
+ - **Arc** - unconventional but intentional; UI with opinions rather than another dashboard.
130
+ - **Framer** - polished visuals + strong interaction design, more visually expressive.
131
+
132
+ When a project matches one of these categories (canvas/creative tool, dense SaaS,
133
+ command-driven utility, dev tool), name the closest 1-2 matches as the quality anchor
134
+ in step 3's output - not as a style to clone, but as "this is the bar, here's what it
135
+ does that we're borrowing the *principle* of, not the pixels."
136
+
137
+ **Reference product analysis happens at the behavior level, not the visual level.**
138
+ The question is never "what does Linear look like" - it's "what does Linear *do* that
139
+ makes its UI feel intentional, and which of those principles applies here." Concretely:
140
+
141
+ DO NOT copy from a reference: colors, layouts, logos, typography, exact component
142
+ shapes, exact spacing, exact navigation structure, copy, visual motifs.
143
+
144
+ DO extract from a reference: hierarchy, density philosophy, interaction model,
145
+ information architecture, feedback patterns, component consistency, motion restraint,
146
+ direct-manipulation patterns, progressive disclosure, the relationship between primary
147
+ and secondary actions.
148
+
149
+ If output can be described as "it looks like Linear" rather than "it behaves with
150
+ Linear's density and hierarchy discipline," the extraction was at the wrong level -
151
+ redo it at the behavior level.
152
+
153
+ Optimized for Next.js + TypeScript + Tailwind stacks by default (adjust if the user's
154
+ stack is different), and for fast, decisive output over long explanations.
155
+
156
+ Two reference files:
157
+ - `references/styles.md` - 14 style families with rationale, tokens, and Tailwind/CSS templates
158
+ - `references/component-sources.md` - which library to actually pull each style/effect
159
+ from (Aceternity, Magic UI, 21st.dev, shadcn, etc.), plus a breakdown of recurring
160
+ "wow" effects (particle heroes, glass navbars, scroll tickers, glowing cards, ambient
161
+ blobs, marquees) with source + effort level for each
162
+
163
+ ## Workflow
164
+
165
+ ### 0. Detect which mode this is: new theme vs. refine-existing-toward-a-reference
166
+
167
+ These are different jobs - don't run the greenfield workflow on a refinement task.
168
+
169
+ - **New theme** (default, steps 1-6 below): no existing UI, or existing UI is being
170
+ replaced wholesale. Goal is picking a style family from scratch.
171
+ - **Refine existing UI, possibly using a reference product for quality bar**: the user
172
+ has a working app that "looks bad"/"looks amateur" and points at a polished reference
173
+ (a competitor, a screenshot, a well-known product) - but wants their own identity, not
174
+ a clone. Signals: "make it feel as polished as X", "I don't want a visual clone, but
175
+ see how X actually looks like a product", attaching a screenshot of their own app
176
+ alongside a reference.
177
+
178
+ For the refine-existing mode:
179
+ 1. **Audit first, always.** List the current design primitives (colors, spacing, button
180
+ styles, states) actually in the codebase before proposing anything - don't skip to
181
+ tokens. Note duplicated/inconsistent one-off styling as you go.
182
+ 2. **Extract principles from the reference, not pixels.** Translate what makes the
183
+ reference read as "a product" into transferable rules - restraint (fewer competing
184
+ colors), spacing rhythm, floating surfaces vs. fixed panels, subtle multi-state
185
+ feedback (default/hover/selected, not just on/off), consistent radius/shadow scale.
186
+ Do not carry over the reference's brand colors, logo, exact layout, or literal
187
+ component copy - say explicitly in the output that these are excluded.
188
+ Never restyle every screen at once, if avoidable - biggest visual-debt zones first
189
+ only if the user's request is scoped that way; otherwise cover what they asked for.
190
+ 3. **Explicit non-goals matter as much as goals.** If the user lists things not to
191
+ touch (architecture, business logic, API contracts, canvas/data logic), repeat them
192
+ back as hard constraints in the output plan, not just silently respected - this is
193
+ a common trust point when a UI-refinement request touches a working app.
194
+ 4. **Do the same stack-detection (1a) and monorepo-location (1b) checks below** - a
195
+ refinement task still needs to know where tokens actually live before touching them.
196
+ 5. Skip step 2/3 (style-family selection) - the direction is already set by the
197
+ reference + "keep my identity," not chosen from the family list. Go straight to
198
+ token output (step 4) framed as a diff against the current styling, not a fresh
199
+ greenfield palette.
200
+
201
+ ### 1. Gather context (skip questions already answered in conversation)
202
+
203
+ Don't ask what you already know. If the user already said "SaaS dashboard for devs" or
204
+ similar, don't re-ask category - just ask what's missing.
205
+
206
+ If an interactive elicitation tool is available (e.g. `ask_user_input_v0`), use it -
207
+ these should be quick taps, not an essay prompt. Otherwise ask inline, tightly grouped,
208
+ max 3 questions per round.
209
+
210
+ Ask about (only what's not already known):
211
+ 1. **What are you building** - landing page / SaaS product / dashboard-internal-tool /
212
+ portfolio / e-commerce / dev tool or CLI wrapper / blog-content site / mobile-first app
213
+ 2. **Who's it for** - consumers / developers-technical / enterprise-buyers / creative-portfolio-viewers
214
+ 3. **Vibe in one word, if they have one** - otherwise infer from #1 and #2
215
+ 4. **Any constraint** - existing brand color, must match a logo, light/dark/both, or none
216
+ 5. **Animation effort for this project** - always ask this one explicitly, don't default
217
+ to heavy or light: e.g. "a couple signature moves, rest clean" vs "go all-in" vs
218
+ "keep it fast and minimal, this client needs speed over spectacle"
219
+
220
+ Do not ask more than these. If the user just says "build me a UI, pick something good",
221
+ infer sensible defaults from project type alone and proceed - don't stall on questions.
222
+
223
+ ### 1a. Confirm the styling stack before generating any tokens
224
+
225
+ **Tailwind is the only styling approach this skill outputs - this is strict, not a
226
+ default that yields to convenience.** Every project this skill touches gets Tailwind
227
+ utility classes for styling; plain CSS, CSS-in-JS (styled-components, emotion), or
228
+ CSS modules are never the output, even if the existing project already uses one of
229
+ those. If the codebase uses something else, migrating that specific surface to
230
+ Tailwind is part of the job, not an out-of-scope concern to flag and skip.
231
+
232
+ Never assume Tailwind version or CSS variable format - get this wrong and the entire
233
+ token output is unusable. Check, in order:
234
+
235
+ 1. **Is this an existing repo?** If a project directory is available, check for it
236
+ directly rather than asking:
237
+ - Tailwind v4 signature: `@import "tailwindcss"` in a CSS file (e.g. `globals.css`),
238
+ no `tailwind.config.ts`/`.js`, or a `@theme { ... }` block present.
239
+ - Tailwind v3 signature: `tailwind.config.ts`/`.js` exists with a `content` array and
240
+ `theme.extend`.
241
+ - Look at `package.json` for the `tailwindcss` version as a tiebreaker (`^4.x` vs `^3.x`).
242
+ - If tokens/CSS variables already exist (a `:root` block, a `@theme` block, or a
243
+ `theme.extend.colors` object already filled in) - treat those as the source of
244
+ truth. Extend or restyle them; don't generate a second, competing token set. Say
245
+ what you found before proposing anything new.
246
+ 2. **If it's a React or Next.js frontend and Tailwind is NOT detected** (no
247
+ `tailwindcss` in `package.json`, no `@theme`/`tailwind.config.*`, no `@tailwind`/
248
+ `@import "tailwindcss"` directive) - **install and wire it up before writing any
249
+ component code.** Don't ask permission to add a styling dependency; this skill's
250
+ whole output format depends on Tailwind existing, so treat it as a required setup
251
+ step, same as checking the framework version. Sequence:
252
+ - Detect the framework first (Next.js App Router vs Pages Router, Vite+React, CRA,
253
+ etc.) from `package.json`/config files - install steps differ by framework.
254
+ - **Next.js (App Router, v13.4+):** Tailwind v4 is the default expectation for new
255
+ work: `npm install tailwindcss @tailwindcss/postcss postcss --save-dev`, add a
256
+ `postcss.config.mjs` with the `@tailwindcss/postcss` plugin, and replace the
257
+ contents of `app/globals.css` with `@import "tailwindcss";` plus the `@theme`
258
+ block once tokens are chosen. Confirm `globals.css` is imported in the root layout.
259
+ - **Next.js (Pages Router) or Vite+React on Tailwind v3 conventions:**
260
+ `npm install -D tailwindcss postcss autoprefixer && npx tailwindcss init -p`,
261
+ set `content` in `tailwind.config.js` to cover all component paths, add the
262
+ `@tailwind base; @tailwind components; @tailwind utilities;` directives to the
263
+ global stylesheet, and confirm that stylesheet is imported at the app entry point.
264
+ - If a package manager other than npm is in use (`pnpm-lock.yaml`, `yarn.lock`,
265
+ `bun.lockb`), use that manager's install command instead of assuming npm.
266
+ - After install, verify by checking that the config/`@theme` block and the
267
+ directive/import are both actually present before moving on - don't assume the
268
+ install succeeded silently.
269
+ - State plainly what was installed and why: "No Tailwind config found - installed
270
+ Tailwind v4 and wired it into `globals.css` before writing components," so the
271
+ user isn't surprised by a new dependency showing up.
272
+ - If the project isn't React/Next.js at all (plain HTML, another framework), ask
273
+ the user directly whether to add Tailwind via CDN/CLI for that stack rather than
274
+ silently picking a framework-specific install path that doesn't apply.
275
+ 3. **If there's no existing repo yet (greenfield, nothing scaffolded), ask the
276
+ user directly** - don't guess silently:
277
+ - "Which Tailwind version - v4 (CSS-first `@theme`, default in new Next.js/Vite
278
+ projects) or v3 (`tailwind.config.ts`)? If unsure, say what scaffolded the project
279
+ (e.g. `create-next-app`, `create-vite`) and I'll infer it." New Next.js apps (App
280
+ Router, scaffolded recently) default to v4 - treat that as the working assumption
281
+ only if the user can't check, and flag it as an assumption.
282
+ - "Using shadcn/ui, or any component library that expects HSL CSS variables? Or plain
283
+ Tailwind utility classes only?" This changes the color format (HSL triplets like
284
+ `222 47% 11%` for shadcn vs plain hex for plain Tailwind) - don't output HSL unless
285
+ shadcn (or an equivalent) is confirmed in use.
286
+
287
+ ### 1b. In a monorepo, find where tokens actually belong before writing them
288
+
289
+ Don't default to the first `globals.css` found. Check for a workspace/turbo config
290
+ (`turbo.json`, `pnpm-workspace.yaml`, or multiple `apps/*` + `packages/*` dirs):
291
+
292
+ - If a shared UI/design-system package exists (commonly `packages/ui`), tokens likely
293
+ belong there so every app in the monorepo consumes one source - check whether other
294
+ apps already import from it before putting tokens in a single app's local CSS.
295
+ - If each app intentionally has independent styling (no shared package, or the user
296
+ confirms per-app theming), it's fine to scope tokens to that one app - but say this
297
+ assumption out loud rather than assuming silently.
298
+ - If unsure, ask: "single shared token package, or scoped to this app only?" - one
299
+ question, don't guess on a monorepo structure.
300
+
301
+ ### 1c. Check for non-CSS consumers of color/spacing tokens
302
+
303
+ Tailwind tokens only style DOM elements. If the project renders visuals outside the
304
+ DOM - `<canvas>` drawing calls, WebGL, SVG generated in JS, chart libraries - those
305
+ almost always read color/stroke values from hardcoded JS/TS constants, not CSS, and
306
+ Tailwind's token layer cannot reach them.
307
+
308
+ - Search for hardcoded hex/rgba color literals in rendering/engine code (not just
309
+ component files) before declaring the token migration complete.
310
+ - Call this out as a **separate, explicit step** in the output - these constants need
311
+ to be updated by hand to match the new palette, and it's easy to finish the CSS token
312
+ work and assume the job is done while canvas/chart colors are still stale.
313
+ - Do not attempt to route canvas/WebGL rendering through CSS variables unless the
314
+ project already does this (e.g. reading `getComputedStyle` at draw time) - that's an
315
+ architecture change, out of scope for a visual-refinement task.
316
+
317
+ ### 1d. When Tailwind is confirmed, enforce Tailwind-only - no raw CSS leakage
318
+
319
+ This is a recurring failure mode: even after confirming Tailwind, output (or an agent
320
+ executing the output) drifts into writing plain CSS - new classes in `globals.css`
321
+ (`.toolbar { ... }`), a fresh `.module.css` file, or inline `style={{...}}` objects -
322
+ usually because it's the path of least resistance for a specific layout/animation
323
+ detail. Treat this as a hard constraint, not a preference, once Tailwind is confirmed:
324
+
325
+ - The **only** CSS syntax allowed in a Tailwind project is the token/config layer
326
+ itself: the `@theme` block (v4) or `tailwind.config.ts` `theme.extend` (v3), plus
327
+ Tailwind's own `@import`/`@tailwind` directives. Nothing else gets written as CSS.
328
+ - Every other style decision - layout, spacing, color, state, animation - must be
329
+ Tailwind utility classes on the element, or `@apply` inside a component-scoped class
330
+ only if the user's existing codebase already uses that pattern (don't introduce
331
+ `@apply` fresh into a project that doesn't use it).
332
+ - Arbitrary values belong in Tailwind's bracket syntax (`w-[137px]`, `bg-[var(--x)]`),
333
+ not in a new CSS rule, when a utility class doesn't already cover it.
334
+ - For animation beyond what Tailwind's utilities cover, use a JS animation
335
+ library already in the stack (Framer Motion, GSAP) driving `className`/`style` props
336
+ programmatically - not new keyframe CSS blocks - unless the project already defines
337
+ `@keyframes` in Tailwind's `@theme`/config (Tailwind v4 supports custom keyframes
338
+ inside `@theme` - use that, not a separate CSS file).
339
+ - Inline `style={{...}}` is acceptable only for truly dynamic runtime values that can't
340
+ be expressed as a class (e.g. a computed transform from drag state) - never for static
341
+ styling that a utility class already covers.
342
+ - **Before presenting output, explicitly state**: "No CSS outside the token block - everything
343
+ else is Tailwind utility classes," so the user can verify this claim rather than
344
+ discovering a violation later. If asked to generate actual code (not just tokens),
345
+ scan what was written for stray `.css`/`.module.css` files, new `<style>` blocks, or
346
+ style objects, and flag/fix any found before finishing.
347
+
348
+ ### 2. Map answers to style families
349
+
350
+ Read `references/styles.md` for the full library (14 style families with rationale,
351
+ tokens, and when each one is a trap). Match on:
352
+
353
+ - **Project type** narrows the field fast - e.g. enterprise dashboards almost never want
354
+ brutalism; dev tools and portfolios often do.
355
+ - **Audience** adjusts boldness - technical/developer audiences tolerate (often prefer)
356
+ more rawness and density; consumer/enterprise audiences want more polish and whitespace.
357
+ - **Vibe word**, if given, should dominate over defaults.
358
+
359
+ Pick **2-3 candidates**, not one - always give a real choice, but a narrow, matched one
360
+ (not 14 options). Order them by best-fit first.
361
+
362
+ ### 3. Present options
363
+
364
+ For each candidate, give:
365
+ - Name + one-line description of the feel
366
+ - Why it fits *this* project specifically (not a generic style description)
367
+ - One concrete visual anchor (e.g. "think Linear/Vercel docs" or "think Brutalist
368
+ portfolio sites - thick borders, mono type, no shadows")
369
+
370
+ Keep this tight - a few lines per option, not paragraphs. If `ask_user_input_v0` is
371
+ available, present the 2-3 options as tappable choices rather than prose.
372
+
373
+ ### 4. Output the chosen theme
374
+
375
+ Once picked (or if the user says "just pick one"), pull the full token set for that
376
+ style from `references/styles.md` and output:
377
+
378
+ 1. **Color palette** - hex values for background/surface/border/text/primary/accent, both
379
+ light and dark mode if relevant (HSL triplets instead, only if shadcn/HSL was confirmed
380
+ in step 1a)
381
+ 2. **Typography** - font pairing (with a real Google Fonts / system stack name) and scale
382
+ 3. **Spacing & radius** - the family's characteristic spacing density and border-radius values
383
+ 4. **Shadows/elevation** - or explicit "no shadows" if the style calls for flat/bordered
384
+ 5. **Motion character** - snappy/none/springy/slow-fade, one line
385
+ 6. A ready-to-paste token block matching the **confirmed** stack from step 1a - never
386
+ default to v3 syntax without checking:
387
+ - **Tailwind v4** (default for new Next.js/Vite projects) → CSS-first `@theme` block
388
+ in `globals.css`, per the v4 template in `references/styles.md`. No config file.
389
+ - **Tailwind v3** → `tailwind.config.ts` `theme.extend` block, per the v3 template in
390
+ `references/styles.md`.
391
+ - If an existing token set was found in step 1a, output a diff/extension against it,
392
+ not a full replacement - name exactly which values change and which stay.
393
+ 7. **How to actually use the tokens** - one short line + example, so the semantic names
394
+ get used instead of raw hex creeping back into the JSX: e.g. "reference these as
395
+ `bg-background text-foreground border-border`, not `bg-[#0D1117]` - the whole point of
396
+ the token layer is that colors live in one file." Call this out explicitly since it's
397
+ the step most often skipped.
398
+
399
+ Don't explain design theory unless asked. Give the tokens and move on. If asked "why this
400
+ works," then explain.
401
+
402
+ ### 5. Give the actual code for signature interactions - not just a library pointer
403
+
404
+ Read `references/component-sources.md` for the technique/recipe. This user wants
405
+ hand-buildable code by default, not "go check Aceternity" - so:
406
+ - If the interaction/effect is cheap to hand-build (glass navbar, ambient blobs, hover
407
+ fill-sweep, scroll ticker, contextual toolbar, inline editing) - write the actual
408
+ working code (Tailwind classes + Framer Motion/GSAP snippet as needed), not just a
409
+ description.
410
+ - If a library genuinely does it better/faster (3D scenes, complex particle systems) -
411
+ name the specific component (e.g. Aceternity `Sparkles`) *and* still show the install/
412
+ usage snippet, don't just link out.
413
+ - Always identify **at least one signature interaction proactively**, even if the user
414
+ didn't ask for one - prefer a product-native interaction pattern over a decorative
415
+ effect (see step 6.5 for how to pick the right one for this specific product).
416
+
417
+ ### 6. Offer variations, don't force them
418
+
419
+ After output, one line max: "want a variant (darker/louder/calmer) or a second option
420
+ from the shortlist?" Don't pad further unless they ask.
421
+
422
+ ### 6.5 Productization pass - make it feel like a real product
423
+
424
+ A visually polished interface is not automatically a good product UI. Before
425
+ considering the work complete, run this pass. The objective is not "make the existing
426
+ UI prettier" - it's "make the product feel intentionally designed." This applies most
427
+ to the refine-existing mode (step 0), but the identity/interaction/component-language
428
+ layers matter for new builds too, not just tokens and effects. Evaluate in order:
429
+
430
+ **1. Product identity.** What's this product's distinctive visual/interaction idea?
431
+ What should someone remember after using it? Which element could become a signature
432
+ element? Don't manufacture a visual gimmick for uniqueness - identity should emerge
433
+ from the product's actual purpose. Canvas product → spatial freedom, direct
434
+ manipulation. Dev tool → density, keyboard efficiency, precision. Project management →
435
+ hierarchy, scanning speed, state visibility. Creative tool → expressive workspace, low
436
+ friction.
437
+
438
+ **2. Information architecture.** Don't preserve a bad hierarchy just because the
439
+ existing UI already has it. Is the most important thing visually dominant? Can the
440
+ screen be understood in a few seconds? Are related actions grouped, secondary actions
441
+ subordinate, advanced controls progressively disclosed? If the structure is confusing,
442
+ redesign the structure before styling it - don't polish an incorrect hierarchy.
443
+
444
+ **3. Interaction model.** Every important action needs an obvious model: what happens
445
+ on click, hover, select, keyboard focus, while loading, on success, on failure, on
446
+ empty state, on repeated use? Avoid controls that look good but behave like generic
447
+ HTML. Prefer deliberate patterns where they genuinely fit - command palette, contextual
448
+ toolbar, inline editing, keyboard shortcuts, drag interactions, optimistic updates,
449
+ undo instead of confirmation dialogs - only where they improve the actual product, not
450
+ as a checklist to force through.
451
+
452
+ **4. Component language.** Don't let every component be independently "pretty" - define
453
+ one small visual grammar: control height, density, radius scale, border treatment,
454
+ shadow/elevation scale, type hierarchy, icon sizing/stroke weight, and the
455
+ hover/selected/focus/disabled/destructive treatment. The same interaction must look and
456
+ behave the same everywhere. If similar actions look unrelated, fix the system, don't
457
+ style them individually.
458
+
459
+ **5. Density.** Pick one intentional level - compact, balanced, spacious - and don't mix
460
+ it accidentally. Dev tools/productivity generally want higher density; marketing/
461
+ onboarding generally wants more whitespace. Different surfaces in one product may use
462
+ different densities on purpose, but the transition should feel deliberate, not sloppy.
463
+
464
+ **6. Hierarchy before decoration.** Before adding gradients, glows, glass, shadows,
465
+ particles, blobs, or animated backgrounds - verify layout, hierarchy, spacing,
466
+ typography, grouping, affordances, and states are solid first. If the UI doesn't look
467
+ good without decorative effects, the effects are compensating for weak design underneath
468
+ - fix the design, don't add more decoration on top.
469
+
470
+ **7. Signature interaction.** Every product should have one memorable interaction or
471
+ behavior - the interaction that naturally belongs to it. Excalidraw → direct canvas
472
+ manipulation. Raycast → command/search interaction. Linear → fast issue manipulation
473
+ and navigation. Figma → direct manipulation of the design surface. Identify the
474
+ equivalent for this product and implement it exceptionally well rather than spreading
475
+ effort across several mediocre ones. Prefer product-native signatures (contextual
476
+ toolbar, command palette, inline editing, keyboard workflow, drag interaction) over
477
+ decorative signatures (particles, glow, ambient blobs). The signature should be the
478
+ thing that makes someone say "this product" not "this effect."
479
+
480
+ **8. Micro-polish.** Inspect hover transitions, focus rings, pressed/selected/disabled
481
+ states, loading indicators, empty/error states, success feedback, tooltips, keyboard
482
+ shortcuts, cursor behavior, icon alignment, text truncation, overflow, responsive and
483
+ scroll behavior. These should read as one coherent system, not independently-styled bits.
484
+
485
+ **9. Remove generic AI UI.** Actively look for and remove: unnecessary cards, excessive
486
+ rounded containers, repeated border boxes, generic gradient backgrounds, oversized hero
487
+ headings, excessive badges, decorative icons with no purpose, default three-column card
488
+ grids, excessive shadows/glassmorphism, arbitrary pills, random floating elements,
489
+ unnecessary dividers, "AI SaaS" purple/blue gradients, and any component that could
490
+ belong to any other SaaS app unchanged. Replace generic patterns with product-specific
491
+ ones: instead of a card grid, try a dense list with status indicators; instead of a
492
+ generic hero, try showing the actual product; instead of decorative badges, try
493
+ functional state labels. Delete rather than decorate - a simpler interface with stronger
494
+ hierarchy beats a more decorated generic one.
495
+
496
+ **10. Screenshot test.** Mentally evaluate the primary screen as a bare screenshot - no
497
+ product name, no docs, no marketing copy explaining what's special. Would this be
498
+ recognized as a deliberate product with a clear identity, or does it look like an
499
+ AI-generated template? If template: identify the generic element, replace the pattern
500
+ with something product-specific, introduce product-specific hierarchy or interaction,
501
+ and repeat the test. "Looks clean" is not the bar - "looks like a shipped product with
502
+ a clear identity" is.
503
+
504
+ ### 7. Self-check against the "finished product" bar before presenting
505
+
506
+ Never skip this - it's what separates a themed template from a product-quality output.
507
+ Run the 8-point checklist above **and** the step 6.5 productization pass against what
508
+ was just produced:
509
+
510
+ - If any answer is "no" or "not really," fix it before presenting, not after - don't
511
+ ship a knockoff and offer to revise later.
512
+ - Explicitly note in the output which reference product's principle got applied where
513
+ (e.g. "primary/secondary hierarchy borrowed from Linear's action patterns" - one line,
514
+ not a paragraph) so the user can see the reasoning, not just trust it happened.
515
+ - If states (empty/loading/error/hover/disabled) weren't addressed because they weren't
516
+ asked about, say so directly rather than silently omitting them - "didn't touch empty/
517
+ error states, want those covered too?" is better than leaving a gap unmentioned.
518
+ - If Tailwind was confirmed as the stack (step 1a/1d), do a literal pass over any code
519
+ written and confirm zero new CSS rules exist outside the token/config block - no
520
+ `.module.css`, no `<style>` tag, no new `globals.css` classes. If any slipped in
521
+ (common when generating a lot of code at once), convert them to utility classes before
522
+ presenting, don't leave it for the user to catch.