@biggora/claude-plugins 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +13 -4
  2. package/package.json +1 -1
  3. package/registry/registry.json +334 -244
  4. package/specs/coding.md +30 -0
  5. package/specs/pod.md +2 -0
  6. package/src/commands/skills/add.js +63 -7
  7. package/src/commands/skills/list.js +23 -52
  8. package/src/commands/skills/remove.js +26 -27
  9. package/src/commands/skills/resolve.js +155 -0
  10. package/src/commands/skills/update.js +58 -74
  11. package/src/skills/captcha/README.md +221 -0
  12. package/src/skills/captcha/SKILL.md +355 -0
  13. package/src/skills/captcha/references/captcha-types.md +254 -0
  14. package/src/skills/captcha/references/services.md +172 -0
  15. package/src/skills/captcha/references/stealth.md +238 -0
  16. package/src/skills/captcha/scripts/solve_captcha.py +323 -0
  17. package/src/skills/captcha/scripts/solve_image_grid.py +350 -0
  18. package/src/skills/google-merchant-api/SKILL.md +581 -0
  19. package/src/skills/google-merchant-api/references/accounts.md +247 -0
  20. package/src/skills/google-merchant-api/references/content-api-legacy.md +216 -0
  21. package/src/skills/google-merchant-api/references/datasources.md +233 -0
  22. package/src/skills/google-merchant-api/references/inventories.md +201 -0
  23. package/src/skills/google-merchant-api/references/migration.md +267 -0
  24. package/src/skills/google-merchant-api/references/products.md +316 -0
  25. package/src/skills/google-merchant-api/references/promotions.md +201 -0
  26. package/src/skills/google-merchant-api/references/reports.md +240 -0
  27. package/src/skills/lv-aggregators-api/SKILL.md +113 -0
  28. package/src/skills/lv-aggregators-api/references/integration-guide.md +368 -0
  29. package/src/skills/lv-aggregators-api/references/kurpirkt.md +103 -0
  30. package/src/skills/lv-aggregators-api/references/salidzini.md +122 -0
  31. package/src/skills/nest-best-practices/SKILL.md +251 -0
  32. package/src/skills/nest-best-practices/references/best-practices-request-lifecycle.md +158 -0
  33. package/src/skills/nest-best-practices/references/cli-monorepo.md +106 -0
  34. package/src/skills/nest-best-practices/references/cli-overview.md +157 -0
  35. package/src/skills/nest-best-practices/references/core-controllers.md +165 -0
  36. package/src/skills/nest-best-practices/references/core-dependency-injection.md +179 -0
  37. package/src/skills/nest-best-practices/references/core-middleware.md +139 -0
  38. package/src/skills/nest-best-practices/references/core-modules.md +138 -0
  39. package/src/skills/nest-best-practices/references/core-providers.md +188 -0
  40. package/src/skills/nest-best-practices/references/faq-raw-body-hybrid.md +122 -0
  41. package/src/skills/nest-best-practices/references/fundamentals-circular-dependency.md +89 -0
  42. package/src/skills/nest-best-practices/references/fundamentals-custom-decorators.md +107 -0
  43. package/src/skills/nest-best-practices/references/fundamentals-dynamic-modules.md +125 -0
  44. package/src/skills/nest-best-practices/references/fundamentals-exception-filters.md +202 -0
  45. package/src/skills/nest-best-practices/references/fundamentals-execution-context.md +107 -0
  46. package/src/skills/nest-best-practices/references/fundamentals-guards.md +136 -0
  47. package/src/skills/nest-best-practices/references/fundamentals-interceptors.md +187 -0
  48. package/src/skills/nest-best-practices/references/fundamentals-lazy-loading.md +89 -0
  49. package/src/skills/nest-best-practices/references/fundamentals-lifecycle-events.md +87 -0
  50. package/src/skills/nest-best-practices/references/fundamentals-module-reference.md +107 -0
  51. package/src/skills/nest-best-practices/references/fundamentals-pipes.md +197 -0
  52. package/src/skills/nest-best-practices/references/fundamentals-provider-scopes.md +92 -0
  53. package/src/skills/nest-best-practices/references/fundamentals-testing.md +142 -0
  54. package/src/skills/nest-best-practices/references/graphql-overview.md +233 -0
  55. package/src/skills/nest-best-practices/references/graphql-resolvers-mutations.md +199 -0
  56. package/src/skills/nest-best-practices/references/graphql-scalars-unions-enums.md +180 -0
  57. package/src/skills/nest-best-practices/references/graphql-subscriptions.md +228 -0
  58. package/src/skills/nest-best-practices/references/microservices-grpc.md +175 -0
  59. package/src/skills/nest-best-practices/references/microservices-overview.md +221 -0
  60. package/src/skills/nest-best-practices/references/microservices-transports.md +119 -0
  61. package/src/skills/nest-best-practices/references/openapi-swagger.md +207 -0
  62. package/src/skills/nest-best-practices/references/recipes-authentication.md +97 -0
  63. package/src/skills/nest-best-practices/references/recipes-cqrs.md +176 -0
  64. package/src/skills/nest-best-practices/references/recipes-crud-generator.md +87 -0
  65. package/src/skills/nest-best-practices/references/recipes-documentation.md +93 -0
  66. package/src/skills/nest-best-practices/references/recipes-mongoose.md +153 -0
  67. package/src/skills/nest-best-practices/references/recipes-prisma.md +98 -0
  68. package/src/skills/nest-best-practices/references/recipes-terminus.md +148 -0
  69. package/src/skills/nest-best-practices/references/recipes-typeorm.md +122 -0
  70. package/src/skills/nest-best-practices/references/security-authorization.md +196 -0
  71. package/src/skills/nest-best-practices/references/security-cors-helmet-rate-limiting.md +204 -0
  72. package/src/skills/nest-best-practices/references/security-encryption-hashing.md +93 -0
  73. package/src/skills/nest-best-practices/references/techniques-caching.md +142 -0
  74. package/src/skills/nest-best-practices/references/techniques-compression-streaming-sse.md +194 -0
  75. package/src/skills/nest-best-practices/references/techniques-configuration.md +132 -0
  76. package/src/skills/nest-best-practices/references/techniques-database.md +153 -0
  77. package/src/skills/nest-best-practices/references/techniques-events.md +163 -0
  78. package/src/skills/nest-best-practices/references/techniques-fastify.md +137 -0
  79. package/src/skills/nest-best-practices/references/techniques-file-upload.md +140 -0
  80. package/src/skills/nest-best-practices/references/techniques-http-module.md +176 -0
  81. package/src/skills/nest-best-practices/references/techniques-logging.md +146 -0
  82. package/src/skills/nest-best-practices/references/techniques-mvc-serve-static.md +132 -0
  83. package/src/skills/nest-best-practices/references/techniques-queues.md +162 -0
  84. package/src/skills/nest-best-practices/references/techniques-serialization.md +158 -0
  85. package/src/skills/nest-best-practices/references/techniques-sessions-cookies.md +167 -0
  86. package/src/skills/nest-best-practices/references/techniques-task-scheduling.md +166 -0
  87. package/src/skills/nest-best-practices/references/techniques-validation.md +126 -0
  88. package/src/skills/nest-best-practices/references/techniques-versioning.md +153 -0
  89. package/src/skills/nest-best-practices/references/websockets-advanced.md +96 -0
  90. package/src/skills/nest-best-practices/references/websockets-gateways.md +215 -0
  91. package/src/skills/tailwindcss-best-practices/SKILL.md +180 -0
  92. package/src/skills/tailwindcss-best-practices/references/best-practices-utility-patterns.md +87 -0
  93. package/src/skills/tailwindcss-best-practices/references/core-installation.md +109 -0
  94. package/src/skills/tailwindcss-best-practices/references/core-preflight.md +200 -0
  95. package/src/skills/tailwindcss-best-practices/references/core-responsive.md +163 -0
  96. package/src/skills/tailwindcss-best-practices/references/core-source-detection.md +114 -0
  97. package/src/skills/tailwindcss-best-practices/references/core-theme.md +108 -0
  98. package/src/skills/tailwindcss-best-practices/references/core-utility-classes.md +59 -0
  99. package/src/skills/tailwindcss-best-practices/references/core-variants.md +204 -0
  100. package/src/skills/tailwindcss-best-practices/references/effects-form-controls.md +76 -0
  101. package/src/skills/tailwindcss-best-practices/references/effects-mask.md +91 -0
  102. package/src/skills/tailwindcss-best-practices/references/effects-scroll-snap.md +59 -0
  103. package/src/skills/tailwindcss-best-practices/references/effects-text-shadow.md +78 -0
  104. package/src/skills/tailwindcss-best-practices/references/effects-transition-animation.md +80 -0
  105. package/src/skills/tailwindcss-best-practices/references/effects-visibility-interactivity.md +82 -0
  106. package/src/skills/tailwindcss-best-practices/references/features-content-detection.md +175 -0
  107. package/src/skills/tailwindcss-best-practices/references/features-custom-styles.md +203 -0
  108. package/src/skills/tailwindcss-best-practices/references/features-dark-mode.md +137 -0
  109. package/src/skills/tailwindcss-best-practices/references/features-functions-directives.md +241 -0
  110. package/src/skills/tailwindcss-best-practices/references/features-upgrade.md +160 -0
  111. package/src/skills/tailwindcss-best-practices/references/layout-aspect-ratio.md +39 -0
  112. package/src/skills/tailwindcss-best-practices/references/layout-columns.md +80 -0
  113. package/src/skills/tailwindcss-best-practices/references/layout-display.md +110 -0
  114. package/src/skills/tailwindcss-best-practices/references/layout-flexbox.md +112 -0
  115. package/src/skills/tailwindcss-best-practices/references/layout-grid.md +87 -0
  116. package/src/skills/tailwindcss-best-practices/references/layout-height.md +97 -0
  117. package/src/skills/tailwindcss-best-practices/references/layout-inset.md +103 -0
  118. package/src/skills/tailwindcss-best-practices/references/layout-logical-properties.md +92 -0
  119. package/src/skills/tailwindcss-best-practices/references/layout-margin.md +126 -0
  120. package/src/skills/tailwindcss-best-practices/references/layout-min-max-sizing.md +63 -0
  121. package/src/skills/tailwindcss-best-practices/references/layout-object-fit-position.md +64 -0
  122. package/src/skills/tailwindcss-best-practices/references/layout-overflow.md +57 -0
  123. package/src/skills/tailwindcss-best-practices/references/layout-padding.md +77 -0
  124. package/src/skills/tailwindcss-best-practices/references/layout-position.md +85 -0
  125. package/src/skills/tailwindcss-best-practices/references/layout-tables.md +67 -0
  126. package/src/skills/tailwindcss-best-practices/references/layout-width.md +102 -0
  127. package/src/skills/tailwindcss-best-practices/references/transform-base.md +68 -0
  128. package/src/skills/tailwindcss-best-practices/references/transform-rotate.md +70 -0
  129. package/src/skills/tailwindcss-best-practices/references/transform-scale.md +83 -0
  130. package/src/skills/tailwindcss-best-practices/references/transform-skew.md +62 -0
  131. package/src/skills/tailwindcss-best-practices/references/transform-translate.md +77 -0
  132. package/src/skills/tailwindcss-best-practices/references/typography-font-text.md +142 -0
  133. package/src/skills/tailwindcss-best-practices/references/typography-list-style.md +65 -0
  134. package/src/skills/tailwindcss-best-practices/references/typography-text-align.md +60 -0
  135. package/src/skills/tailwindcss-best-practices/references/visual-background.md +76 -0
  136. package/src/skills/tailwindcss-best-practices/references/visual-border.md +108 -0
  137. package/src/skills/tailwindcss-best-practices/references/visual-effects.md +111 -0
  138. package/src/skills/tailwindcss-best-practices/references/visual-svg.md +82 -0
  139. package/src/skills/test-mobile-app/SKILL.md +11 -6
  140. package/src/skills/test-mobile-app/scripts/analyze_apk.py +15 -4
  141. package/src/skills/test-mobile-app/scripts/check_environment.py +5 -5
  142. package/src/skills/test-mobile-app/scripts/run_tests.py +1 -1
  143. package/src/skills/test-web-ui/SKILL.md +264 -84
  144. package/src/skills/test-web-ui/scripts/discover.py +25 -12
  145. package/src/skills/test-web-ui/scripts/run_tests.py +3 -2
  146. package/src/skills/typescript-expert/SKILL.md +145 -0
  147. package/src/skills/typescript-expert/commands/typescript-fix.md +65 -0
  148. package/src/skills/typescript-expert/references/advanced-conditional-types.md +190 -0
  149. package/src/skills/typescript-expert/references/advanced-decorators.md +243 -0
  150. package/src/skills/typescript-expert/references/advanced-mapped-types.md +223 -0
  151. package/src/skills/typescript-expert/references/advanced-template-literals.md +209 -0
  152. package/src/skills/typescript-expert/references/advanced-type-guards.md +308 -0
  153. package/src/skills/typescript-expert/references/best-practices-patterns.md +313 -0
  154. package/src/skills/typescript-expert/references/best-practices-performance.md +185 -0
  155. package/src/skills/typescript-expert/references/best-practices-tsconfig.md +242 -0
  156. package/src/skills/typescript-expert/references/core-generics.md +246 -0
  157. package/src/skills/typescript-expert/references/core-interfaces-types.md +231 -0
  158. package/src/skills/typescript-expert/references/core-type-system.md +261 -0
  159. package/src/skills/typescript-expert/references/core-utility-types.md +235 -0
  160. package/src/skills/typescript-expert/references/features-ts5x.md +370 -0
  161. package/src/skills/vite-best-practices/SKILL.md +115 -0
  162. package/src/skills/vite-best-practices/references/build-and-ssr.md +255 -0
  163. package/src/skills/vite-best-practices/references/core-config.md +231 -0
  164. package/src/skills/vite-best-practices/references/core-features.md +222 -0
  165. package/src/skills/vite-best-practices/references/core-plugin-api.md +294 -0
  166. package/src/skills/vite-best-practices/references/environment-api.md +108 -0
  167. package/src/skills/vite-best-practices/references/rolldown-migration.md +242 -0
  168. package/codex-cli-workspace/iteration-1/benchmark.json +0 -122
  169. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/eval_metadata.json +0 -13
  170. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/grading.json +0 -52
  171. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/outputs/response.md +0 -163
  172. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/with_skill/timing.json +0 -5
  173. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/grading.json +0 -58
  174. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/outputs/response.md +0 -151
  175. package/codex-cli-workspace/iteration-1/eval-1-ci-integration/without_skill/timing.json +0 -5
  176. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/eval_metadata.json +0 -13
  177. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/grading.json +0 -52
  178. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/outputs/response.md +0 -86
  179. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/timing.json +0 -5
  180. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/grading.json +0 -58
  181. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/outputs/response.md +0 -164
  182. package/codex-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/timing.json +0 -5
  183. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/eval_metadata.json +0 -13
  184. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/grading.json +0 -52
  185. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/outputs/response.md +0 -130
  186. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/with_skill/timing.json +0 -5
  187. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/grading.json +0 -64
  188. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/outputs/response.md +0 -209
  189. package/codex-cli-workspace/iteration-1/eval-3-profiles-troubleshooting/without_skill/timing.json +0 -5
  190. package/codex-cli-workspace/iteration-1/review.html +0 -1325
  191. package/gemini-cli-workspace/iteration-1/benchmark.json +0 -86
  192. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/eval_metadata.json +0 -37
  193. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/grading.json +0 -37
  194. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/outputs/response.md +0 -401
  195. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/with_skill/timing.json +0 -5
  196. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/grading.json +0 -37
  197. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/outputs/response.md +0 -405
  198. package/gemini-cli-workspace/iteration-1/eval-1-cicd-setup/without_skill/timing.json +0 -5
  199. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/eval_metadata.json +0 -37
  200. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/grading.json +0 -37
  201. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/outputs/response.md +0 -212
  202. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/with_skill/timing.json +0 -5
  203. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/grading.json +0 -37
  204. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/outputs/response.md +0 -427
  205. package/gemini-cli-workspace/iteration-1/eval-2-mcp-server-config/without_skill/timing.json +0 -5
  206. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/eval_metadata.json +0 -32
  207. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/grading.json +0 -32
  208. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/outputs/response.md +0 -171
  209. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/with_skill/timing.json +0 -5
  210. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/grading.json +0 -32
  211. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/outputs/response.md +0 -199
  212. package/gemini-cli-workspace/iteration-1/eval-3-custom-slash-command/without_skill/timing.json +0 -5
  213. package/gemini-cli-workspace/iteration-1/review.html +0 -1325
  214. package/gemini-cli-workspace/iteration-2/benchmark.json +0 -173
  215. package/gemini-cli-workspace/iteration-2/benchmark.md +0 -28
  216. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/eval_metadata.json +0 -37
  217. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/grading.json +0 -37
  218. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/outputs/response.md +0 -195
  219. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/with_skill/timing.json +0 -5
  220. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/grading.json +0 -37
  221. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/outputs/response.md +0 -377
  222. package/gemini-cli-workspace/iteration-2/eval-1-cicd-setup/without_skill/timing.json +0 -5
  223. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/eval_metadata.json +0 -37
  224. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/grading.json +0 -37
  225. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/outputs/response.md +0 -127
  226. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/with_skill/timing.json +0 -5
  227. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/grading.json +0 -37
  228. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/outputs/response.md +0 -164
  229. package/gemini-cli-workspace/iteration-2/eval-2-mcp-server-config/without_skill/timing.json +0 -5
  230. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/eval_metadata.json +0 -32
  231. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/grading.json +0 -32
  232. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/outputs/response.md +0 -91
  233. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/with_skill/timing.json +0 -5
  234. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/grading.json +0 -32
  235. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/outputs/response.md +0 -112
  236. package/gemini-cli-workspace/iteration-2/eval-3-custom-slash-command/without_skill/timing.json +0 -5
  237. package/gemini-cli-workspace/iteration-2/eval-viewer.html +0 -1325
  238. package/screen-recording-workspace/evals.json +0 -41
  239. package/screen-recording-workspace/iteration-1/benchmark.json +0 -102
  240. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/eval_metadata.json +0 -31
  241. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/grading.json +0 -11
  242. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/outputs/demo.mp4 +0 -0
  243. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/with_skill/timing.json +0 -5
  244. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/grading.json +0 -11
  245. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/outputs/demo.mp4 +0 -0
  246. package/screen-recording-workspace/iteration-1/eval-0-fullscreen/without_skill/timing.json +0 -5
  247. package/screen-recording-workspace/iteration-1/eval-1-region-audio/eval_metadata.json +0 -31
  248. package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/grading.json +0 -11
  249. package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/outputs/region_capture.mp4 +0 -0
  250. package/screen-recording-workspace/iteration-1/eval-1-region-audio/with_skill/timing.json +0 -5
  251. package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/grading.json +0 -11
  252. package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/outputs/region_capture.mp4 +0 -0
  253. package/screen-recording-workspace/iteration-1/eval-1-region-audio/without_skill/timing.json +0 -5
  254. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/eval_metadata.json +0 -31
  255. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/grading.json +0 -11
  256. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/outputs/fallback_recording.mp4 +0 -0
  257. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/with_skill/timing.json +0 -5
  258. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/grading.json +0 -11
  259. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/outputs/fallback_recording.mp4 +0 -0
  260. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/outputs/record_screen.py +0 -67
  261. package/screen-recording-workspace/iteration-1/eval-2-python-fallback/without_skill/timing.json +0 -5
  262. package/screen-recording-workspace/iteration-1/review.html +0 -1325
  263. package/src/skills/codex-cli/evals/evals.json +0 -47
  264. package/src/skills/gemini-cli/evals/evals.json +0 -46
  265. package/src/skills/tm-search/evals/evals.json +0 -23
