@maestro-ai/mcp-server 1.0.0 → 1.0.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 (440) hide show
  1. package/README.md +266 -227
  2. package/dist/content/design-system/README.md +231 -231
  3. package/dist/content/design-system/indexes/README.md +211 -211
  4. package/dist/content/design-system/indexes/colors-index.md +156 -156
  5. package/dist/content/design-system/indexes/quick-search.md +111 -111
  6. package/dist/content/design-system/indexes/stacks-index.md +341 -341
  7. package/dist/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +249 -249
  8. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +277 -277
  9. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +260 -260
  10. package/dist/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +257 -257
  11. package/dist/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -119
  12. package/dist/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -147
  13. package/dist/content/guides/Checklist Mestre de Entrega.md +68 -68
  14. package/dist/content/guides/Gates de Qualidade.md +209 -209
  15. package/dist/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -355
  16. package/dist/content/guides/Guia de Chaos Engineering.md +267 -267
  17. package/dist/content/guides/Guia de Debugging com IA.md +135 -135
  18. package/dist/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -352
  19. package/dist/content/guides/Guia de Migrations Zero-Downtime.md +311 -311
  20. package/dist/content/guides/Guia de Multi-tenancy.md +368 -368
  21. package/dist/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -195
  22. package/dist/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -162
  23. package/dist/content/guides/Guia de SLOs e Error Budgets.md +315 -315
  24. package/dist/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -93
  25. package/dist/content/guides/Rules base.md +90 -90
  26. package/dist/content/playbook/Playbook de Desenvolvimento com IA.md +364 -364
  27. package/dist/content/prompts/README.md +203 -203
  28. package/dist/content/prompts/acessibilidade/analise-acessibilidade.md +257 -257
  29. package/dist/content/prompts/apis/design-api-rest.md +303 -303
  30. package/dist/content/prompts/apis/idempotencia.md +254 -254
  31. package/dist/content/prompts/apis/versionamento.md +313 -313
  32. package/dist/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -190
  33. package/dist/content/prompts/arquitetura/clean-architecture.md +151 -151
  34. package/dist/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -183
  35. package/dist/content/prompts/arquitetura/ddd-cqrs.md +176 -176
  36. package/dist/content/prompts/arquitetura/modelo-dominio.md +207 -207
  37. package/dist/content/prompts/arquitetura/multi-tenancy.md +235 -235
  38. package/dist/content/prompts/database/migrations-zero-downtime.md +192 -192
  39. package/dist/content/prompts/database/otimizacao-queries.md +296 -296
  40. package/dist/content/prompts/desenvolvimento/code-review.md +301 -301
  41. package/dist/content/prompts/desenvolvimento/gerar-servico.md +271 -271
  42. package/dist/content/prompts/devops/docker-compose.md +336 -336
  43. package/dist/content/prompts/devops/feature-flags.md +374 -374
  44. package/dist/content/prompts/devops/kubernetes-deploy.md +460 -460
  45. package/dist/content/prompts/devops/pipeline-cicd.md +358 -358
  46. package/dist/content/prompts/devops/terraform-iac.md +502 -502
  47. package/dist/content/prompts/escalabilidade/analise-performance.md +240 -240
  48. package/dist/content/prompts/escalabilidade/analise-performance.txt +94 -94
  49. package/dist/content/prompts/escalabilidade/caching.md +255 -255
  50. package/dist/content/prompts/observabilidade/chaos-testing.md +237 -237
  51. package/dist/content/prompts/observabilidade/estrategia-observabilidade.md +263 -263
  52. package/dist/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -134
  53. package/dist/content/prompts/observabilidade/slos.md +215 -215
  54. package/dist/content/prompts/produto/discovery-inicial.md +203 -203
  55. package/dist/content/prompts/produto/discovery-inicial.txt +33 -33
  56. package/dist/content/prompts/requisitos/refinar-requisitos.md +232 -232
  57. package/dist/content/prompts/requisitos/refinar-requisitos.txt +40 -40
  58. package/dist/content/prompts/seguranca/analise-seguranca.md +243 -243
  59. package/dist/content/prompts/seguranca/pentest-checklist.md +333 -333
  60. package/dist/content/prompts/seguranca/rate-limiting.md +356 -356
  61. package/dist/content/prompts/seguranca/revisao-lgpd.md +227 -227
  62. package/dist/content/prompts/seguranca/threat-modeling.md +224 -224
  63. package/dist/content/prompts/testes/contract-testing.md +340 -340
  64. package/dist/content/prompts/testes/gerar-testes-unitarios.md +474 -474
  65. package/dist/content/prompts/testes/testes-e2e.md +460 -460
  66. package/dist/content/prompts/testes/testes-integracao.md +418 -418
  67. package/dist/content/prompts/testes/testes-performance.md +458 -458
  68. package/dist/content/prompts/ux/gerar-ui-stitch.md +151 -151
  69. package/dist/content/rules/RULES.md +835 -835
  70. package/dist/content/rules/adapters/copilot.md +10 -10
  71. package/dist/content/rules/adapters/cursor.md +10 -10
  72. package/dist/content/rules/adapters/gemini.md +13 -13
  73. package/dist/content/rules/adapters/windsurf.md +10 -10
  74. package/dist/content/specialists/Especialista em Acessibilidade.md +266 -266
  75. package/dist/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -434
  76. package/dist/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -358
  77. package/dist/content/specialists/Especialista em Arquitetura de Software.md +177 -177
  78. package/dist/content/specialists/Especialista em Banco de Dados.md +260 -260
  79. package/dist/content/specialists/Especialista em Contrato de API.md +172 -172
  80. package/dist/content/specialists/Especialista em Dados e Analytics com IA.md +246 -246
  81. package/dist/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -191
  82. package/dist/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -477
  83. package/dist/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -241
  84. package/dist/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -417
  85. package/dist/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -294
  86. package/dist/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -227
  87. package/dist/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -299
  88. package/dist/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -179
  89. package/dist/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -179
  90. package/dist/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -410
  91. package/dist/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -248
  92. package/dist/content/specialists/Especialista em Observabilidade.md +415 -415
  93. package/dist/content/specialists/Especialista em Performance e Escalabilidade.md +373 -373
  94. package/dist/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -341
  95. package/dist/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -419
  96. package/dist/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -508
  97. package/dist/content/specialists/Especialista em UX Design.md +453 -453
  98. package/dist/content/specialists/INDEX.md +43 -43
  99. package/dist/content/templates/PRD.md +165 -165
  100. package/dist/content/templates/README.md +65 -65
  101. package/dist/content/templates/adr.md +103 -103
  102. package/dist/content/templates/arquitetura.md +279 -279
  103. package/dist/content/templates/backlog.md +185 -185
  104. package/dist/content/templates/checklist-seguranca.md +180 -180
  105. package/dist/content/templates/contexto.md +120 -120
  106. package/dist/content/templates/criterios-aceite.md +99 -99
  107. package/dist/content/templates/design-banco.md +270 -270
  108. package/dist/content/templates/design-doc.md +240 -240
  109. package/dist/content/templates/feature.md +88 -88
  110. package/dist/content/templates/historia-backend.md +84 -84
  111. package/dist/content/templates/historia-frontend.md +75 -75
  112. package/dist/content/templates/historia-usuario.md +125 -125
  113. package/dist/content/templates/mapa-navegacao.md +133 -133
  114. package/dist/content/templates/matriz-rastreabilidade.md +121 -121
  115. package/dist/content/templates/modelo-dominio.md +219 -219
  116. package/dist/content/templates/plano-testes.md +199 -199
  117. package/dist/content/templates/prototipo-stitch.md +138 -138
  118. package/dist/content/templates/requisitos.md +162 -162
  119. package/dist/content/templates/slo-sli.md +197 -197
  120. package/dist/content/workflows/README-MCP.md +363 -363
  121. package/dist/content/workflows/mcp-debug.md +506 -506
  122. package/dist/content/workflows/mcp-feature.md +385 -385
  123. package/dist/content/workflows/mcp-gate.md +413 -413
  124. package/dist/content/workflows/mcp-next.md +388 -388
  125. package/dist/content/workflows/mcp-refactor.md +600 -600
  126. package/dist/content/workflows/mcp-start.md +304 -304
  127. package/dist/content/workflows/mcp-status.md +400 -400
  128. package/dist/gates/tiers.test.js +14 -14
  129. package/dist/index.js +133 -133
  130. package/dist/resources/index.js +61 -61
  131. package/dist/stdio.js +39 -32
  132. package/dist/stdio.js.map +1 -1
  133. package/dist/tools/analise/performance.js +23 -23
  134. package/dist/tools/analise/qualidade.js +23 -23
  135. package/dist/tools/analise/relatorio.js +24 -24
  136. package/dist/tools/analise/seguranca.js +28 -28
  137. package/dist/tools/aprovar-gate.js +81 -81
  138. package/dist/tools/atualizar-codebase.js +18 -18
  139. package/dist/tools/avaliar-entregavel.js +18 -18
  140. package/dist/tools/carregar-projeto.js +103 -103
  141. package/dist/tools/classificar.js +36 -36
  142. package/dist/tools/confirmar-classificacao.js +36 -36
  143. package/dist/tools/confirmar-stitch.js +75 -75
  144. package/dist/tools/contexto.js +56 -56
  145. package/dist/tools/fluxos-alternativos.js +98 -98
  146. package/dist/tools/implementar-historia.js +63 -63
  147. package/dist/tools/iniciar-projeto.js +174 -174
  148. package/dist/tools/proximo.js +239 -239
  149. package/dist/tools/salvar.js +59 -59
  150. package/dist/tools/status.js +76 -76
  151. package/dist/tools/validar-gate.js +35 -35
  152. package/dist/types/response.js +11 -11
  153. package/dist/utils/instructions.js +48 -48
  154. package/dist/utils/prompt-mapper.js +16 -16
  155. package/dist/utils/system-md.js +33 -33
  156. package/package.json +67 -67
  157. package/dist/content/content/design-system/README.md +0 -231
  158. package/dist/content/content/design-system/data/charts.csv +0 -26
  159. package/dist/content/content/design-system/data/colors.csv +0 -97
  160. package/dist/content/content/design-system/data/icons.csv +0 -101
  161. package/dist/content/content/design-system/data/landing.csv +0 -31
  162. package/dist/content/content/design-system/data/products.csv +0 -97
  163. package/dist/content/content/design-system/data/prompts.csv +0 -24
  164. package/dist/content/content/design-system/data/react-performance.csv +0 -45
  165. package/dist/content/content/design-system/data/styles.csv +0 -59
  166. package/dist/content/content/design-system/data/typography.csv +0 -58
  167. package/dist/content/content/design-system/data/ui-reasoning.csv +0 -101
  168. package/dist/content/content/design-system/data/ux-guidelines.csv +0 -100
  169. package/dist/content/content/design-system/data/web-interface.csv +0 -31
  170. package/dist/content/content/design-system/indexes/README.md +0 -211
  171. package/dist/content/content/design-system/indexes/colors-index.md +0 -156
  172. package/dist/content/content/design-system/indexes/quick-search.md +0 -111
  173. package/dist/content/content/design-system/indexes/stacks-index.md +0 -341
  174. package/dist/content/content/design-system/stacks/flutter.csv +0 -53
  175. package/dist/content/content/design-system/stacks/html-tailwind.csv +0 -56
  176. package/dist/content/content/design-system/stacks/jetpack-compose.csv +0 -53
  177. package/dist/content/content/design-system/stacks/nextjs.csv +0 -53
  178. package/dist/content/content/design-system/stacks/nuxt-ui.csv +0 -51
  179. package/dist/content/content/design-system/stacks/nuxtjs.csv +0 -59
  180. package/dist/content/content/design-system/stacks/react-native.csv +0 -52
  181. package/dist/content/content/design-system/stacks/react.csv +0 -54
  182. package/dist/content/content/design-system/stacks/shadcn.csv +0 -61
  183. package/dist/content/content/design-system/stacks/svelte.csv +0 -54
  184. package/dist/content/content/design-system/stacks/swiftui.csv +0 -51
  185. package/dist/content/content/design-system/stacks/vue.csv +0 -50
  186. package/dist/content/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +0 -250
  187. package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +0 -278
  188. package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +0 -261
  189. package/dist/content/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +0 -258
  190. package/dist/content/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +0 -119
  191. package/dist/content/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +0 -147
  192. package/dist/content/content/guides/Checklist Mestre de Entrega.md +0 -68
  193. package/dist/content/content/guides/Gates de Qualidade.md +0 -209
  194. package/dist/content/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +0 -355
  195. package/dist/content/content/guides/Guia de Chaos Engineering.md +0 -267
  196. package/dist/content/content/guides/Guia de Debugging com IA.md +0 -135
  197. package/dist/content/content/guides/Guia de Estrat/303/251gias de Cache.md" +0 -352
  198. package/dist/content/content/guides/Guia de Migrations Zero-Downtime.md +0 -311
  199. package/dist/content/content/guides/Guia de Multi-tenancy.md +0 -368
  200. package/dist/content/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +0 -195
  201. package/dist/content/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +0 -162
  202. package/dist/content/content/guides/Guia de SLOs e Error Budgets.md +0 -315
  203. package/dist/content/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +0 -93
  204. package/dist/content/content/guides/Rules base.md +0 -90
  205. package/dist/content/content/playbook/Playbook de Desenvolvimento com IA.md +0 -364
  206. package/dist/content/content/prompts/README.md +0 -203
  207. package/dist/content/content/prompts/acessibilidade/analise-acessibilidade.md +0 -257
  208. package/dist/content/content/prompts/apis/design-api-rest.md +0 -303
  209. package/dist/content/content/prompts/apis/idempotencia.md +0 -254
  210. package/dist/content/content/prompts/apis/versionamento.md +0 -313
  211. package/dist/content/content/prompts/arquitetura/arquitetura-c4-completo.md +0 -190
  212. package/dist/content/content/prompts/arquitetura/clean-architecture.md +0 -151
  213. package/dist/content/content/prompts/arquitetura/ddd-bounded-contexts.md +0 -183
  214. package/dist/content/content/prompts/arquitetura/ddd-cqrs.md +0 -176
  215. package/dist/content/content/prompts/arquitetura/modelo-dominio.md +0 -207
  216. package/dist/content/content/prompts/arquitetura/multi-tenancy.md +0 -235
  217. package/dist/content/content/prompts/database/migrations-zero-downtime.md +0 -192
  218. package/dist/content/content/prompts/database/otimizacao-queries.md +0 -296
  219. package/dist/content/content/prompts/desenvolvimento/code-review.md +0 -301
  220. package/dist/content/content/prompts/desenvolvimento/gerar-servico.md +0 -271
  221. package/dist/content/content/prompts/devops/docker-compose.md +0 -336
  222. package/dist/content/content/prompts/devops/feature-flags.md +0 -374
  223. package/dist/content/content/prompts/devops/kubernetes-deploy.md +0 -460
  224. package/dist/content/content/prompts/devops/pipeline-cicd.md +0 -358
  225. package/dist/content/content/prompts/devops/terraform-iac.md +0 -502
  226. package/dist/content/content/prompts/escalabilidade/analise-performance.md +0 -240
  227. package/dist/content/content/prompts/escalabilidade/analise-performance.txt +0 -94
  228. package/dist/content/content/prompts/escalabilidade/caching.md +0 -255
  229. package/dist/content/content/prompts/observabilidade/chaos-testing.md +0 -237
  230. package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.md +0 -263
  231. package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.txt +0 -134
  232. package/dist/content/content/prompts/observabilidade/slos.md +0 -215
  233. package/dist/content/content/prompts/produto/discovery-inicial.md +0 -203
  234. package/dist/content/content/prompts/produto/discovery-inicial.txt +0 -33
  235. package/dist/content/content/prompts/requisitos/refinar-requisitos.md +0 -232
  236. package/dist/content/content/prompts/requisitos/refinar-requisitos.txt +0 -40
  237. package/dist/content/content/prompts/seguranca/analise-seguranca.md +0 -243
  238. package/dist/content/content/prompts/seguranca/pentest-checklist.md +0 -333
  239. package/dist/content/content/prompts/seguranca/rate-limiting.md +0 -356
  240. package/dist/content/content/prompts/seguranca/revisao-lgpd.md +0 -227
  241. package/dist/content/content/prompts/seguranca/threat-modeling.md +0 -224
  242. package/dist/content/content/prompts/testes/contract-testing.md +0 -340
  243. package/dist/content/content/prompts/testes/gerar-testes-unitarios.md +0 -474
  244. package/dist/content/content/prompts/testes/testes-e2e.md +0 -460
  245. package/dist/content/content/prompts/testes/testes-integracao.md +0 -418
  246. package/dist/content/content/prompts/testes/testes-performance.md +0 -458
  247. package/dist/content/content/prompts/ux/gerar-ui-stitch.md +0 -151
  248. package/dist/content/content/rules/GEMINI.md +0 -841
  249. package/dist/content/content/rules/RULES.md +0 -835
  250. package/dist/content/content/rules/adapters/copilot.md +0 -10
  251. package/dist/content/content/rules/adapters/cursor.md +0 -10
  252. package/dist/content/content/rules/adapters/gemini.md +0 -13
  253. package/dist/content/content/rules/adapters/windsurf.md +0 -10
  254. package/dist/content/content/skills/api-patterns/SKILL.md +0 -81
  255. package/dist/content/content/skills/api-patterns/api-style.md +0 -42
  256. package/dist/content/content/skills/api-patterns/auth.md +0 -24
  257. package/dist/content/content/skills/api-patterns/documentation.md +0 -26
  258. package/dist/content/content/skills/api-patterns/graphql.md +0 -41
  259. package/dist/content/content/skills/api-patterns/rate-limiting.md +0 -31
  260. package/dist/content/content/skills/api-patterns/response.md +0 -37
  261. package/dist/content/content/skills/api-patterns/rest.md +0 -40
  262. package/dist/content/content/skills/api-patterns/scripts/api_validator.py +0 -211
  263. package/dist/content/content/skills/api-patterns/security-testing.md +0 -122
  264. package/dist/content/content/skills/api-patterns/trpc.md +0 -41
  265. package/dist/content/content/skills/api-patterns/versioning.md +0 -22
  266. package/dist/content/content/skills/app-builder/SKILL.md +0 -75
  267. package/dist/content/content/skills/app-builder/agent-coordination.md +0 -71
  268. package/dist/content/content/skills/app-builder/feature-building.md +0 -53
  269. package/dist/content/content/skills/app-builder/project-detection.md +0 -34
  270. package/dist/content/content/skills/app-builder/scaffolding.md +0 -118
  271. package/dist/content/content/skills/app-builder/tech-stack.md +0 -40
  272. package/dist/content/content/skills/app-builder/templates/SKILL.md +0 -39
  273. package/dist/content/content/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
  274. package/dist/content/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
  275. package/dist/content/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
  276. package/dist/content/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
  277. package/dist/content/content/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
  278. package/dist/content/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
  279. package/dist/content/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
  280. package/dist/content/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -82
  281. package/dist/content/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -100
  282. package/dist/content/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -106
  283. package/dist/content/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -101
  284. package/dist/content/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
  285. package/dist/content/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -93
  286. package/dist/content/content/skills/architecture/SKILL.md +0 -55
  287. package/dist/content/content/skills/architecture/context-discovery.md +0 -43
  288. package/dist/content/content/skills/architecture/examples.md +0 -94
  289. package/dist/content/content/skills/architecture/pattern-selection.md +0 -68
  290. package/dist/content/content/skills/architecture/patterns-reference.md +0 -50
  291. package/dist/content/content/skills/architecture/trade-off-analysis.md +0 -77
  292. package/dist/content/content/skills/bash-linux/SKILL.md +0 -199
  293. package/dist/content/content/skills/behavioral-modes/SKILL.md +0 -242
  294. package/dist/content/content/skills/brainstorming/SKILL.md +0 -163
  295. package/dist/content/content/skills/brainstorming/dynamic-questioning.md +0 -350
  296. package/dist/content/content/skills/clean-code/SKILL.md +0 -201
  297. package/dist/content/content/skills/code-review-checklist/SKILL.md +0 -109
  298. package/dist/content/content/skills/database-design/SKILL.md +0 -52
  299. package/dist/content/content/skills/database-design/database-selection.md +0 -43
  300. package/dist/content/content/skills/database-design/indexing.md +0 -39
  301. package/dist/content/content/skills/database-design/migrations.md +0 -48
  302. package/dist/content/content/skills/database-design/optimization.md +0 -36
  303. package/dist/content/content/skills/database-design/orm-selection.md +0 -30
  304. package/dist/content/content/skills/database-design/schema-design.md +0 -56
  305. package/dist/content/content/skills/database-design/scripts/schema_validator.py +0 -172
  306. package/dist/content/content/skills/deployment-procedures/SKILL.md +0 -241
  307. package/dist/content/content/skills/doc.md +0 -177
  308. package/dist/content/content/skills/documentation-templates/SKILL.md +0 -194
  309. package/dist/content/content/skills/frontend-design/SKILL.md +0 -396
  310. package/dist/content/content/skills/frontend-design/animation-guide.md +0 -331
  311. package/dist/content/content/skills/frontend-design/color-system.md +0 -311
  312. package/dist/content/content/skills/frontend-design/decision-trees.md +0 -418
  313. package/dist/content/content/skills/frontend-design/motion-graphics.md +0 -306
  314. package/dist/content/content/skills/frontend-design/scripts/accessibility_checker.py +0 -183
  315. package/dist/content/content/skills/frontend-design/scripts/ux_audit.py +0 -722
  316. package/dist/content/content/skills/frontend-design/typography-system.md +0 -345
  317. package/dist/content/content/skills/frontend-design/ux-psychology.md +0 -541
  318. package/dist/content/content/skills/frontend-design/visual-effects.md +0 -383
  319. package/dist/content/content/skills/game-development/2d-games/SKILL.md +0 -119
  320. package/dist/content/content/skills/game-development/3d-games/SKILL.md +0 -135
  321. package/dist/content/content/skills/game-development/SKILL.md +0 -167
  322. package/dist/content/content/skills/game-development/game-art/SKILL.md +0 -185
  323. package/dist/content/content/skills/game-development/game-audio/SKILL.md +0 -190
  324. package/dist/content/content/skills/game-development/game-design/SKILL.md +0 -129
  325. package/dist/content/content/skills/game-development/mobile-games/SKILL.md +0 -108
  326. package/dist/content/content/skills/game-development/multiplayer/SKILL.md +0 -132
  327. package/dist/content/content/skills/game-development/pc-games/SKILL.md +0 -144
  328. package/dist/content/content/skills/game-development/vr-ar/SKILL.md +0 -123
  329. package/dist/content/content/skills/game-development/web-games/SKILL.md +0 -150
  330. package/dist/content/content/skills/geo-fundamentals/SKILL.md +0 -156
  331. package/dist/content/content/skills/geo-fundamentals/scripts/geo_checker.py +0 -289
  332. package/dist/content/content/skills/i18n-localization/SKILL.md +0 -154
  333. package/dist/content/content/skills/i18n-localization/scripts/i18n_checker.py +0 -241
  334. package/dist/content/content/skills/intelligent-routing/SKILL.md +0 -334
  335. package/dist/content/content/skills/lint-and-validate/SKILL.md +0 -45
  336. package/dist/content/content/skills/lint-and-validate/scripts/lint_runner.py +0 -172
  337. package/dist/content/content/skills/lint-and-validate/scripts/type_coverage.py +0 -173
  338. package/dist/content/content/skills/mcp-builder/SKILL.md +0 -176
  339. package/dist/content/content/skills/mobile-design/SKILL.md +0 -394
  340. package/dist/content/content/skills/mobile-design/decision-trees.md +0 -516
  341. package/dist/content/content/skills/mobile-design/mobile-backend.md +0 -491
  342. package/dist/content/content/skills/mobile-design/mobile-color-system.md +0 -420
  343. package/dist/content/content/skills/mobile-design/mobile-debugging.md +0 -122
  344. package/dist/content/content/skills/mobile-design/mobile-design-thinking.md +0 -357
  345. package/dist/content/content/skills/mobile-design/mobile-navigation.md +0 -458
  346. package/dist/content/content/skills/mobile-design/mobile-performance.md +0 -767
  347. package/dist/content/content/skills/mobile-design/mobile-testing.md +0 -356
  348. package/dist/content/content/skills/mobile-design/mobile-typography.md +0 -433
  349. package/dist/content/content/skills/mobile-design/platform-android.md +0 -666
  350. package/dist/content/content/skills/mobile-design/platform-ios.md +0 -561
  351. package/dist/content/content/skills/mobile-design/scripts/mobile_audit.py +0 -670
  352. package/dist/content/content/skills/mobile-design/touch-psychology.md +0 -537
  353. package/dist/content/content/skills/nextjs-best-practices/SKILL.md +0 -203
  354. package/dist/content/content/skills/nodejs-best-practices/SKILL.md +0 -333
  355. package/dist/content/content/skills/parallel-agents/SKILL.md +0 -175
  356. package/dist/content/content/skills/performance-profiling/SKILL.md +0 -143
  357. package/dist/content/content/skills/performance-profiling/scripts/lighthouse_audit.py +0 -76
  358. package/dist/content/content/skills/plan-writing/SKILL.md +0 -152
  359. package/dist/content/content/skills/powershell-windows/SKILL.md +0 -167
  360. package/dist/content/content/skills/python-patterns/SKILL.md +0 -441
  361. package/dist/content/content/skills/react-patterns/SKILL.md +0 -198
  362. package/dist/content/content/skills/red-team-tactics/SKILL.md +0 -199
  363. package/dist/content/content/skills/seo-fundamentals/SKILL.md +0 -129
  364. package/dist/content/content/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
  365. package/dist/content/content/skills/server-management/SKILL.md +0 -161
  366. package/dist/content/content/skills/systematic-debugging/SKILL.md +0 -109
  367. package/dist/content/content/skills/tailwind-patterns/SKILL.md +0 -269
  368. package/dist/content/content/skills/tdd-workflow/SKILL.md +0 -149
  369. package/dist/content/content/skills/testing-patterns/SKILL.md +0 -178
  370. package/dist/content/content/skills/testing-patterns/scripts/test_runner.py +0 -219
  371. package/dist/content/content/skills/vulnerability-scanner/SKILL.md +0 -276
  372. package/dist/content/content/skills/vulnerability-scanner/checklists.md +0 -121
  373. package/dist/content/content/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  374. package/dist/content/content/skills/webapp-testing/SKILL.md +0 -187
  375. package/dist/content/content/skills/webapp-testing/scripts/playwright_runner.py +0 -173
  376. package/dist/content/content/specialists/Especialista em Acessibilidade.md +0 -266
  377. package/dist/content/content/specialists/Especialista em An/303/241lise de Testes.md" +0 -434
  378. package/dist/content/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +0 -358
  379. package/dist/content/content/specialists/Especialista em Arquitetura de Software.md +0 -177
  380. package/dist/content/content/specialists/Especialista em Banco de Dados.md +0 -260
  381. package/dist/content/content/specialists/Especialista em Contrato de API.md +0 -172
  382. package/dist/content/content/specialists/Especialista em Dados e Analytics com IA.md +0 -246
  383. package/dist/content/content/specialists/Especialista em Debugging e Troubleshooting.md +0 -191
  384. package/dist/content/content/specialists/Especialista em Desenvolvimento Frontend.md +0 -477
  385. package/dist/content/content/specialists/Especialista em Desenvolvimento Mobile.md +0 -241
  386. package/dist/content/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +0 -417
  387. package/dist/content/content/specialists/Especialista em DevOps e Infraestrutura.md +0 -294
  388. package/dist/content/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +0 -227
  389. package/dist/content/content/specialists/Especialista em Engenharia de Requisitos com IA.md +0 -299
  390. package/dist/content/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +0 -179
  391. package/dist/content/content/specialists/Especialista em Gest/303/243o de Produto.md" +0 -179
  392. package/dist/content/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +0 -410
  393. package/dist/content/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +0 -248
  394. package/dist/content/content/specialists/Especialista em Observabilidade.md +0 -415
  395. package/dist/content/content/specialists/Especialista em Performance e Escalabilidade.md +0 -373
  396. package/dist/content/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +0 -341
  397. package/dist/content/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +0 -419
  398. package/dist/content/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +0 -508
  399. package/dist/content/content/specialists/Especialista em UX Design.md +0 -453
  400. package/dist/content/content/specialists/INDEX.md +0 -43
  401. package/dist/content/content/templates/PRD.md +0 -165
  402. package/dist/content/content/templates/README.md +0 -65
  403. package/dist/content/content/templates/adr.md +0 -103
  404. package/dist/content/content/templates/arquitetura.md +0 -279
  405. package/dist/content/content/templates/backlog.md +0 -185
  406. package/dist/content/content/templates/checklist-seguranca.md +0 -180
  407. package/dist/content/content/templates/contexto.md +0 -120
  408. package/dist/content/content/templates/criterios-aceite.md +0 -99
  409. package/dist/content/content/templates/design-banco.md +0 -270
  410. package/dist/content/content/templates/design-doc.md +0 -240
  411. package/dist/content/content/templates/feature.md +0 -88
  412. package/dist/content/content/templates/historia-backend.md +0 -84
  413. package/dist/content/content/templates/historia-frontend.md +0 -75
  414. package/dist/content/content/templates/historia-usuario.md +0 -125
  415. package/dist/content/content/templates/mapa-navegacao.md +0 -133
  416. package/dist/content/content/templates/matriz-rastreabilidade.md +0 -121
  417. package/dist/content/content/templates/modelo-dominio.md +0 -219
  418. package/dist/content/content/templates/plano-testes.md +0 -199
  419. package/dist/content/content/templates/prototipo-stitch.md +0 -138
  420. package/dist/content/content/templates/requisitos.md +0 -162
  421. package/dist/content/content/templates/slo-sli.md +0 -197
  422. package/dist/content/content/workflows/README-MCP.md +0 -363
  423. package/dist/content/content/workflows/brainstorm.md +0 -113
  424. package/dist/content/content/workflows/create.md +0 -59
  425. package/dist/content/content/workflows/debug.md +0 -103
  426. package/dist/content/content/workflows/deploy.md +0 -176
  427. package/dist/content/content/workflows/enhance.md +0 -63
  428. package/dist/content/content/workflows/mcp-debug.md +0 -506
  429. package/dist/content/content/workflows/mcp-feature.md +0 -385
  430. package/dist/content/content/workflows/mcp-gate.md +0 -413
  431. package/dist/content/content/workflows/mcp-next.md +0 -388
  432. package/dist/content/content/workflows/mcp-refactor.md +0 -600
  433. package/dist/content/content/workflows/mcp-start.md +0 -304
  434. package/dist/content/content/workflows/mcp-status.md +0 -400
  435. package/dist/content/content/workflows/orchestrate.md +0 -237
  436. package/dist/content/content/workflows/plan.md +0 -89
  437. package/dist/content/content/workflows/preview.md +0 -81
  438. package/dist/content/content/workflows/status.md +0 -86
  439. package/dist/content/content/workflows/test.md +0 -144
  440. package/dist/content/content/workflows/ui-ux-pro-max.md +0 -296