@@ -0,0 +1,215 @@
1
+ ---
2
+ name: websockets
3
+ description: Real-time communication with WebSocket gateways
4
+ ---
5
+
6
+ # WebSockets
7
+
8
+ NestJS provides WebSocket support through gateways, with built-in adapters for Socket.IO and ws.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ npm install @nestjs/websockets @nestjs/platform-socket.io
14
+ ```
15
+
16
+ ## Basic Gateway
17
+
18
+ ```typescript
19
+ import {
20
+ WebSocketGateway,
21
+ WebSocketServer,
22
+ SubscribeMessage,
23
+ MessageBody,
24
+ ConnectedSocket,
25
+ } from '@nestjs/websockets';
26
+ import { Server, Socket } from 'socket.io';
27
+
28
+ @WebSocketGateway()
29
+ export class EventsGateway {
30
+ @WebSocketServer()
31
+ server: Server;
32
+
33
+ @SubscribeMessage('events')
34
+ handleEvent(@MessageBody() data: string): string {
35
+ return data; // Sends acknowledgment
36
+ }
37
+ }
38
+ ```
39
+
40
+ ## Gateway Configuration
41
+
42
+ ```typescript
43
+ @WebSocketGateway(81, {
44
+ namespace: 'events',
45
+ cors: { origin: '*' },
46
+ transports: ['websocket'],
47
+ })
48
+ export class EventsGateway {}
49
+ ```
50
+
51
+ ## Message Handlers
52
+
53
+ ```typescript
54
+ @SubscribeMessage('message')
55
+ handleMessage(
56
+ @MessageBody() data: { text: string },
57
+ @ConnectedSocket() client: Socket,
58
+ ): WsResponse<string> {
59
+ // Return emits event back to client
60
+ return { event: 'response', data: data.text };
61
+ }
62
+
63
+ // Extract specific property
64
+ @SubscribeMessage('message')
65
+ handleMessage(@MessageBody('id') id: number): number {
66
+ return id;
67
+ }
68
+ ```
69
+
70
+ ## Async Responses
71
+
72
+ ```typescript
73
+ @SubscribeMessage('events')
74
+ async handleEvent(@MessageBody() data: any): Promise<WsResponse<any>> {
75
+ const result = await this.service.process(data);
76
+ return { event: 'processed', data: result };
77
+ }
78
+
79
+ // Observable (emits multiple responses)
80
+ @SubscribeMessage('events')
81
+ handleEvent(): Observable<WsResponse<number>> {
82
+ return from([1, 2, 3]).pipe(
83
+ map((item) => ({ event: 'events', data: item })),
84
+ );
85
+ }
86
+ ```
87
+
88
+ ## Acknowledgment Callback
89
+
90
+ ```typescript
91
+ @SubscribeMessage('events')
92
+ handleEvent(
93
+ @MessageBody() data: string,
94
+ @Ack() ack: (response: any) => void,
95
+ ) {
96
+ ack({ status: 'received', data });
97
+ }
98
+ ```
99
+
100
+ ## Lifecycle Hooks
101
+
102
+ ```typescript
103
+ import {
104
+ OnGatewayInit,
105
+ OnGatewayConnection,
106
+ OnGatewayDisconnect,
107
+ } from '@nestjs/websockets';
108
+
109
+ @WebSocketGateway()
110
+ export class EventsGateway
111
+ implements OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect
112
+ {
113
+ @WebSocketServer()
114
+ server: Server;
115
+
116
+ afterInit(server: Server) {
117
+ console.log('Gateway initialized');
118
+ }
119
+
120
+ handleConnection(client: Socket) {
121
+ console.log(`Client connected: ${client.id}`);
122
+ }
123
+
124
+ handleDisconnect(client: Socket) {
125
+ console.log(`Client disconnected: ${client.id}`);
126
+ }
127
+ }
128
+ ```
129
+
130
+ ## Broadcasting
131
+
132
+ ```typescript
133
+ @SubscribeMessage('broadcast')
134
+ handleBroadcast(@MessageBody() data: any) {
135
+ // Emit to all connected clients
136
+ this.server.emit('broadcast', data);
137
+ }
138
+
139
+ // Emit to specific room
140
+ emitToRoom(room: string, event: string, data: any) {
141
+ this.server.to(room).emit(event, data);
142
+ }
143
+
144
+ // Join/leave rooms
145
+ @SubscribeMessage('joinRoom')
146
+ handleJoinRoom(
147
+ @ConnectedSocket() client: Socket,
148
+ @MessageBody() room: string,
149
+ ) {
150
+ client.join(room);
151
+ return { event: 'joinedRoom', data: room };
152
+ }
153
+ ```
154
+
155
+ ## Namespace Access
156
+
157
+ ```typescript
158
+ @WebSocketGateway({ namespace: 'chat' })
159
+ export class ChatGateway {
160
+ @WebSocketServer()
161
+ namespace: Namespace;
162
+
163
+ getConnectedClients() {
164
+ return this.namespace.sockets.size;
165
+ }
166
+ }
167
+ ```
168
+
169
+ ## Using Guards and Pipes
170
+
171
+ ```typescript
172
+ @UseGuards(WsAuthGuard)
173
+ @UsePipes(new ValidationPipe())
174
+ @SubscribeMessage('message')
175
+ handleMessage(@MessageBody() dto: CreateMessageDto) {
176
+ return this.messagesService.create(dto);
177
+ }
178
+ ```
179
+
180
+ ## Register in Module
181
+
182
+ ```typescript
183
+ @Module({
184
+ providers: [EventsGateway],
185
+ })
186
+ export class EventsModule {}
187
+ ```
188
+
189
+ ## Client Example
190
+
191
+ ```typescript
192
+ // Client-side
193
+ const socket = io('http://localhost:3000');
194
+
195
+ socket.emit('events', { name: 'Nest' }, (response) => {
196
+ console.log('Acknowledgment:', response);
197
+ });
198
+
199
+ socket.on('events', (data) => {
200
+ console.log('Received:', data);
201
+ });
202
+ ```
203
+
204
+ ## Key Points
205
+
206
+ - Gateways are registered as providers
207
+ - Default port is same as HTTP server
208
+ - Guards, pipes, and interceptors work with gateways
209
+ - Use `@ConnectedSocket()` to access the socket instance
210
+ - Return value from handler sends acknowledgment
211
+
212
+ <!--
213
+ Source references:
214
+ - https://docs.nestjs.com/websockets/gateways
215
+ -->
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: tailwindcss-best-practices
3
+ description: Tailwind CSS v4.x utility-first CSS framework best practices. Use when styling web applications with utility classes, building responsive layouts, customizing design systems with @theme variables, migrating from v3 to v4, configuring dark mode, creating custom utilities with @utility, or working with any Tailwind CSS v4 features. This skill covers the full v4.x line through v4.2 including text shadows, masks, logical properties, and source detection. Use this skill even for simple Tailwind questions — v4 changed many class names and configuration patterns that trip people up.
4
+ ---
5
+
6
+ # Tailwind CSS v4.x Best Practices
7
+
8
+ > Covers Tailwind CSS v4.0 through v4.2.2 (latest stable as of March 2026). Always check the official docs at https://tailwindcss.com/docs for the latest.
9
+
10
+ Tailwind CSS is a utility-first CSS framework. Instead of writing custom CSS, you compose designs using utility classes directly in your markup. Tailwind v4 introduced CSS-first configuration with `@theme` variables, `@utility` for custom utilities, and `@custom-variant` for custom variants — replacing the old `tailwind.config.js` approach entirely.
11
+
12
+ ## Critical v4 Migration Gotchas
13
+
14
+ These are the most common mistakes when working with Tailwind v4. If you're migrating from v3 or using v4 for the first time, read the [upgrade guide](references/features-upgrade.md) — but here are the top trip-ups:
15
+
16
+ | v3 (old) | v4 (correct) | Why it changed |
17
+ |----------|-------------|----------------|
18
+ | `!bg-red-500` | `bg-red-500!` | Important modifier moved from prefix to suffix |
19
+ | `bg-opacity-75` | `bg-red-500/75` | Opacity modifiers removed; use slash syntax on the color |
20
+ | `shadow` | `shadow-sm` | Shadow scale shifted down one step |
21
+ | `shadow-sm` | `shadow-xs` | Shadow scale shifted down one step |
22
+ | `rounded` | `rounded-sm` | Border radius scale shifted down one step |
23
+ | `rounded-sm` | `rounded-xs` | Border radius scale shifted down one step |
24
+ | `ring` | `ring-3` | Default ring width changed from 3px to 1px |
25
+ | `outline-none` | `outline-hidden` | Renamed for clarity |
26
+ | `flex-shrink-0` | `shrink-0` | Shorter alias is now the only form |
27
+ | `flex-grow` | `grow` | Shorter alias is now the only form |
28
+ | `overflow-ellipsis` | `text-ellipsis` | Renamed for consistency |
29
+ | `blur` | `blur-sm` | Blur scale shifted down one step |
30
+ | `@tailwind base/components/utilities` | `@import "tailwindcss"` | Single CSS import replaces three directives |
31
+ | `tailwind.config.js` | `@theme { }` in CSS | CSS-first configuration replaces JS config |
32
+ | `darkMode: 'class'` | `@custom-variant dark (&:where(.dark, .dark *));` | Dark mode config moves to CSS |
33
+ | `bg-[--var]` | `bg-(--var)` | CSS variable arbitrary values use parentheses |
34
+ | `theme(screens.xl)` | `theme(--breakpoint-xl)` | Theme function uses CSS variable names |
35
+ | `@layer utilities { }` | `@utility name { }` | Custom utilities use dedicated directive |
36
+ | `start-*` / `end-*` | `inset-s-*` / `inset-e-*` | Deprecated in v4.2 |
37
+
38
+ ## Core References
39
+
40
+ | Topic | Description | Reference |
41
+ |-------|-------------|-----------|
42
+ | Installation | Vite, PostCSS, Webpack, CLI, and CDN setup | [core-installation](references/core-installation.md) |
43
+ | Utility Classes | Understanding Tailwind's utility-first approach | [core-utility-classes](references/core-utility-classes.md) |
44
+ | Theme Variables | Design tokens, `@theme` directive, theme variable namespaces | [core-theme](references/core-theme.md) |
45
+ | Responsive Design | Mobile-first breakpoints, responsive variants, container queries | [core-responsive](references/core-responsive.md) |
46
+ | Variants | Conditional styling with state, pseudo-class, media query, and pointer variants | [core-variants](references/core-variants.md) |
47
+ | Preflight | Tailwind's base styles and how to extend or disable them | [core-preflight](references/core-preflight.md) |
48
+ | Source Detection | How Tailwind detects classes, `@source`, `@source not`, `@source inline()` | [core-source-detection](references/core-source-detection.md) |
49
+
50
+ ## Layout
51
+
52
+ ### Display & Flexbox & Grid
53
+
54
+ | Topic | Description | Reference |
55
+ |-------|-------------|-----------|
56
+ | Display | flex, grid, block, inline, hidden, sr-only, flow-root, contents | [layout-display](references/layout-display.md) |
57
+ | Flexbox | flex-direction, justify, items, gap, grow, shrink, wrap, order | [layout-flexbox](references/layout-flexbox.md) |
58
+ | Grid | grid-cols, grid-rows, gap, place-items, col-span, row-span, subgrid | [layout-grid](references/layout-grid.md) |
59
+ | Aspect Ratio | Controlling element aspect ratio for responsive media | [layout-aspect-ratio](references/layout-aspect-ratio.md) |
60
+ | Columns | Multi-column layout for magazine-style or masonry layouts | [layout-columns](references/layout-columns.md) |
61
+
62
+ ### Positioning
63
+
64
+ | Topic | Description | Reference |
65
+ |-------|-------------|-----------|
66
+ | Position | Controlling element positioning with static, relative, absolute, fixed, and sticky | [layout-position](references/layout-position.md) |
67
+ | Inset | Placement of positioned elements with inset, logical inset (`inset-s-*`, `inset-bs-*`), and deprecated `start-*`/`end-*` | [layout-inset](references/layout-inset.md) |
68
+
69
+ ### Sizing
70
+
71
+ | Topic | Description | Reference |
72
+ |-------|-------------|-----------|
73
+ | Width | Setting element width with spacing scale, fractions, container sizes, viewport units | [layout-width](references/layout-width.md) |
74
+ | Height | Setting element height with spacing scale, fractions, viewport units | [layout-height](references/layout-height.md) |
75
+ | Min & Max Sizing | min-width, max-width, min-height, max-height constraints | [layout-min-max-sizing](references/layout-min-max-sizing.md) |
76
+ | Logical Sizing | Writing-mode-aware sizing: `inline-*`, `block-*`, `min-inline-*`, `max-block-*` (v4.2) | [layout-logical-properties](references/layout-logical-properties.md) |
77
+
78
+ ### Spacing
79
+
80
+ | Topic | Description | Reference |
81
+ |-------|-------------|-----------|
82
+ | Margin | Margins with spacing scale, negative values, logical properties (`mbs-*`, `mbe-*`) | [layout-margin](references/layout-margin.md) |
83
+ | Padding | Padding with spacing scale, logical properties (`pbs-*`, `pbe-*`) | [layout-padding](references/layout-padding.md) |
84
+
85
+ ### Overflow
86
+
87
+ | Topic | Description | Reference |
88
+ |-------|-------------|-----------|
89
+ | Overflow | Controlling how elements handle content that overflows | [layout-overflow](references/layout-overflow.md) |
90
+
91
+ ### Images & Replaced Elements
92
+
93
+ | Topic | Description | Reference |
94
+ |-------|-------------|-----------|
95
+ | Object Fit & Position | Controlling how images and video are resized and positioned | [layout-object-fit-position](references/layout-object-fit-position.md) |
96
+
97
+ ### Tables
98
+
99
+ | Topic | Description | Reference |
100
+ |-------|-------------|-----------|
101
+ | Table Layout | border-collapse, table-auto, table-fixed | [layout-tables](references/layout-tables.md) |
102
+
103
+ ## Transforms
104
+
105
+ | Topic | Description | Reference |
106
+ |-------|-------------|-----------|
107
+ | Transform Base | Base transform utilities, hardware acceleration, custom transform values | [transform-base](references/transform-base.md) |
108
+ | Translate | Translating elements on x, y, z axes with spacing scale and percentages | [transform-translate](references/transform-translate.md) |
109
+ | Rotate | Rotating elements in 2D and 3D space | [transform-rotate](references/transform-rotate.md) |
110
+ | Scale | Scaling elements uniformly or on specific axes | [transform-scale](references/transform-scale.md) |
111
+ | Skew | Skewing elements on x and y axes | [transform-skew](references/transform-skew.md) |
112
+
113
+ ## Typography
114
+
115
+ | Topic | Description | Reference |
116
+ |-------|-------------|-----------|
117
+ | Font & Text | Font size, weight, color, line-height, letter-spacing, decoration, truncate, `wrap-break-word`, `wrap-anywhere` | [typography-font-text](references/typography-font-text.md) |
118
+ | Text Align | Controlling text alignment with left, center, right, justify | [typography-text-align](references/typography-text-align.md) |
119
+ | List Style | list-style-type, list-style-position for bullets and markers | [typography-list-style](references/typography-list-style.md) |
120
+
121
+ ## Visual
122
+
123
+ | Topic | Description | Reference |
124
+ |-------|-------------|-----------|
125
+ | Background | Background color, gradient, image, size, position | [visual-background](references/visual-background.md) |
126
+ | Border | Border width, color, radius, divide, ring, block border utilities (`border-bs-*`, `border-be-*`) | [visual-border](references/visual-border.md) |
127
+ | Effects | Box shadow, opacity, mix-blend, backdrop-blur, filter, colored drop shadows | [visual-effects](references/visual-effects.md) |
128
+ | SVG | fill, stroke, stroke-width for SVG and icon styling | [visual-svg](references/visual-svg.md) |
129
+ | Text Shadow | Text shadow sizes, colors, and opacity modifiers (v4.1) | [effects-text-shadow](references/effects-text-shadow.md) |
130
+ | Mask | Composable mask utilities with gradient and radial masks (v4.1) | [effects-mask](references/effects-mask.md) |
131
+
132
+ ## Effects & Interactivity
133
+
134
+ | Topic | Description | Reference |
135
+ |-------|-------------|-----------|
136
+ | Transition & Animation | CSS transitions, animation keyframes, reduced motion | [effects-transition-animation](references/effects-transition-animation.md) |
137
+ | Visibility & Interactivity | Visibility, cursor, pointer-events, user-select, z-index | [effects-visibility-interactivity](references/effects-visibility-interactivity.md) |
138
+ | Form Controls | accent-color, appearance, caret-color, resize | [effects-form-controls](references/effects-form-controls.md) |
139
+ | Scroll Snap | scroll-snap-type, scroll-snap-align for carousels | [effects-scroll-snap](references/effects-scroll-snap.md) |
140
+
141
+ ## Features
142
+
143
+ ### Dark Mode
144
+
145
+ | Topic | Description | Reference |
146
+ |-------|-------------|-----------|
147
+ | Dark Mode | Dark mode with `dark:` variant, `@custom-variant`, class and data-attribute strategies | [features-dark-mode](references/features-dark-mode.md) |
148
+
149
+ ### Migration
150
+
151
+ | Topic | Description | Reference |
152
+ |-------|-------------|-----------|
153
+ | Upgrade Guide | Migrating from v3 to v4, all renamed/removed utilities, scale shifts, config migration | [features-upgrade](references/features-upgrade.md) |
154
+
155
+ ### Customization
156
+
157
+ | Topic | Description | Reference |
158
+ |-------|-------------|-----------|
159
+ | Custom Styles | Adding custom styles, utilities with `@utility`, variants with `@custom-variant`, arbitrary values | [features-custom-styles](references/features-custom-styles.md) |
160
+ | Functions & Directives | Tailwind's CSS directives (`@theme`, `@utility`, `@custom-variant`, `@source`) and functions | [features-functions-directives](references/features-functions-directives.md) |
161
+ | Content Detection | How Tailwind detects classes, `@source` configuration, safelisting with `@source inline()` | [features-content-detection](references/features-content-detection.md) |
162
+
163
+ ## Best Practices
164
+
165
+ | Topic | Description | Reference |
166
+ |-------|-------------|-----------|
167
+ | Utility Patterns | Managing duplication, conflicts, important modifier, when to use components | [best-practices-utility-patterns](references/best-practices-utility-patterns.md) |
168
+
169
+ ## Key Recommendations
170
+
171
+ - **Use utility classes directly in markup** — compose designs by combining utilities
172
+ - **Customize with `@theme` directive** — define design tokens as CSS variables, not in JS config
173
+ - **Mobile-first responsive design** — unprefixed utilities for mobile, prefixed for breakpoints
174
+ - **Use complete class names** — never construct classes dynamically with string interpolation
175
+ - **Leverage variants** — stack variants for complex conditional styling (`dark:md:hover:bg-blue-600`)
176
+ - **Prefer CSS-first configuration** — use `@theme`, `@utility`, and `@custom-variant` over JavaScript configs
177
+ - **Use oklch for custom colors** — Tailwind v4 defaults to oklch; prefer it for perceptual uniformity
178
+ - **Use rem for custom breakpoints** — e.g., `--breakpoint-3xl: 90rem` not `1440px`
179
+ - **Know the scale shifts** — shadow, rounded, and blur all shifted down one step in v4
180
+ - **Use `@custom-variant`** (not `@variant`) — for defining custom variants like class-based dark mode
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: best-practices-utility-patterns
3
+ description: Managing duplication, conflicts, important modifier, and when to use components
4
+ ---
5
+
6
+ # Best Practices: Utility Patterns
7
+
8
+ Practical patterns when building with Tailwind utilities.
9
+
10
+ ## Managing duplication
11
+
12
+ **Use components** for repeated UI: Extract into React/Vue/Svelte components or template partials.
13
+
14
+ ```jsx
15
+ function Button({ children, variant = 'primary' }) {
16
+ const base = 'px-4 py-2 rounded-lg font-medium'
17
+ const variants = {
18
+ primary: 'bg-blue-500 hover:bg-blue-600 text-white',
19
+ secondary: 'bg-gray-200 hover:bg-gray-300 text-gray-900',
20
+ }
21
+ return <button className={`${base} ${variants[variant]}`}>{children}</button>
22
+ }
23
+ ```
24
+
25
+ **Use loops** when markup is repeated from data—the class list is written once.
26
+
27
+ **Multi-cursor editing** for localized duplication in a single file.
28
+
29
+ ## Managing conflicts
30
+
31
+ When two utilities target the same property, the one **later in the stylesheet** wins. Avoid adding conflicting classes:
32
+
33
+ ```html
34
+ <!-- Bad -->
35
+ <div class="flex grid">Conflict</div>
36
+
37
+ <!-- Good: conditional class -->
38
+ <div class={gridLayout ? 'grid' : 'flex'}>
39
+ ```
40
+
41
+ ## Important modifier
42
+
43
+ Add `!` suffix to force `!important`:
44
+
45
+ ```html
46
+ <div class="bg-teal-500 bg-red-500!">Red wins</div>
47
+ ```
48
+
49
+ Use sparingly; prefer fixing specificity properly.
50
+
51
+ ## Important flag (global)
52
+
53
+ ```css
54
+ @import "tailwindcss" important;
55
+ ```
56
+
57
+ Makes all utilities `!important`. Useful when integrating into existing high-specificity CSS.
58
+
59
+ ## Prefix option
60
+
61
+ ```css
62
+ @import "tailwindcss" prefix(tw);
63
+ ```
64
+
65
+ Generates `tw:text-red-500` etc. Use when project class names conflict with Tailwind.
66
+
67
+ ## When to use inline styles
68
+
69
+ - Values from API/database (e.g. brand colors)
70
+ - Dynamic values that change at runtime
71
+ - Complex arbitrary values hard to read as class names
72
+ - Pattern: set CSS variables via inline style, reference with `bg-(--my-var)`
73
+
74
+ ## Key Points
75
+
76
+ - Extract repeated patterns into components
77
+ - Never add two conflicting utilities—use conditional classes
78
+ - `!` suffix = single utility `!important`
79
+ - `important` flag = all utilities `!important`
80
+ - `prefix(tw)` = prefix all utilities
81
+ - Use inline styles for dynamic values; utilities for static design
82
+
83
+ <!--
84
+ Source references:
85
+ - https://tailwindcss.com/docs/utility-first#managing-duplication
86
+ - https://tailwindcss.com/docs/utility-first#managing-style-conflicts
87
+ -->
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: core-installation
3
+ description: Installing Tailwind CSS with Vite, PostCSS, CLI, or CDN
4
+ ---
5
+
6
+ # Installation
7
+
8
+ How to add Tailwind CSS to a project.
9
+
10
+ ## Vite (Recommended)
11
+
12
+ ```bash
13
+ npm install tailwindcss @tailwindcss/vite
14
+ ```
15
+
16
+ ```ts
17
+ // vite.config.ts
18
+ import { defineConfig } from 'vite'
19
+ import tailwindcss from '@tailwindcss/vite'
20
+
21
+ export default defineConfig({
22
+ plugins: [tailwindcss()],
23
+ })
24
+ ```
25
+
26
+ ```css
27
+ /* style.css */
28
+ @import "tailwindcss";
29
+ ```
30
+
31
+ ## PostCSS
32
+
33
+ ```bash
34
+ npm install tailwindcss @tailwindcss/postcss postcss
35
+ ```
36
+
37
+ ```js
38
+ // postcss.config.js
39
+ export default {
40
+ plugins: {
41
+ '@tailwindcss/postcss': {},
42
+ },
43
+ }
44
+ ```
45
+
46
+ ```css
47
+ @import "tailwindcss";
48
+ ```
49
+
50
+ ## Tailwind CLI
51
+
52
+ ```bash
53
+ npx @tailwindcss/cli -i ./src/input.css -o ./dist/output.css --watch
54
+ ```
55
+
56
+ ```css
57
+ /* input.css */
58
+ @import "tailwindcss";
59
+ ```
60
+
61
+ ## Webpack (v4.2+)
62
+
63
+ ```bash
64
+ npm install tailwindcss @tailwindcss/webpack
65
+ ```
66
+
67
+ ```js
68
+ // webpack.config.js
69
+ const tailwindcss = require('@tailwindcss/webpack')
70
+
71
+ module.exports = {
72
+ plugins: [tailwindcss()],
73
+ }
74
+ ```
75
+
76
+ ```css
77
+ @import "tailwindcss";
78
+ ```
79
+
80
+ ## Play CDN (Development only)
81
+
82
+ ```html
83
+ <script src="https://cdn.tailwindcss.com"></script>
84
+ ```
85
+
86
+ Not for production: no purging, larger payload.
87
+
88
+ ## Framework guides
89
+
90
+ - **Nuxt**: `@nuxtjs/tailwindcss` module or `@tailwindcss/vite`
91
+ - **Next.js**: Use Vite or PostCSS with `tailwind.config.js` if needed
92
+ - **React Router / SvelteKit / SolidJS**: Use `@tailwindcss/vite`
93
+
94
+ ## Key Points
95
+
96
+ - Vite: `@tailwindcss/vite` plugin + `@import "tailwindcss"` (supports Vite 8+)
97
+ - PostCSS: `@tailwindcss/postcss`
98
+ - Webpack: `@tailwindcss/webpack` (v4.2+)
99
+ - CLI: `npx @tailwindcss/cli`
100
+ - v4 uses CSS-first config; no `tailwind.config.js` required for basics
101
+ - Use `@theme` in CSS to customize design tokens
102
+
103
+ <!--
104
+ Source references:
105
+ - https://tailwindcss.com/docs/installation/using-vite
106
+ - https://tailwindcss.com/docs/installation/using-postcss
107
+ - https://tailwindcss.com/docs/installation/tailwind-cli
108
+ - https://tailwindcss.com/docs/installation/play-cdn
109
+ -->