@@ -1,61 +0,0 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Setup,Use CLI for installation,Install components via shadcn CLI for proper setup,npx shadcn@latest add component-name,Manual copy-paste from docs,npx shadcn@latest add button,Copy component code manually,High,https://ui.shadcn.com/docs/cli
3
- 2,Setup,Initialize project properly,Run init command to set up components.json and globals.css,npx shadcn@latest init before adding components,Skip init and add components directly,npx shadcn@latest init,npx shadcn@latest add button (without init),High,https://ui.shadcn.com/docs/installation
4
- 3,Setup,Configure path aliases,Set up proper import aliases in tsconfig and components.json,Use @/components/ui path aliases,Relative imports like ../../components,import { Button } from "@/components/ui/button",import { Button } from "../../components/ui/button",Medium,https://ui.shadcn.com/docs/installation
5
- 4,Theming,Use CSS variables for colors,Define colors as CSS variables in globals.css for theming,CSS variables in :root and .dark,Hardcoded color values in components,bg-primary text-primary-foreground,bg-blue-500 text-white,High,https://ui.shadcn.com/docs/theming
6
- 5,Theming,Follow naming convention,Use semantic color names with foreground pattern,primary/primary-foreground secondary/secondary-foreground,Generic color names,--primary --primary-foreground,--blue --light-blue,Medium,https://ui.shadcn.com/docs/theming
7
- 6,Theming,Support dark mode,Include .dark class styles for all custom CSS,Define both :root and .dark color schemes,Only light mode colors,.dark { --background: 240 10% 3.9%; },No .dark class styles,High,https://ui.shadcn.com/docs/dark-mode
8
- 7,Components,Use component variants,Leverage cva variants for consistent styling,Use variant prop for different styles,Inline conditional classes,<Button variant="destructive">,<Button className={isError ? "bg-red-500" : "bg-blue-500"}>,Medium,https://ui.shadcn.com/docs/components/button
9
- 8,Components,Compose with className,Add custom classes via className prop for overrides,Extend with className for one-off customizations,Modify component source directly,<Button className="w-full">,Edit button.tsx to add w-full,Medium,https://ui.shadcn.com/docs/components/button
10
- 9,Components,Use size variants consistently,Apply size prop for consistent sizing across components,size="sm" size="lg" for sizing,Mix size classes inconsistently,<Button size="lg">,<Button className="text-lg px-8 py-4">,Medium,https://ui.shadcn.com/docs/components/button
11
- 10,Components,Prefer compound components,Use provided sub-components for complex UI,Card + CardHeader + CardContent pattern,Single component with many props,<Card><CardHeader><CardTitle>,<Card title="x" content="y" footer="z">,Medium,https://ui.shadcn.com/docs/components/card
12
- 11,Dialog,Use Dialog for modal content,Dialog component for overlay modal windows,Dialog for confirmations forms details,Alert for modal content,<Dialog><DialogContent>,<Alert> styled as modal,High,https://ui.shadcn.com/docs/components/dialog
13
- 12,Dialog,Handle dialog state properly,Use open and onOpenChange for controlled dialogs,Controlled state with useState,Uncontrolled with default open only,"<Dialog open={open} onOpenChange={setOpen}>","<Dialog defaultOpen={true}>",Medium,https://ui.shadcn.com/docs/components/dialog
14
- 13,Dialog,Include proper dialog structure,Use DialogHeader DialogTitle DialogDescription,Complete semantic structure,Missing title or description,<DialogHeader><DialogTitle><DialogDescription>,<DialogContent><p>Content</p></DialogContent>,High,https://ui.shadcn.com/docs/components/dialog
15
- 14,Sheet,Use Sheet for side panels,Sheet component for slide-out panels and drawers,Sheet for navigation filters settings,Dialog for side content,<Sheet side="right">,<Dialog> with slide animation,Medium,https://ui.shadcn.com/docs/components/sheet
16
- 15,Sheet,Specify sheet side,Set side prop for sheet slide direction,Explicit side="left" or side="right",Default side without consideration,<Sheet><SheetContent side="left">,<Sheet><SheetContent>,Low,https://ui.shadcn.com/docs/components/sheet
17
- 16,Form,Use Form with react-hook-form,Integrate Form component with react-hook-form for validation,useForm + Form + FormField pattern,Custom form handling without Form,<Form {...form}><FormField control={form.control}>,<form onSubmit={handleSubmit}>,High,https://ui.shadcn.com/docs/components/form
18
- 17,Form,Use FormField for inputs,Wrap inputs in FormField for proper labeling and errors,FormField + FormItem + FormLabel + FormControl,Input without FormField wrapper,<FormField><FormItem><FormLabel><FormControl><Input>,<Input onChange={...}>,High,https://ui.shadcn.com/docs/components/form
19
- 18,Form,Display form messages,Use FormMessage for validation error display,FormMessage after FormControl,Custom error text without FormMessage,<FormControl><Input/></FormControl><FormMessage/>,<Input/>{error && <span>{error}</span>},Medium,https://ui.shadcn.com/docs/components/form
20
- 19,Form,Use Zod for validation,Define form schema with Zod for type-safe validation,zodResolver with form schema,Manual validation logic,zodResolver(formSchema),validate: (values) => { if (!values.email) },Medium,https://ui.shadcn.com/docs/components/form
21
- 20,Select,Use Select for dropdowns,Select component for option selection,Select for choosing from list,Native select element,<Select><SelectTrigger><SelectContent>,<select><option>,Medium,https://ui.shadcn.com/docs/components/select
22
- 21,Select,Structure Select properly,Include Trigger Value Content and Items,Complete Select structure,Missing SelectValue or SelectContent,<SelectTrigger><SelectValue/></SelectTrigger><SelectContent><SelectItem>,<Select><option>,High,https://ui.shadcn.com/docs/components/select
23
- 22,Command,Use Command for search,Command component for searchable lists and palettes,Command for command palette search,Input with custom dropdown,<Command><CommandInput><CommandList>,<Input><div className="dropdown">,Medium,https://ui.shadcn.com/docs/components/command
24
- 23,Command,Group command items,Use CommandGroup for categorized items,CommandGroup with heading for sections,Flat list without grouping,<CommandGroup heading="Suggestions"><CommandItem>,<CommandItem> without groups,Low,https://ui.shadcn.com/docs/components/command
25
- 24,Table,Use Table for data display,Table component for structured data,Table for tabular data display,Div grid for table-like layouts,<Table><TableHeader><TableBody><TableRow>,<div className="grid">,Medium,https://ui.shadcn.com/docs/components/table
26
- 25,Table,Include proper table structure,Use TableHeader TableBody TableRow TableCell,Semantic table structure,Missing thead or tbody,<TableHeader><TableRow><TableHead>,<Table><TableRow> without header,High,https://ui.shadcn.com/docs/components/table
27
- 26,DataTable,Use DataTable for complex tables,Combine Table with TanStack Table for features,DataTable pattern for sorting filtering pagination,Custom table implementation,useReactTable + Table components,Custom sort filter pagination logic,Medium,https://ui.shadcn.com/docs/components/data-table
28
- 27,Tabs,Use Tabs for content switching,Tabs component for tabbed interfaces,Tabs for related content sections,Custom tab implementation,<Tabs><TabsList><TabsTrigger><TabsContent>,<div onClick={() => setTab(...)},Medium,https://ui.shadcn.com/docs/components/tabs
29
- 28,Tabs,Set default tab value,Specify defaultValue for initial tab,defaultValue on Tabs component,No default leaving first tab,<Tabs defaultValue="account">,<Tabs> without defaultValue,Low,https://ui.shadcn.com/docs/components/tabs
30
- 29,Accordion,Use Accordion for collapsible,Accordion for expandable content sections,Accordion for FAQ settings panels,Custom collapse implementation,<Accordion><AccordionItem><AccordionTrigger>,<div onClick={() => setOpen(!open)}>,Medium,https://ui.shadcn.com/docs/components/accordion
31
- 30,Accordion,Choose accordion type,Use type="single" or type="multiple" appropriately,type="single" for one open type="multiple" for many,Default type without consideration,<Accordion type="single" collapsible>,<Accordion> without type,Low,https://ui.shadcn.com/docs/components/accordion
32
- 31,Toast,Use Sonner for toasts,Sonner integration for toast notifications,toast() from sonner for notifications,Custom toast implementation,toast("Event created"),setShowToast(true),Medium,https://ui.shadcn.com/docs/components/sonner
33
- 32,Toast,Add Toaster to layout,Include Toaster component in root layout,<Toaster /> in app layout,Toaster in individual pages,app/layout.tsx: <Toaster />,page.tsx: <Toaster />,High,https://ui.shadcn.com/docs/components/sonner
34
- 33,Toast,Use toast variants,Apply toast.success toast.error for context,Semantic toast methods,Generic toast for all messages,toast.success("Saved!") toast.error("Failed"),toast("Saved!") toast("Failed"),Medium,https://ui.shadcn.com/docs/components/sonner
35
- 34,Popover,Use Popover for floating content,Popover for dropdown menus and floating panels,Popover for contextual actions,Absolute positioned divs,<Popover><PopoverTrigger><PopoverContent>,<div className="relative"><div className="absolute">,Medium,https://ui.shadcn.com/docs/components/popover
36
- 35,Popover,Handle popover alignment,Use align and side props for positioning,Explicit alignment configuration,Default alignment for all,<PopoverContent align="start" side="bottom">,<PopoverContent>,Low,https://ui.shadcn.com/docs/components/popover
37
- 36,DropdownMenu,Use DropdownMenu for actions,DropdownMenu for action lists and context menus,DropdownMenu for user menu actions,Popover for action lists,<DropdownMenu><DropdownMenuTrigger><DropdownMenuContent>,<Popover> for menu actions,Medium,https://ui.shadcn.com/docs/components/dropdown-menu
38
- 37,DropdownMenu,Group menu items,Use DropdownMenuGroup and DropdownMenuSeparator,Organized menu with separators,Flat list of items,<DropdownMenuGroup><DropdownMenuItem><DropdownMenuSeparator>,<DropdownMenuItem> without organization,Low,https://ui.shadcn.com/docs/components/dropdown-menu
39
- 38,Tooltip,Use Tooltip for hints,Tooltip for icon buttons and truncated text,Tooltip for additional context,Title attribute for tooltips,<Tooltip><TooltipTrigger><TooltipContent>,<button title="Delete">,Medium,https://ui.shadcn.com/docs/components/tooltip
40
- 39,Tooltip,Add TooltipProvider,Wrap app or section in TooltipProvider,TooltipProvider at app level,TooltipProvider per tooltip,<TooltipProvider><App/></TooltipProvider>,<Tooltip><TooltipProvider>,High,https://ui.shadcn.com/docs/components/tooltip
41
- 40,Skeleton,Use Skeleton for loading,Skeleton component for loading placeholders,Skeleton matching content layout,Spinner for content loading,<Skeleton className="h-4 w-[200px]"/>,<Spinner/> for card loading,Medium,https://ui.shadcn.com/docs/components/skeleton
42
- 41,Skeleton,Match skeleton dimensions,Size skeleton to match loaded content,Skeleton same size as expected content,Generic skeleton size,<Skeleton className="h-12 w-12 rounded-full"/>,<Skeleton/> without sizing,Medium,https://ui.shadcn.com/docs/components/skeleton
43
- 42,AlertDialog,Use AlertDialog for confirms,AlertDialog for destructive action confirmation,AlertDialog for delete confirmations,Dialog for confirmations,<AlertDialog><AlertDialogTrigger><AlertDialogContent>,<Dialog> for delete confirmation,High,https://ui.shadcn.com/docs/components/alert-dialog
44
- 43,AlertDialog,Include action buttons,Use AlertDialogAction and AlertDialogCancel,Standard confirm/cancel pattern,Custom buttons in AlertDialog,<AlertDialogCancel>Cancel</AlertDialogCancel><AlertDialogAction>,<Button>Cancel</Button><Button>Confirm</Button>,Medium,https://ui.shadcn.com/docs/components/alert-dialog
45
- 44,Sidebar,Use Sidebar for navigation,Sidebar component for app navigation,Sidebar for main app navigation,Custom sidebar implementation,<SidebarProvider><Sidebar><SidebarContent>,<div className="w-64 fixed">,Medium,https://ui.shadcn.com/docs/components/sidebar
46
- 45,Sidebar,Wrap in SidebarProvider,Use SidebarProvider for sidebar state management,SidebarProvider at layout level,Sidebar without provider,<SidebarProvider><Sidebar></SidebarProvider>,<Sidebar> without provider,High,https://ui.shadcn.com/docs/components/sidebar
47
- 46,Sidebar,Use SidebarTrigger,Include SidebarTrigger for mobile toggle,SidebarTrigger for responsive toggle,Custom toggle button,<SidebarTrigger/>,<Button onClick={() => toggleSidebar()}>,Medium,https://ui.shadcn.com/docs/components/sidebar
48
- 47,Chart,Use Chart for data viz,Chart component with Recharts integration,Chart component for dashboards,Direct Recharts without wrapper,<ChartContainer config={chartConfig}>,<ResponsiveContainer><BarChart>,Medium,https://ui.shadcn.com/docs/components/chart
49
- 48,Chart,Define chart config,Create chartConfig for consistent theming,chartConfig with color definitions,Inline colors in charts,"{ desktop: { label: ""Desktop"", color: ""#2563eb"" } }",<Bar fill="#2563eb"/>,Medium,https://ui.shadcn.com/docs/components/chart
50
- 49,Chart,Use ChartTooltip,Apply ChartTooltip for interactive charts,ChartTooltip with ChartTooltipContent,Recharts Tooltip directly,<ChartTooltip content={<ChartTooltipContent/>}/>,<Tooltip/> from recharts,Low,https://ui.shadcn.com/docs/components/chart
51
- 50,Blocks,Use blocks for scaffolding,Start from shadcn blocks for common layouts,npx shadcn@latest add dashboard-01,Build dashboard from scratch,npx shadcn@latest add login-01,Custom login page from scratch,Medium,https://ui.shadcn.com/blocks
52
- 51,Blocks,Customize block components,Modify copied block code to fit needs,Edit block files after installation,Use blocks without modification,Customize dashboard-01 layout,Use dashboard-01 as-is,Low,https://ui.shadcn.com/blocks
53
- 52,A11y,Use semantic components,Shadcn components have built-in ARIA,Rely on component accessibility,Override ARIA attributes,<Button> has button role,<div role="button">,High,https://ui.shadcn.com/docs/components/button
54
- 53,A11y,Maintain focus management,Dialog Sheet handle focus automatically,Let components manage focus,Custom focus handling,<Dialog> traps focus,document.querySelector().focus(),High,https://ui.shadcn.com/docs/components/dialog
55
- 54,A11y,Provide labels,Use FormLabel and aria-label appropriately,FormLabel for form inputs,Placeholder as only label,<FormLabel>Email</FormLabel><Input/>,<Input placeholder="Email"/>,High,https://ui.shadcn.com/docs/components/form
56
- 55,Performance,Import components individually,Import only needed components,Named imports from component files,Import all from index,import { Button } from "@/components/ui/button",import { Button Card Dialog } from "@/components/ui",Medium,
57
- 56,Performance,Lazy load dialogs,Dynamic import for heavy dialog content,React.lazy for dialog content,Import all dialogs upfront,const HeavyContent = lazy(() => import('./Heavy')),import HeavyContent from './Heavy',Medium,
58
- 57,Customization,Extend variants with cva,Add new variants using class-variance-authority,Extend buttonVariants for new styles,Inline classes for variants,"variants: { size: { xl: ""h-14 px-8"" } }",className="h-14 px-8",Medium,https://ui.shadcn.com/docs/components/button
59
- 58,Customization,Create custom components,Build new components following shadcn patterns,Use cn() and cva for custom components,Different patterns for custom,const Custom = ({ className }) => <div className={cn("base" className)}>,const Custom = ({ style }) => <div style={style}>,Medium,
60
- 59,Patterns,Use asChild for composition,asChild prop for component composition,Slot pattern with asChild,Wrapper divs for composition,<Button asChild><Link href="/">,<Button><Link href="/"></Link></Button>,Medium,https://ui.shadcn.com/docs/components/button
61
- 60,Patterns,Combine with React Hook Form,Form + useForm for complete forms,RHF Controller with shadcn inputs,Custom form state management,<FormField control={form.control} name="email">,<Input value={email} onChange={(e) => setEmail(e.target.value)},High,https://ui.shadcn.com/docs/components/form
@@ -1,54 +0,0 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Reactivity,Use $: for reactive statements,Automatic dependency tracking,$: for derived values,Manual recalculation,$: doubled = count * 2,let doubled; count && (doubled = count * 2),Medium,https://svelte.dev/docs/svelte-components#script-3-$-marks-a-statement-as-reactive
3
- 2,Reactivity,Trigger reactivity with assignment,Svelte tracks assignments not mutations,Reassign arrays/objects to trigger update,Mutate without reassignment,"items = [...items, newItem]",items.push(newItem),High,https://svelte.dev/docs/svelte-components#script-2-assignments-are-reactive
4
- 3,Reactivity,Use $state in Svelte 5,Runes for explicit reactivity,let count = $state(0),Implicit reactivity in Svelte 5,let count = $state(0),let count = 0 (Svelte 5),Medium,https://svelte.dev/blog/runes
5
- 4,Reactivity,Use $derived for computed values,$derived replaces $: in Svelte 5,let doubled = $derived(count * 2),$: in Svelte 5,let doubled = $derived(count * 2),$: doubled = count * 2 (Svelte 5),Medium,
6
- 5,Reactivity,Use $effect for side effects,$effect replaces $: side effects,Use $effect for subscriptions,$: for side effects in Svelte 5,$effect(() => console.log(count)),$: console.log(count) (Svelte 5),Medium,
7
- 6,Props,Export let for props,Declare props with export let,export let propName,Props without export,export let count = 0,let count = 0,High,https://svelte.dev/docs/svelte-components#script-1-export-creates-a-component-prop
8
- 7,Props,Use $props in Svelte 5,$props rune for prop access,let { name } = $props(),export let in Svelte 5,"let { name, age = 0 } = $props()",export let name; export let age = 0,Medium,
9
- 8,Props,Provide default values,Default props with assignment,export let count = 0,Required props without defaults,export let count = 0,export let count,Low,
10
- 9,Props,Use spread props,Pass through unknown props,{...$$restProps} on elements,Manual prop forwarding,<button {...$$restProps}>,<button class={$$props.class}>,Low,https://svelte.dev/docs/basic-markup#attributes-and-props
11
- 10,Bindings,Use bind: for two-way binding,Simplified input handling,bind:value for inputs,on:input with manual update,<input bind:value={name}>,<input value={name} on:input={e => name = e.target.value}>,Low,https://svelte.dev/docs/element-directives#bind-property
12
- 11,Bindings,Bind to DOM elements,Reference DOM nodes,bind:this for element reference,querySelector in onMount,<div bind:this={el}>,onMount(() => el = document.querySelector()),Medium,
13
- 12,Bindings,Use bind:group for radios/checkboxes,Simplified group handling,bind:group for radio/checkbox groups,Manual checked handling,"<input type=""radio"" bind:group={selected}>","<input type=""radio"" checked={selected === value}>",Low,
14
- 13,Events,Use on: for event handlers,Event directive syntax,on:click={handler},addEventListener in onMount,<button on:click={handleClick}>,onMount(() => btn.addEventListener()),Medium,https://svelte.dev/docs/element-directives#on-eventname
15
- 14,Events,Forward events with on:event,Pass events to parent,on:click without handler,createEventDispatcher for DOM events,<button on:click>,"dispatch('click', event)",Low,
16
- 15,Events,Use createEventDispatcher,Custom component events,dispatch for custom events,on:event for custom events,"dispatch('save', { data })",on:save without dispatch,Medium,https://svelte.dev/docs/svelte#createeventdispatcher
17
- 16,Lifecycle,Use onMount for initialization,Run code after component mounts,onMount for setup and data fetching,Code in script body for side effects,onMount(() => fetchData()),fetchData() in script body,High,https://svelte.dev/docs/svelte#onmount
18
- 17,Lifecycle,Return cleanup from onMount,Automatic cleanup on destroy,Return function from onMount,Separate onDestroy for paired cleanup,onMount(() => { sub(); return unsub }),onMount(sub); onDestroy(unsub),Medium,
19
- 18,Lifecycle,Use onDestroy sparingly,Only when onMount cleanup not possible,onDestroy for non-mount cleanup,onDestroy for mount-related cleanup,onDestroy for store unsubscribe,onDestroy(() => clearInterval(id)),Low,
20
- 19,Lifecycle,Avoid beforeUpdate/afterUpdate,Usually not needed,Reactive statements instead,beforeUpdate for derived state,$: if (x) doSomething(),beforeUpdate(() => doSomething()),Low,
21
- 20,Stores,Use writable for mutable state,Basic reactive store,writable for shared mutable state,Local variables for shared state,const count = writable(0),let count = 0 in module,Medium,https://svelte.dev/docs/svelte-store#writable
22
- 21,Stores,Use readable for read-only state,External data sources,readable for derived/external data,writable for read-only data,"readable(0, set => interval(set))",writable(0) for timer,Low,https://svelte.dev/docs/svelte-store#readable
23
- 22,Stores,Use derived for computed stores,Combine or transform stores,derived for computed values,Manual subscription for derived,"derived(count, $c => $c * 2)",count.subscribe(c => doubled = c * 2),Medium,https://svelte.dev/docs/svelte-store#derived
24
- 23,Stores,Use $ prefix for auto-subscription,Automatic subscribe/unsubscribe,$storeName in components,Manual subscription,{$count},count.subscribe(c => value = c),High,
25
- 24,Stores,Clean up custom subscriptions,Unsubscribe when component destroys,Return unsubscribe from onMount,Leave subscriptions open,onMount(() => store.subscribe(fn)),store.subscribe(fn) in script,High,
26
- 25,Slots,Use slots for composition,Content projection,<slot> for flexible content,Props for all content,<slot>Default</slot>,"<Component content=""text""/>",Medium,https://svelte.dev/docs/special-elements#slot
27
- 26,Slots,Name slots for multiple areas,Multiple content areas,"<slot name=""header"">",Single slot for complex layouts,"<slot name=""header""><slot name=""footer"">",<slot> with complex conditionals,Low,
28
- 27,Slots,Check slot content with $$slots,Conditional slot rendering,$$slots.name for conditional rendering,Always render slot wrapper,"{#if $$slots.footer}<slot name=""footer""/>{/if}","<div><slot name=""footer""/></div>",Low,
29
- 28,Styling,Use scoped styles by default,Styles scoped to component,<style> for component styles,Global styles for component,:global() only when needed,<style> all global,Medium,https://svelte.dev/docs/svelte-components#style
30
- 29,Styling,Use :global() sparingly,Escape scoping when needed,:global for third-party styling,Global for all styles,:global(.external-lib),<style> without scoping,Medium,
31
- 30,Styling,Use CSS variables for theming,Dynamic styling,CSS custom properties,Inline styles for themes,"style=""--color: {color}""","style=""color: {color}""",Low,
32
- 31,Transitions,Use built-in transitions,Svelte transition directives,transition:fade for simple effects,Manual CSS transitions,<div transition:fade>,<div class:fade={visible}>,Low,https://svelte.dev/docs/element-directives#transition-fn
33
- 32,Transitions,Use in: and out: separately,Different enter/exit animations,in:fly out:fade for asymmetric,Same transition for both,<div in:fly out:fade>,<div transition:fly>,Low,
34
- 33,Transitions,Add local modifier,Prevent ancestor trigger,transition:fade|local,Global transitions for lists,<div transition:slide|local>,<div transition:slide>,Medium,
35
- 34,Actions,Use actions for DOM behavior,Reusable DOM logic,use:action for DOM enhancements,onMount for each usage,<div use:clickOutside>,onMount(() => setupClickOutside(el)),Medium,https://svelte.dev/docs/element-directives#use-action
36
- 35,Actions,Return update and destroy,Lifecycle methods for actions,"Return { update, destroy }",Only initial setup,"return { update(params) {}, destroy() {} }",return destroy only,Medium,
37
- 36,Actions,Pass parameters to actions,Configure action behavior,use:action={params},Hardcoded action behavior,<div use:tooltip={options}>,<div use:tooltip>,Low,
38
- 37,Logic,Use {#if} for conditionals,Template conditionals,{#if} {:else if} {:else},Ternary in expressions,{#if cond}...{:else}...{/if},{cond ? a : b} for complex,Low,https://svelte.dev/docs/logic-blocks#if
39
- 38,Logic,Use {#each} for lists,List rendering,{#each} with key,Map in expression,{#each items as item (item.id)},{items.map(i => `<div>${i}</div>`)},Medium,
40
- 39,Logic,Always use keys in {#each},Proper list reconciliation,(item.id) for unique key,Index as key or no key,{#each items as item (item.id)},"{#each items as item, i (i)}",High,
41
- 40,Logic,Use {#await} for promises,Handle async states,{#await} for loading/error states,Manual promise handling,{#await promise}...{:then}...{:catch},{#if loading}...{#if error},Medium,https://svelte.dev/docs/logic-blocks#await
42
- 41,SvelteKit,Use +page.svelte for routes,File-based routing,+page.svelte for route components,Custom routing setup,routes/about/+page.svelte,routes/About.svelte,Medium,https://kit.svelte.dev/docs/routing
43
- 42,SvelteKit,Use +page.js for data loading,Load data before render,load function in +page.js,onMount for data fetching,export function load() {},onMount(() => fetchData()),High,https://kit.svelte.dev/docs/load
44
- 43,SvelteKit,Use +page.server.js for server-only,Server-side data loading,+page.server.js for sensitive data,+page.js for API keys,+page.server.js with DB access,+page.js with DB access,High,
45
- 44,SvelteKit,Use form actions,Server-side form handling,+page.server.js actions,API routes for forms,export const actions = { default },fetch('/api/submit'),Medium,https://kit.svelte.dev/docs/form-actions
46
- 45,SvelteKit,Use $app/stores for app state,$page $navigating $updated,$page for current page data,Manual URL parsing,import { page } from '$app/stores',window.location.pathname,Medium,https://kit.svelte.dev/docs/modules#$app-stores
47
- 46,Performance,Use {#key} for forced re-render,Reset component state,{#key id} for fresh instance,Manual destroy/create,{#key item.id}<Component/>{/key},on:change={() => component = null},Low,https://svelte.dev/docs/logic-blocks#key
48
- 47,Performance,Avoid unnecessary reactivity,Not everything needs $:,$: only for side effects,$: for simple assignments,$: if (x) console.log(x),$: y = x (when y = x works),Low,
49
- 48,Performance,Use immutable compiler option,Skip equality checks,immutable: true for large lists,Default for all components,<svelte:options immutable/>,Default without immutable,Low,
50
- 49,TypeScript,"Use lang=""ts"" in script",TypeScript support,"<script lang=""ts"">",JavaScript for typed projects,"<script lang=""ts"">",<script> with JSDoc,Medium,https://svelte.dev/docs/typescript
51
- 50,TypeScript,Type props with interface,Explicit prop types,interface $$Props for types,Untyped props,interface $$Props { name: string },export let name,Medium,
52
- 51,TypeScript,Type events with createEventDispatcher,Type-safe events,createEventDispatcher<Events>(),Untyped dispatch,createEventDispatcher<{ save: Data }>(),createEventDispatcher(),Medium,
53
- 52,Accessibility,Use semantic elements,Proper HTML in templates,button nav main appropriately,div for everything,<button on:click>,<div on:click>,High,
54
- 53,Accessibility,Add aria to dynamic content,Accessible state changes,aria-live for updates,Silent dynamic updates,"<div aria-live=""polite"">{message}</div>",<div>{message}</div>,Medium,
@@ -1,51 +0,0 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Views,Use struct for views,SwiftUI views are value types,struct MyView: View,class MyView: View,struct ContentView: View { var body: some View },class ContentView: View,High,https://developer.apple.com/documentation/swiftui/view
3
- 2,Views,Keep views small and focused,Single responsibility for each view,Extract subviews for complex layouts,Large monolithic views,Extract HeaderView FooterView,500+ line View struct,Medium,
4
- 3,Views,Use body computed property,body returns the view hierarchy,var body: some View { },func body() -> some View,"var body: some View { Text(""Hello"") }",func body() -> Text,High,
5
- 4,Views,Prefer composition over inheritance,Compose views using ViewBuilder,Combine smaller views,Inheritance hierarchies,VStack { Header() Content() },class SpecialView extends BaseView,Medium,
6
- 5,State,Use @State for local state,Simple value types owned by view,@State for view-local primitives,@State for shared data,@State private var count = 0,@State var sharedData: Model,High,https://developer.apple.com/documentation/swiftui/state
7
- 6,State,Use @Binding for two-way data,Pass mutable state to child views,@Binding for child input,@State in child for parent data,@Binding var isOn: Bool,$isOn to pass binding,Medium,https://developer.apple.com/documentation/swiftui/binding
8
- 7,State,Use @StateObject for reference types,ObservableObject owned by view,@StateObject for view-created objects,@ObservedObject for owned objects,@StateObject private var vm = ViewModel(),@ObservedObject var vm = ViewModel(),High,https://developer.apple.com/documentation/swiftui/stateobject
9
- 8,State,Use @ObservedObject for injected objects,Reference types passed from parent,@ObservedObject for injected dependencies,@StateObject for injected objects,@ObservedObject var vm: ViewModel,@StateObject var vm: ViewModel (injected),High,https://developer.apple.com/documentation/swiftui/observedobject
10
- 9,State,Use @EnvironmentObject for shared state,App-wide state injection,@EnvironmentObject for global state,Prop drilling through views,@EnvironmentObject var settings: Settings,Pass settings through 5 views,Medium,https://developer.apple.com/documentation/swiftui/environmentobject
11
- 10,State,Use @Published in ObservableObject,Automatically publish property changes,@Published for observed properties,Manual objectWillChange calls,@Published var items: [Item] = [],var items: [Item] { didSet { objectWillChange.send() } },Medium,
12
- 11,Observable,Use @Observable macro (iOS 17+),Modern observation without Combine,@Observable class for view models,ObservableObject for new projects,@Observable class ViewModel { },class ViewModel: ObservableObject,Medium,https://developer.apple.com/documentation/observation
13
- 12,Observable,Use @Bindable for @Observable,Create bindings from @Observable,@Bindable var vm for bindings,@Binding with @Observable,@Bindable var viewModel,$viewModel.name with @Observable,Medium,
14
- 13,Layout,Use VStack HStack ZStack,Standard stack-based layouts,Stacks for linear arrangements,GeometryReader for simple layouts,VStack { Text() Image() },GeometryReader for vertical list,Medium,https://developer.apple.com/documentation/swiftui/vstack
15
- 14,Layout,Use LazyVStack LazyHStack for lists,Lazy loading for performance,Lazy stacks for long lists,Regular stacks for 100+ items,LazyVStack { ForEach(items) },VStack { ForEach(largeArray) },High,https://developer.apple.com/documentation/swiftui/lazyvstack
16
- 15,Layout,Use GeometryReader sparingly,Only when needed for sizing,GeometryReader for responsive layouts,GeometryReader everywhere,GeometryReader for aspect ratio,GeometryReader wrapping everything,Medium,
17
- 16,Layout,Use spacing and padding consistently,Consistent spacing throughout app,Design system spacing values,Magic numbers for spacing,.padding(16) or .padding(),".padding(13), .padding(17)",Low,
18
- 17,Layout,Use frame modifiers correctly,Set explicit sizes when needed,.frame(maxWidth: .infinity),Fixed sizes for responsive content,.frame(maxWidth: .infinity),.frame(width: 375),Medium,
19
- 18,Modifiers,Order modifiers correctly,Modifier order affects rendering,Background before padding for full coverage,Wrong modifier order,.padding().background(Color.red),.background(Color.red).padding(),High,
20
- 19,Modifiers,Create custom ViewModifiers,Reusable modifier combinations,ViewModifier for repeated styling,Duplicate modifier chains,struct CardStyle: ViewModifier,.shadow().cornerRadius() everywhere,Medium,https://developer.apple.com/documentation/swiftui/viewmodifier
21
- 20,Modifiers,Use conditional modifiers carefully,Avoid changing view identity,if-else with same view type,Conditional that changes view identity,Text(title).foregroundColor(isActive ? .blue : .gray),if isActive { Text().bold() } else { Text() },Medium,
22
- 21,Navigation,Use NavigationStack (iOS 16+),Modern navigation with type-safe paths,NavigationStack with navigationDestination,NavigationView for new projects,NavigationStack { },NavigationView { } (deprecated),Medium,https://developer.apple.com/documentation/swiftui/navigationstack
23
- 22,Navigation,Use navigationDestination,Type-safe navigation destinations,.navigationDestination(for:),NavigationLink(destination:),.navigationDestination(for: Item.self),NavigationLink(destination: DetailView()),Medium,
24
- 23,Navigation,Use @Environment for dismiss,Programmatic navigation dismissal,@Environment(\.dismiss) var dismiss,presentationMode (deprecated),@Environment(\.dismiss) var dismiss,@Environment(\.presentationMode),Low,
25
- 24,Lists,Use List for scrollable content,Built-in scrolling and styling,List for standard scrollable content,ScrollView + VStack for simple lists,List { ForEach(items) { } },ScrollView { VStack { ForEach } },Low,https://developer.apple.com/documentation/swiftui/list
26
- 25,Lists,Provide stable identifiers,Use Identifiable or explicit id,Identifiable protocol or id parameter,Index as identifier,ForEach(items) where Item: Identifiable,"ForEach(items.indices, id: \.self)",High,
27
- 26,Lists,Use onDelete and onMove,Standard list editing,onDelete for swipe to delete,Custom delete implementation,.onDelete(perform: delete),.onTapGesture for delete,Low,
28
- 27,Forms,Use Form for settings,Grouped input controls,Form for settings screens,Manual grouping for forms,Form { Section { Toggle() } },VStack { Toggle() },Low,https://developer.apple.com/documentation/swiftui/form
29
- 28,Forms,Use @FocusState for keyboard,Manage keyboard focus,@FocusState for text field focus,Manual first responder handling,@FocusState private var isFocused: Bool,UIKit first responder,Medium,https://developer.apple.com/documentation/swiftui/focusstate
30
- 29,Forms,Validate input properly,Show validation feedback,Real-time validation feedback,Submit without validation,TextField with validation state,TextField without error handling,Medium,
31
- 30,Async,Use .task for async work,Automatic cancellation on view disappear,.task for view lifecycle async,onAppear with Task,.task { await loadData() },onAppear { Task { await loadData() } },Medium,https://developer.apple.com/documentation/swiftui/view/task(priority:_:)
32
- 31,Async,Handle loading states,Show progress during async operations,ProgressView during loading,Empty view during load,if isLoading { ProgressView() },No loading indicator,Medium,
33
- 32,Async,Use @MainActor for UI updates,Ensure UI updates on main thread,@MainActor on view models,Manual DispatchQueue.main,@MainActor class ViewModel,DispatchQueue.main.async,Medium,
34
- 33,Animation,Use withAnimation,Animate state changes,withAnimation for state transitions,No animation for state changes,withAnimation { isExpanded.toggle() },isExpanded.toggle(),Low,https://developer.apple.com/documentation/swiftui/withanimation(_:_:)
35
- 34,Animation,Use .animation modifier,Apply animations to views,.animation(.spring()) on view,Manual animation timing,.animation(.easeInOut),CABasicAnimation equivalent,Low,
36
- 35,Animation,Respect reduced motion,Check accessibility settings,Check accessibilityReduceMotion,Ignore motion preferences,@Environment(\.accessibilityReduceMotion),Always animate regardless,High,
37
- 36,Preview,Use #Preview macro (Xcode 15+),Modern preview syntax,#Preview for view previews,PreviewProvider protocol,#Preview { ContentView() },struct ContentView_Previews: PreviewProvider,Low,
38
- 37,Preview,Create multiple previews,Test different states and devices,Multiple previews for states,Single preview only,"#Preview(""Light"") { } #Preview(""Dark"") { }",Single preview configuration,Low,
39
- 38,Preview,Use preview data,Dedicated preview mock data,Static preview data,Production data in previews,Item.preview for preview,Fetch real data in preview,Low,
40
- 39,Performance,Avoid expensive body computations,Body should be fast to compute,Precompute in view model,Heavy computation in body,vm.computedValue in body,Complex calculation in body,High,
41
- 40,Performance,Use Equatable views,Skip unnecessary view updates,Equatable for complex views,Default equality for all views,struct MyView: View Equatable,No Equatable conformance,Medium,
42
- 41,Performance,Profile with Instruments,Measure before optimizing,Use SwiftUI Instruments,Guess at performance issues,Profile with Instruments,Optimize without measuring,Medium,
43
- 42,Accessibility,Add accessibility labels,Describe UI elements,.accessibilityLabel for context,Missing labels,".accessibilityLabel(""Close button"")",Button without label,High,https://developer.apple.com/documentation/swiftui/view/accessibilitylabel(_:)-1d7jv
44
- 43,Accessibility,Support Dynamic Type,Respect text size preferences,Scalable fonts and layouts,Fixed font sizes,.font(.body) with Dynamic Type,.font(.system(size: 16)),High,
45
- 44,Accessibility,Use semantic views,Proper accessibility traits,Correct accessibilityTraits,Wrong semantic meaning,Button for actions Image for display,Image that acts like button,Medium,
46
- 45,Testing,Use ViewInspector for testing,Third-party view testing,ViewInspector for unit tests,UI tests only,ViewInspector assertions,Only XCUITest,Medium,
47
- 46,Testing,Test view models,Unit test business logic,XCTest for view model,Skip view model testing,Test ViewModel methods,No unit tests,Medium,
48
- 47,Testing,Use preview as visual test,Previews catch visual regressions,Multiple preview configurations,No visual verification,Preview different states,Single preview only,Low,
49
- 48,Architecture,Use MVVM pattern,Separate view and logic,ViewModel for business logic,Logic in View,ObservableObject ViewModel,@State for complex logic,Medium,
50
- 49,Architecture,Keep views dumb,Views display view model state,View reads from ViewModel,Business logic in View,view.items from vm.items,Complex filtering in View,Medium,
51
- 50,Architecture,Use dependency injection,Inject dependencies for testing,Initialize with dependencies,Hard-coded dependencies,init(service: ServiceProtocol),let service = RealService(),Medium,
@@ -1,50 +0,0 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Composition,Use Composition API for new projects,Composition API offers better TypeScript support and logic reuse,<script setup> for components,Options API for new projects,<script setup>,export default { data() },Medium,https://vuejs.org/guide/extras/composition-api-faq.html
3
- 2,Composition,Use script setup syntax,Cleaner syntax with automatic exports,<script setup> with defineProps,setup() function manually,<script setup>,<script> setup() { return {} },Low,https://vuejs.org/api/sfc-script-setup.html
4
- 3,Reactivity,Use ref for primitives,ref() for primitive values that need reactivity,ref() for strings numbers booleans,reactive() for primitives,const count = ref(0),const count = reactive(0),Medium,https://vuejs.org/guide/essentials/reactivity-fundamentals.html
5
- 4,Reactivity,Use reactive for objects,reactive() for complex objects and arrays,reactive() for objects with multiple properties,ref() for complex objects,const state = reactive({ user: null }),const state = ref({ user: null }),Medium,
6
- 5,Reactivity,Access ref values with .value,Remember .value in script unwrap in template,Use .value in script,Forget .value in script,count.value++,count++ (in script),High,
7
- 6,Reactivity,Use computed for derived state,Computed properties cache and update automatically,computed() for derived values,Methods for derived values,const doubled = computed(() => count.value * 2),const doubled = () => count.value * 2,Medium,https://vuejs.org/guide/essentials/computed.html
8
- 7,Reactivity,Use shallowRef for large objects,Avoid deep reactivity for performance,shallowRef for large data structures,ref for large nested objects,const bigData = shallowRef(largeObject),const bigData = ref(largeObject),Medium,https://vuejs.org/api/reactivity-advanced.html#shallowref
9
- 8,Watchers,Use watchEffect for simple cases,Auto-tracks dependencies,watchEffect for simple reactive effects,watch with explicit deps when not needed,watchEffect(() => console.log(count.value)),"watch(count, (val) => console.log(val))",Low,https://vuejs.org/guide/essentials/watchers.html
10
- 9,Watchers,Use watch for specific sources,Explicit control over what to watch,watch with specific refs,watchEffect for complex conditional logic,"watch(userId, fetchUser)",watchEffect with conditionals,Medium,
11
- 10,Watchers,Clean up side effects,Return cleanup function in watchers,Return cleanup in watchEffect,Leave subscriptions open,watchEffect((onCleanup) => { onCleanup(unsub) }),watchEffect without cleanup,High,
12
- 11,Props,Define props with defineProps,Type-safe prop definitions,defineProps with TypeScript,Props without types,defineProps<{ msg: string }>(),defineProps(['msg']),Medium,https://vuejs.org/guide/typescript/composition-api.html#typing-component-props
13
- 12,Props,Use withDefaults for default values,Provide defaults for optional props,withDefaults with defineProps,Defaults in destructuring,"withDefaults(defineProps<Props>(), { count: 0 })",const { count = 0 } = defineProps(),Medium,
14
- 13,Props,Avoid mutating props,Props should be read-only,Emit events to parent for changes,Direct prop mutation,"emit('update:modelValue', newVal)",props.modelValue = newVal,High,
15
- 14,Emits,Define emits with defineEmits,Type-safe event emissions,defineEmits with types,Emit without definition,defineEmits<{ change: [id: number] }>(),"emit('change', id) without define",Medium,https://vuejs.org/guide/typescript/composition-api.html#typing-component-emits
16
- 15,Emits,Use v-model for two-way binding,Simplified parent-child data flow,v-model with modelValue prop,:value + @input manually,"<Child v-model=""value""/>","<Child :value=""value"" @input=""value = $event""/>",Low,https://vuejs.org/guide/components/v-model.html
17
- 16,Lifecycle,Use onMounted for DOM access,DOM is ready in onMounted,onMounted for DOM operations,Access DOM in setup directly,onMounted(() => el.value.focus()),el.value.focus() in setup,High,https://vuejs.org/api/composition-api-lifecycle.html
18
- 17,Lifecycle,Clean up in onUnmounted,Remove listeners and subscriptions,onUnmounted for cleanup,Leave listeners attached,onUnmounted(() => window.removeEventListener()),No cleanup on unmount,High,
19
- 18,Lifecycle,Avoid onBeforeMount for data,Use onMounted or setup for data fetching,Fetch in onMounted or setup,Fetch in onBeforeMount,onMounted(async () => await fetchData()),onBeforeMount(async () => await fetchData()),Low,
20
- 19,Components,Use single-file components,Keep template script style together,.vue files for components,Separate template/script files,Component.vue with all parts,Component.js + Component.html,Low,
21
- 20,Components,Use PascalCase for components,Consistent component naming,PascalCase in imports and templates,kebab-case in script,<MyComponent/>,<my-component/>,Low,https://vuejs.org/style-guide/rules-strongly-recommended.html
22
- 21,Components,Prefer composition over mixins,Composables replace mixins,Composables for shared logic,Mixins for code reuse,const { data } = useApi(),mixins: [apiMixin],Medium,
23
- 22,Composables,Name composables with use prefix,Convention for composable functions,useFetch useAuth useForm,getData or fetchApi,export function useFetch(),export function fetchData(),Medium,https://vuejs.org/guide/reusability/composables.html
24
- 23,Composables,Return refs from composables,Maintain reactivity when destructuring,Return ref values,Return reactive objects that lose reactivity,return { data: ref(null) },return reactive({ data: null }),Medium,
25
- 24,Composables,Accept ref or value params,Use toValue for flexible inputs,toValue() or unref() for params,Only accept ref or only value,const val = toValue(maybeRef),const val = maybeRef.value,Low,https://vuejs.org/api/reactivity-utilities.html#tovalue
26
- 25,Templates,Use v-bind shorthand,Cleaner template syntax,:prop instead of v-bind:prop,Full v-bind syntax,"<div :class=""cls"">","<div v-bind:class=""cls"">",Low,
27
- 26,Templates,Use v-on shorthand,Cleaner event binding,@event instead of v-on:event,Full v-on syntax,"<button @click=""handler"">","<button v-on:click=""handler"">",Low,
28
- 27,Templates,Avoid v-if with v-for,v-if has higher priority causes issues,Wrap in template or computed filter,v-if on same element as v-for,<template v-for><div v-if>,<div v-for v-if>,High,https://vuejs.org/style-guide/rules-essential.html#avoid-v-if-with-v-for
29
- 28,Templates,Use key with v-for,Proper list rendering and updates,Unique key for each item,Index as key for dynamic lists,"v-for=""item in items"" :key=""item.id""","v-for=""(item, i) in items"" :key=""i""",High,
30
- 29,State,Use Pinia for global state,Official state management for Vue 3,Pinia stores for shared state,Vuex for new projects,const store = useCounterStore(),Vuex with mutations,Medium,https://pinia.vuejs.org/
31
- 30,State,Define stores with defineStore,Composition API style stores,Setup stores with defineStore,Options stores for complex state,"defineStore('counter', () => {})","defineStore('counter', { state })",Low,
32
- 31,State,Use storeToRefs for destructuring,Maintain reactivity when destructuring,storeToRefs(store),Direct destructuring,const { count } = storeToRefs(store),const { count } = store,High,https://pinia.vuejs.org/core-concepts/#destructuring-from-a-store
33
- 32,Routing,Use useRouter and useRoute,Composition API router access,useRouter() useRoute() in setup,this.$router this.$route,const router = useRouter(),this.$router.push(),Medium,https://router.vuejs.org/guide/advanced/composition-api.html
34
- 33,Routing,Lazy load route components,Code splitting for routes,() => import() for components,Static imports for all routes,component: () => import('./Page.vue'),component: Page,Medium,https://router.vuejs.org/guide/advanced/lazy-loading.html
35
- 34,Routing,Use navigation guards,Protect routes and handle redirects,beforeEach for auth checks,Check auth in each component,router.beforeEach((to) => {}),Check auth in onMounted,Medium,
36
- 35,Performance,Use v-once for static content,Skip re-renders for static elements,v-once on never-changing content,v-once on dynamic content,<div v-once>{{ staticText }}</div>,<div v-once>{{ dynamicText }}</div>,Low,https://vuejs.org/api/built-in-directives.html#v-once
37
- 36,Performance,Use v-memo for expensive lists,Memoize list items,v-memo with dependency array,Re-render entire list always,"<div v-for v-memo=""[item.id]"">",<div v-for> without memo,Medium,https://vuejs.org/api/built-in-directives.html#v-memo
38
- 37,Performance,Use shallowReactive for flat objects,Avoid deep reactivity overhead,shallowReactive for flat state,reactive for simple objects,shallowReactive({ count: 0 }),reactive({ count: 0 }),Low,
39
- 38,Performance,Use defineAsyncComponent,Lazy load heavy components,defineAsyncComponent for modals dialogs,Import all components eagerly,defineAsyncComponent(() => import()),import HeavyComponent from,Medium,https://vuejs.org/guide/components/async.html
40
- 39,TypeScript,Use generic components,Type-safe reusable components,Generic with defineComponent,Any types in components,"<script setup lang=""ts"" generic=""T"">",<script setup> without types,Medium,https://vuejs.org/guide/typescript/composition-api.html
41
- 40,TypeScript,Type template refs,Proper typing for DOM refs,ref<HTMLInputElement>(null),ref(null) without type,const input = ref<HTMLInputElement>(null),const input = ref(null),Medium,
42
- 41,TypeScript,Use PropType for complex props,Type complex prop types,PropType<User> for object props,Object without type,type: Object as PropType<User>,type: Object,Medium,
43
- 42,Testing,Use Vue Test Utils,Official testing library,mount shallowMount for components,Manual DOM testing,import { mount } from '@vue/test-utils',document.createElement,Medium,https://test-utils.vuejs.org/
44
- 43,Testing,Test component behavior,Focus on inputs and outputs,Test props emit and rendered output,Test internal implementation,expect(wrapper.text()).toContain(),expect(wrapper.vm.internalState),Medium,
45
- 44,Forms,Use v-model modifiers,Built-in input handling,.lazy .number .trim modifiers,Manual input parsing,"<input v-model.number=""age"">","<input v-model=""age""> then parse",Low,https://vuejs.org/guide/essentials/forms.html#modifiers
46
- 45,Forms,Use VeeValidate or FormKit,Form validation libraries,VeeValidate for complex forms,Manual validation logic,useField useForm from vee-validate,Custom validation in each input,Medium,
47
- 46,Accessibility,Use semantic elements,Proper HTML elements in templates,button nav main for purpose,div for everything,<button @click>,<div @click>,High,
48
- 47,Accessibility,Bind aria attributes dynamically,Keep ARIA in sync with state,":aria-expanded=""isOpen""",Static ARIA values,":aria-expanded=""menuOpen""","aria-expanded=""true""",Medium,
49
- 48,SSR,Use Nuxt for SSR,Full-featured SSR framework,Nuxt 3 for SSR apps,Manual SSR setup,npx nuxi init my-app,Custom SSR configuration,Medium,https://nuxt.com/
50
- 49,SSR,Handle hydration mismatches,Client/server content must match,ClientOnly for browser-only content,Different content server/client,<ClientOnly><BrowserWidget/></ClientOnly>,<div>{{ Date.now() }}</div>,High,
@@ -1,250 +0,0 @@
1
- # Exemplo de Fluxo Completo com Java e Spring Boot
2
-
3
- Este exemplo mostra como aplicar o **Playbook de Desenvolvimento com IA**
4
- para implementar uma funcionalidade simples em **Java + Spring Boot**.
5
-
6
- Funcionalidade de exemplo: **Cadastro de Clientes** em uma API REST.
7
-
8
- ---
9
-
10
- ## 1. Visão & Problema
11
-
12
- ### Contexto
13
-
14
- Precisamos de uma API que permita cadastrar clientes (nome, email, CPF) e consultá-los.
15
- O sistema será usado por um painel administrativo simples.
16
-
17
- ### Prompt sugerido
18
-
19
- ```text
20
- Você é um arquiteto de software sênior especializado em Java e Spring Boot.
21
-
22
- Contexto:
23
- - API REST de cadastro de clientes
24
- - Campos: nome, email, cpf
25
- - Banco: PostgreSQL
26
-
27
- Me ajude a descrever a visão técnica mínima dessa API, incluindo:
28
- - objetivo
29
- - atores
30
- - fluxos principais (criar, listar, buscar por ID)
31
- - riscos ou pontos de atenção.
32
- ```
33
-
34
- ---
35
-
36
- ## 2. Engenharia de Requisitos com IA
37
-
38
- ### Requisitos funcionais (esperados)
39
-
40
- - RF1: Cadastrar cliente com `nome`, `email`, `cpf`.
41
- - RF2: Listar todos os clientes.
42
- - RF3: Buscar cliente por ID.
43
-
44
- ### Requisitos não funcionais (exemplos)
45
-
46
- - RNF1: Validar formato de e-mail.
47
- - RNF2: Validar CPF (formato e dígitos verificadores).
48
- - RNF3: API deve ter logs mínimos para auditoria.
49
-
50
- ### Prompt sugerido
51
-
52
- ```text
53
- Com base na visão abaixo:
54
- [COLE VISÃO]
55
-
56
- Detalhe os requisitos funcionais e não funcionais para essa API de clientes.
57
- Inclua critérios de aceitação para cada requisito.
58
- ```
59
-
60
- ---
61
-
62
- ## 3. Modelagem & Arquitetura com IA
63
-
64
- ### Modelo de domínio esperado
65
-
66
- Entidade `Cliente`:
67
- - id (Long ou UUID)
68
- - nome (String)
69
- - email (String)
70
- - cpf (String)
71
- - criadoEm (LocalDateTime)
72
-
73
- ### Prompt para modelo de domínio
74
-
75
- ```text
76
- A partir dos requisitos a seguir:
77
- [COLE REQUISITOS]
78
-
79
- Proponha o modelo de domínio para a entidade Cliente em Java:
80
- - campos e tipos
81
- - validações necessárias
82
-
83
- Sugira também anotações JPA/Bean Validation típicas.
84
- ```
85
-
86
- ### Prompt para arquitetura/API
87
-
88
- ```text
89
- Com a entidade Cliente definida,
90
-
91
- Descreva a API REST em Spring Boot:
92
- - endpoints (método + URI)
93
- - payloads de requisição
94
- - formatos de resposta
95
- - códigos de status para sucesso/erro.
96
- ```
97
-
98
- ---
99
-
100
- ## 4. Planejamento / Backlog com IA
101
-
102
- ### User story
103
-
104
- ```text
105
- Como um atendente do sistema administrativo,
106
- Quero cadastrar e consultar clientes,
107
- Para que eu possa gerenciar o relacionamento com eles.
108
- ```
109
-
110
- ### Prompt para backlog
111
-
112
- ```text
113
- Usando a user story e os requisitos abaixo:
114
- [COLE]
115
-
116
- Crie uma lista de tarefas técnicas para implementar essa API em Spring Boot:
117
- - criação da entidade JPA
118
- - criação do repositório (Spring Data JPA)
119
- - criação do service
120
- - criação do controller
121
- - testes unitários e de integração.
122
-
123
- Ordene as tarefas na sequência recomendada.
124
- ```
125
-
126
- ---
127
-
128
- ## 5. Implementação (Vibe Coding Estruturado) com IA
129
-
130
- ### Passo 1 – Entidade + Repositório
131
-
132
- ```text
133
- Vamos implementar a entidade Cliente e o repositório em Spring Boot.
134
-
135
- Requisitos da entidade:
136
- - id, nome, email, cpf, criadoEm
137
- - validação de email
138
- - validação simples de CPF (não vazio, formato XXX.XXX.XXX-YY ou só dígitos)
139
-
140
- Gere o código da classe `Cliente` anotada com JPA e Bean Validation,
141
- e a interface `ClienteRepository` com Spring Data JPA.
142
- ```
143
-
144
- ### Passo 2 – Service
145
-
146
- ```text
147
- Com base na entidade Cliente e no ClienteRepository:
148
- [COLE DECLARAÇÕES]
149
-
150
- Implemente o `ClienteService` com métodos:
151
- - criarCliente(dto)
152
- - listarClientes()
153
- - buscarPorId(id)
154
-
155
- Inclua validações de negócio básicas e tratamento de erros.
156
- ```
157
-
158
- ### Passo 3 – Controller
159
-
160
- ```text
161
- Agora gere o `ClienteController` em Spring Boot expondo:
162
- - POST /clientes
163
- - GET /clientes
164
- - GET /clientes/{id}
165
-
166
- Use DTOs para entrada/saída, ResponseEntity para respostas,
167
- e retorne códigos apropriados (201, 200, 404, 400).
168
- ```
169
-
170
- ---
171
-
172
- ## 6. Testes com IA
173
-
174
- ### Testes unitários (service)
175
-
176
- ```text
177
- Aqui está a implementação de ClienteService:
178
- [COLE]
179
-
180
- Gere testes unitários com JUnit + Mockito cobrindo:
181
- - criação de cliente válido
182
- - erro ao tentar criar cliente com email inválido
183
- - erro ao buscar cliente inexistente.
184
- ```
185
-
186
- ### Testes de integração (API)
187
-
188
- ```text
189
- Com base no ClienteController e na configuração Spring Boot padrão:
190
- [COLE]
191
-
192
- Sugira testes de integração usando @SpringBootTest ou @WebMvcTest,
193
- validando:
194
- - POST /clientes com payload válido (201)
195
- - POST /clientes com email inválido (400)
196
- - GET /clientes retornando lista
197
- - GET /clientes/{id} para cliente inexistente (404).
198
- ```
199
-
200
- ---
201
-
202
- ## 7. Documentação & Revisão com IA
203
-
204
- ### Prompt para documentação técnica
205
-
206
- ```text
207
- Considere a API de clientes implementada em Spring Boot.
208
-
209
- Gere uma documentação técnica em formato Markdown contendo:
210
- - visão geral da API
211
- - endpoints
212
- - exemplos de requisição/resposta
213
- - principais validações e erros.
214
- ```
215
-
216
- ### Prompt para revisão de código
217
-
218
- ```text
219
- Atue como revisor de código sênior em Java.
220
-
221
- Aqui estão as classes Cliente, ClienteService e ClienteController:
222
- [COLE]
223
-
224
- Avalie qualidade de código, manutenibilidade e possíveis bugs.
225
- Sugira melhorias e refatorações se necessário.
226
- ```
227
-
228
- ---
229
-
230
- ## 8. Feedback & Evolução
231
-
232
- Depois que a API estiver em produção, IA pode ajudar a:
233
-
234
- - analisar logs de erro
235
- - sugerir melhorias de validação
236
- - propor campos adicionais úteis (telefone, endereço etc.).
237
-
238
- Prompt exemplo:
239
-
240
- ```text
241
- Aqui estão registros de erros e feedbacks de usuários sobre o cadastro de clientes:
242
- [COLE]
243
-
244
- Classifique em:
245
- - bugs
246
- - problemas de UX da API (mensagens confusas, validações frágeis)
247
- - melhorias de produto.
248
-
249
- Sugira ajustes de curto prazo e evoluções possíveis.
250
- ```