@maestro-ai/mcp-server 1.0.0 → 1.1.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 (448) 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.d.ts.map +1 -1
  141. package/dist/tools/carregar-projeto.js +91 -116
  142. package/dist/tools/carregar-projeto.js.map +1 -1
  143. package/dist/tools/classificar.js +36 -36
  144. package/dist/tools/confirmar-classificacao.js +36 -36
  145. package/dist/tools/confirmar-stitch.js +75 -75
  146. package/dist/tools/contexto.js +56 -56
  147. package/dist/tools/fluxos-alternativos.js +98 -98
  148. package/dist/tools/implementar-historia.js +63 -63
  149. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  150. package/dist/tools/iniciar-projeto.js +139 -224
  151. package/dist/tools/iniciar-projeto.js.map +1 -1
  152. package/dist/tools/proximo.d.ts.map +1 -1
  153. package/dist/tools/proximo.js +224 -252
  154. package/dist/tools/proximo.js.map +1 -1
  155. package/dist/tools/salvar.js +59 -59
  156. package/dist/tools/status.d.ts.map +1 -1
  157. package/dist/tools/status.js +64 -93
  158. package/dist/tools/status.js.map +1 -1
  159. package/dist/tools/validar-gate.js +35 -35
  160. package/dist/types/response.js +11 -11
  161. package/dist/utils/instructions.js +48 -48
  162. package/dist/utils/prompt-mapper.js +16 -16
  163. package/dist/utils/system-md.js +33 -33
  164. package/package.json +67 -67
  165. package/dist/content/content/design-system/README.md +0 -231
  166. package/dist/content/content/design-system/data/charts.csv +0 -26
  167. package/dist/content/content/design-system/data/colors.csv +0 -97
  168. package/dist/content/content/design-system/data/icons.csv +0 -101
  169. package/dist/content/content/design-system/data/landing.csv +0 -31
  170. package/dist/content/content/design-system/data/products.csv +0 -97
  171. package/dist/content/content/design-system/data/prompts.csv +0 -24
  172. package/dist/content/content/design-system/data/react-performance.csv +0 -45
  173. package/dist/content/content/design-system/data/styles.csv +0 -59
  174. package/dist/content/content/design-system/data/typography.csv +0 -58
  175. package/dist/content/content/design-system/data/ui-reasoning.csv +0 -101
  176. package/dist/content/content/design-system/data/ux-guidelines.csv +0 -100
  177. package/dist/content/content/design-system/data/web-interface.csv +0 -31
  178. package/dist/content/content/design-system/indexes/README.md +0 -211
  179. package/dist/content/content/design-system/indexes/colors-index.md +0 -156
  180. package/dist/content/content/design-system/indexes/quick-search.md +0 -111
  181. package/dist/content/content/design-system/indexes/stacks-index.md +0 -341
  182. package/dist/content/content/design-system/stacks/flutter.csv +0 -53
  183. package/dist/content/content/design-system/stacks/html-tailwind.csv +0 -56
  184. package/dist/content/content/design-system/stacks/jetpack-compose.csv +0 -53
  185. package/dist/content/content/design-system/stacks/nextjs.csv +0 -53
  186. package/dist/content/content/design-system/stacks/nuxt-ui.csv +0 -51
  187. package/dist/content/content/design-system/stacks/nuxtjs.csv +0 -59
  188. package/dist/content/content/design-system/stacks/react-native.csv +0 -52
  189. package/dist/content/content/design-system/stacks/react.csv +0 -54
  190. package/dist/content/content/design-system/stacks/shadcn.csv +0 -61
  191. package/dist/content/content/design-system/stacks/svelte.csv +0 -54
  192. package/dist/content/content/design-system/stacks/swiftui.csv +0 -51
  193. package/dist/content/content/design-system/stacks/vue.csv +0 -50
  194. package/dist/content/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +0 -250
  195. package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +0 -278
  196. package/dist/content/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +0 -261
  197. package/dist/content/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +0 -258
  198. package/dist/content/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +0 -119
  199. package/dist/content/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +0 -147
  200. package/dist/content/content/guides/Checklist Mestre de Entrega.md +0 -68
  201. package/dist/content/content/guides/Gates de Qualidade.md +0 -209
  202. package/dist/content/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +0 -355
  203. package/dist/content/content/guides/Guia de Chaos Engineering.md +0 -267
  204. package/dist/content/content/guides/Guia de Debugging com IA.md +0 -135
  205. package/dist/content/content/guides/Guia de Estrat/303/251gias de Cache.md" +0 -352
  206. package/dist/content/content/guides/Guia de Migrations Zero-Downtime.md +0 -311
  207. package/dist/content/content/guides/Guia de Multi-tenancy.md +0 -368
  208. package/dist/content/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +0 -195
  209. package/dist/content/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +0 -162
  210. package/dist/content/content/guides/Guia de SLOs e Error Budgets.md +0 -315
  211. package/dist/content/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +0 -93
  212. package/dist/content/content/guides/Rules base.md +0 -90
  213. package/dist/content/content/playbook/Playbook de Desenvolvimento com IA.md +0 -364
  214. package/dist/content/content/prompts/README.md +0 -203
  215. package/dist/content/content/prompts/acessibilidade/analise-acessibilidade.md +0 -257
  216. package/dist/content/content/prompts/apis/design-api-rest.md +0 -303
  217. package/dist/content/content/prompts/apis/idempotencia.md +0 -254
  218. package/dist/content/content/prompts/apis/versionamento.md +0 -313
  219. package/dist/content/content/prompts/arquitetura/arquitetura-c4-completo.md +0 -190
  220. package/dist/content/content/prompts/arquitetura/clean-architecture.md +0 -151
  221. package/dist/content/content/prompts/arquitetura/ddd-bounded-contexts.md +0 -183
  222. package/dist/content/content/prompts/arquitetura/ddd-cqrs.md +0 -176
  223. package/dist/content/content/prompts/arquitetura/modelo-dominio.md +0 -207
  224. package/dist/content/content/prompts/arquitetura/multi-tenancy.md +0 -235
  225. package/dist/content/content/prompts/database/migrations-zero-downtime.md +0 -192
  226. package/dist/content/content/prompts/database/otimizacao-queries.md +0 -296
  227. package/dist/content/content/prompts/desenvolvimento/code-review.md +0 -301
  228. package/dist/content/content/prompts/desenvolvimento/gerar-servico.md +0 -271
  229. package/dist/content/content/prompts/devops/docker-compose.md +0 -336
  230. package/dist/content/content/prompts/devops/feature-flags.md +0 -374
  231. package/dist/content/content/prompts/devops/kubernetes-deploy.md +0 -460
  232. package/dist/content/content/prompts/devops/pipeline-cicd.md +0 -358
  233. package/dist/content/content/prompts/devops/terraform-iac.md +0 -502
  234. package/dist/content/content/prompts/escalabilidade/analise-performance.md +0 -240
  235. package/dist/content/content/prompts/escalabilidade/analise-performance.txt +0 -94
  236. package/dist/content/content/prompts/escalabilidade/caching.md +0 -255
  237. package/dist/content/content/prompts/observabilidade/chaos-testing.md +0 -237
  238. package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.md +0 -263
  239. package/dist/content/content/prompts/observabilidade/estrategia-observabilidade.txt +0 -134
  240. package/dist/content/content/prompts/observabilidade/slos.md +0 -215
  241. package/dist/content/content/prompts/produto/discovery-inicial.md +0 -203
  242. package/dist/content/content/prompts/produto/discovery-inicial.txt +0 -33
  243. package/dist/content/content/prompts/requisitos/refinar-requisitos.md +0 -232
  244. package/dist/content/content/prompts/requisitos/refinar-requisitos.txt +0 -40
  245. package/dist/content/content/prompts/seguranca/analise-seguranca.md +0 -243
  246. package/dist/content/content/prompts/seguranca/pentest-checklist.md +0 -333
  247. package/dist/content/content/prompts/seguranca/rate-limiting.md +0 -356
  248. package/dist/content/content/prompts/seguranca/revisao-lgpd.md +0 -227
  249. package/dist/content/content/prompts/seguranca/threat-modeling.md +0 -224
  250. package/dist/content/content/prompts/testes/contract-testing.md +0 -340
  251. package/dist/content/content/prompts/testes/gerar-testes-unitarios.md +0 -474
  252. package/dist/content/content/prompts/testes/testes-e2e.md +0 -460
  253. package/dist/content/content/prompts/testes/testes-integracao.md +0 -418
  254. package/dist/content/content/prompts/testes/testes-performance.md +0 -458
  255. package/dist/content/content/prompts/ux/gerar-ui-stitch.md +0 -151
  256. package/dist/content/content/rules/GEMINI.md +0 -841
  257. package/dist/content/content/rules/RULES.md +0 -835
  258. package/dist/content/content/rules/adapters/copilot.md +0 -10
  259. package/dist/content/content/rules/adapters/cursor.md +0 -10
  260. package/dist/content/content/rules/adapters/gemini.md +0 -13
  261. package/dist/content/content/rules/adapters/windsurf.md +0 -10
  262. package/dist/content/content/skills/api-patterns/SKILL.md +0 -81
  263. package/dist/content/content/skills/api-patterns/api-style.md +0 -42
  264. package/dist/content/content/skills/api-patterns/auth.md +0 -24
  265. package/dist/content/content/skills/api-patterns/documentation.md +0 -26
  266. package/dist/content/content/skills/api-patterns/graphql.md +0 -41
  267. package/dist/content/content/skills/api-patterns/rate-limiting.md +0 -31
  268. package/dist/content/content/skills/api-patterns/response.md +0 -37
  269. package/dist/content/content/skills/api-patterns/rest.md +0 -40
  270. package/dist/content/content/skills/api-patterns/scripts/api_validator.py +0 -211
  271. package/dist/content/content/skills/api-patterns/security-testing.md +0 -122
  272. package/dist/content/content/skills/api-patterns/trpc.md +0 -41
  273. package/dist/content/content/skills/api-patterns/versioning.md +0 -22
  274. package/dist/content/content/skills/app-builder/SKILL.md +0 -75
  275. package/dist/content/content/skills/app-builder/agent-coordination.md +0 -71
  276. package/dist/content/content/skills/app-builder/feature-building.md +0 -53
  277. package/dist/content/content/skills/app-builder/project-detection.md +0 -34
  278. package/dist/content/content/skills/app-builder/scaffolding.md +0 -118
  279. package/dist/content/content/skills/app-builder/tech-stack.md +0 -40
  280. package/dist/content/content/skills/app-builder/templates/SKILL.md +0 -39
  281. package/dist/content/content/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
  282. package/dist/content/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
  283. package/dist/content/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
  284. package/dist/content/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
  285. package/dist/content/content/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
  286. package/dist/content/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
  287. package/dist/content/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
  288. package/dist/content/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -82
  289. package/dist/content/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -100
  290. package/dist/content/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -106
  291. package/dist/content/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -101
  292. package/dist/content/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
  293. package/dist/content/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -93
  294. package/dist/content/content/skills/architecture/SKILL.md +0 -55
  295. package/dist/content/content/skills/architecture/context-discovery.md +0 -43
  296. package/dist/content/content/skills/architecture/examples.md +0 -94
  297. package/dist/content/content/skills/architecture/pattern-selection.md +0 -68
  298. package/dist/content/content/skills/architecture/patterns-reference.md +0 -50
  299. package/dist/content/content/skills/architecture/trade-off-analysis.md +0 -77
  300. package/dist/content/content/skills/bash-linux/SKILL.md +0 -199
  301. package/dist/content/content/skills/behavioral-modes/SKILL.md +0 -242
  302. package/dist/content/content/skills/brainstorming/SKILL.md +0 -163
  303. package/dist/content/content/skills/brainstorming/dynamic-questioning.md +0 -350
  304. package/dist/content/content/skills/clean-code/SKILL.md +0 -201
  305. package/dist/content/content/skills/code-review-checklist/SKILL.md +0 -109
  306. package/dist/content/content/skills/database-design/SKILL.md +0 -52
  307. package/dist/content/content/skills/database-design/database-selection.md +0 -43
  308. package/dist/content/content/skills/database-design/indexing.md +0 -39
  309. package/dist/content/content/skills/database-design/migrations.md +0 -48
  310. package/dist/content/content/skills/database-design/optimization.md +0 -36
  311. package/dist/content/content/skills/database-design/orm-selection.md +0 -30
  312. package/dist/content/content/skills/database-design/schema-design.md +0 -56
  313. package/dist/content/content/skills/database-design/scripts/schema_validator.py +0 -172
  314. package/dist/content/content/skills/deployment-procedures/SKILL.md +0 -241
  315. package/dist/content/content/skills/doc.md +0 -177
  316. package/dist/content/content/skills/documentation-templates/SKILL.md +0 -194
  317. package/dist/content/content/skills/frontend-design/SKILL.md +0 -396
  318. package/dist/content/content/skills/frontend-design/animation-guide.md +0 -331
  319. package/dist/content/content/skills/frontend-design/color-system.md +0 -311
  320. package/dist/content/content/skills/frontend-design/decision-trees.md +0 -418
  321. package/dist/content/content/skills/frontend-design/motion-graphics.md +0 -306
  322. package/dist/content/content/skills/frontend-design/scripts/accessibility_checker.py +0 -183
  323. package/dist/content/content/skills/frontend-design/scripts/ux_audit.py +0 -722
  324. package/dist/content/content/skills/frontend-design/typography-system.md +0 -345
  325. package/dist/content/content/skills/frontend-design/ux-psychology.md +0 -541
  326. package/dist/content/content/skills/frontend-design/visual-effects.md +0 -383
  327. package/dist/content/content/skills/game-development/2d-games/SKILL.md +0 -119
  328. package/dist/content/content/skills/game-development/3d-games/SKILL.md +0 -135
  329. package/dist/content/content/skills/game-development/SKILL.md +0 -167
  330. package/dist/content/content/skills/game-development/game-art/SKILL.md +0 -185
  331. package/dist/content/content/skills/game-development/game-audio/SKILL.md +0 -190
  332. package/dist/content/content/skills/game-development/game-design/SKILL.md +0 -129
  333. package/dist/content/content/skills/game-development/mobile-games/SKILL.md +0 -108
  334. package/dist/content/content/skills/game-development/multiplayer/SKILL.md +0 -132
  335. package/dist/content/content/skills/game-development/pc-games/SKILL.md +0 -144
  336. package/dist/content/content/skills/game-development/vr-ar/SKILL.md +0 -123
  337. package/dist/content/content/skills/game-development/web-games/SKILL.md +0 -150
  338. package/dist/content/content/skills/geo-fundamentals/SKILL.md +0 -156
  339. package/dist/content/content/skills/geo-fundamentals/scripts/geo_checker.py +0 -289
  340. package/dist/content/content/skills/i18n-localization/SKILL.md +0 -154
  341. package/dist/content/content/skills/i18n-localization/scripts/i18n_checker.py +0 -241
  342. package/dist/content/content/skills/intelligent-routing/SKILL.md +0 -334
  343. package/dist/content/content/skills/lint-and-validate/SKILL.md +0 -45
  344. package/dist/content/content/skills/lint-and-validate/scripts/lint_runner.py +0 -172
  345. package/dist/content/content/skills/lint-and-validate/scripts/type_coverage.py +0 -173
  346. package/dist/content/content/skills/mcp-builder/SKILL.md +0 -176
  347. package/dist/content/content/skills/mobile-design/SKILL.md +0 -394
  348. package/dist/content/content/skills/mobile-design/decision-trees.md +0 -516
  349. package/dist/content/content/skills/mobile-design/mobile-backend.md +0 -491
  350. package/dist/content/content/skills/mobile-design/mobile-color-system.md +0 -420
  351. package/dist/content/content/skills/mobile-design/mobile-debugging.md +0 -122
  352. package/dist/content/content/skills/mobile-design/mobile-design-thinking.md +0 -357
  353. package/dist/content/content/skills/mobile-design/mobile-navigation.md +0 -458
  354. package/dist/content/content/skills/mobile-design/mobile-performance.md +0 -767
  355. package/dist/content/content/skills/mobile-design/mobile-testing.md +0 -356
  356. package/dist/content/content/skills/mobile-design/mobile-typography.md +0 -433
  357. package/dist/content/content/skills/mobile-design/platform-android.md +0 -666
  358. package/dist/content/content/skills/mobile-design/platform-ios.md +0 -561
  359. package/dist/content/content/skills/mobile-design/scripts/mobile_audit.py +0 -670
  360. package/dist/content/content/skills/mobile-design/touch-psychology.md +0 -537
  361. package/dist/content/content/skills/nextjs-best-practices/SKILL.md +0 -203
  362. package/dist/content/content/skills/nodejs-best-practices/SKILL.md +0 -333
  363. package/dist/content/content/skills/parallel-agents/SKILL.md +0 -175
  364. package/dist/content/content/skills/performance-profiling/SKILL.md +0 -143
  365. package/dist/content/content/skills/performance-profiling/scripts/lighthouse_audit.py +0 -76
  366. package/dist/content/content/skills/plan-writing/SKILL.md +0 -152
  367. package/dist/content/content/skills/powershell-windows/SKILL.md +0 -167
  368. package/dist/content/content/skills/python-patterns/SKILL.md +0 -441
  369. package/dist/content/content/skills/react-patterns/SKILL.md +0 -198
  370. package/dist/content/content/skills/red-team-tactics/SKILL.md +0 -199
  371. package/dist/content/content/skills/seo-fundamentals/SKILL.md +0 -129
  372. package/dist/content/content/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
  373. package/dist/content/content/skills/server-management/SKILL.md +0 -161
  374. package/dist/content/content/skills/systematic-debugging/SKILL.md +0 -109
  375. package/dist/content/content/skills/tailwind-patterns/SKILL.md +0 -269
  376. package/dist/content/content/skills/tdd-workflow/SKILL.md +0 -149
  377. package/dist/content/content/skills/testing-patterns/SKILL.md +0 -178
  378. package/dist/content/content/skills/testing-patterns/scripts/test_runner.py +0 -219
  379. package/dist/content/content/skills/vulnerability-scanner/SKILL.md +0 -276
  380. package/dist/content/content/skills/vulnerability-scanner/checklists.md +0 -121
  381. package/dist/content/content/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
  382. package/dist/content/content/skills/webapp-testing/SKILL.md +0 -187
  383. package/dist/content/content/skills/webapp-testing/scripts/playwright_runner.py +0 -173
  384. package/dist/content/content/specialists/Especialista em Acessibilidade.md +0 -266
  385. package/dist/content/content/specialists/Especialista em An/303/241lise de Testes.md" +0 -434
  386. package/dist/content/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +0 -358
  387. package/dist/content/content/specialists/Especialista em Arquitetura de Software.md +0 -177
  388. package/dist/content/content/specialists/Especialista em Banco de Dados.md +0 -260
  389. package/dist/content/content/specialists/Especialista em Contrato de API.md +0 -172
  390. package/dist/content/content/specialists/Especialista em Dados e Analytics com IA.md +0 -246
  391. package/dist/content/content/specialists/Especialista em Debugging e Troubleshooting.md +0 -191
  392. package/dist/content/content/specialists/Especialista em Desenvolvimento Frontend.md +0 -477
  393. package/dist/content/content/specialists/Especialista em Desenvolvimento Mobile.md +0 -241
  394. package/dist/content/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +0 -417
  395. package/dist/content/content/specialists/Especialista em DevOps e Infraestrutura.md +0 -294
  396. package/dist/content/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +0 -227
  397. package/dist/content/content/specialists/Especialista em Engenharia de Requisitos com IA.md +0 -299
  398. package/dist/content/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +0 -179
  399. package/dist/content/content/specialists/Especialista em Gest/303/243o de Produto.md" +0 -179
  400. package/dist/content/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +0 -410
  401. package/dist/content/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +0 -248
  402. package/dist/content/content/specialists/Especialista em Observabilidade.md +0 -415
  403. package/dist/content/content/specialists/Especialista em Performance e Escalabilidade.md +0 -373
  404. package/dist/content/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +0 -341
  405. package/dist/content/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +0 -419
  406. package/dist/content/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +0 -508
  407. package/dist/content/content/specialists/Especialista em UX Design.md +0 -453
  408. package/dist/content/content/specialists/INDEX.md +0 -43
  409. package/dist/content/content/templates/PRD.md +0 -165
  410. package/dist/content/content/templates/README.md +0 -65
  411. package/dist/content/content/templates/adr.md +0 -103
  412. package/dist/content/content/templates/arquitetura.md +0 -279
  413. package/dist/content/content/templates/backlog.md +0 -185
  414. package/dist/content/content/templates/checklist-seguranca.md +0 -180
  415. package/dist/content/content/templates/contexto.md +0 -120
  416. package/dist/content/content/templates/criterios-aceite.md +0 -99
  417. package/dist/content/content/templates/design-banco.md +0 -270
  418. package/dist/content/content/templates/design-doc.md +0 -240
  419. package/dist/content/content/templates/feature.md +0 -88
  420. package/dist/content/content/templates/historia-backend.md +0 -84
  421. package/dist/content/content/templates/historia-frontend.md +0 -75
  422. package/dist/content/content/templates/historia-usuario.md +0 -125
  423. package/dist/content/content/templates/mapa-navegacao.md +0 -133
  424. package/dist/content/content/templates/matriz-rastreabilidade.md +0 -121
  425. package/dist/content/content/templates/modelo-dominio.md +0 -219
  426. package/dist/content/content/templates/plano-testes.md +0 -199
  427. package/dist/content/content/templates/prototipo-stitch.md +0 -138
  428. package/dist/content/content/templates/requisitos.md +0 -162
  429. package/dist/content/content/templates/slo-sli.md +0 -197
  430. package/dist/content/content/workflows/README-MCP.md +0 -363
  431. package/dist/content/content/workflows/brainstorm.md +0 -113
  432. package/dist/content/content/workflows/create.md +0 -59
  433. package/dist/content/content/workflows/debug.md +0 -103
  434. package/dist/content/content/workflows/deploy.md +0 -176
  435. package/dist/content/content/workflows/enhance.md +0 -63
  436. package/dist/content/content/workflows/mcp-debug.md +0 -506
  437. package/dist/content/content/workflows/mcp-feature.md +0 -385
  438. package/dist/content/content/workflows/mcp-gate.md +0 -413
  439. package/dist/content/content/workflows/mcp-next.md +0 -388
  440. package/dist/content/content/workflows/mcp-refactor.md +0 -600
  441. package/dist/content/content/workflows/mcp-start.md +0 -304
  442. package/dist/content/content/workflows/mcp-status.md +0 -400
  443. package/dist/content/content/workflows/orchestrate.md +0 -237
  444. package/dist/content/content/workflows/plan.md +0 -89
  445. package/dist/content/content/workflows/preview.md +0 -81
  446. package/dist/content/content/workflows/status.md +0 -86
  447. package/dist/content/content/workflows/test.md +0 -144
  448. package/dist/content/content/workflows/ui-ux-pro-max.md +0 -296
@@ -1,460 +1,460 @@
1
- # Prompt: Testes End-to-End (E2E)
2
-
3
- > **Quando usar**: Validar fluxos completos do usuário, do início ao fim
4
- > **Especialista**: [Análise de Testes](../../02-especialistas/Especialista%20em%20Análise%20de%20Testes.md)
5
- > **Nível**: Médio a Complexo
6
-
7
- ---
8
-
9
- ## Fluxo de Contexto
10
-
11
- Antes de usar este prompt, tenha em mãos:
12
- - `docs/CONTEXTO.md` - Entendimento do projeto
13
- - `docs/03-ux/design-doc.md` - Fluxos de usuário
14
- - URL do ambiente de staging/desenvolvimento
15
-
16
- Após gerar, salve os testes em:
17
- - `tests/e2e/` ou `e2e/` na raiz do projeto
18
-
19
- ---
20
-
21
- ## Prompt Completo
22
-
23
- ```text
24
- Atue como especialista em testes end-to-end (E2E) e automação de browser.
25
-
26
- ## Contexto do Projeto
27
-
28
- [COLE O CONTEÚDO DE docs/CONTEXTO.md]
29
-
30
- ## Stack Frontend
31
-
32
- - Framework: [React/Vue/Angular/Next.js]
33
- - Componentes: [Component library usada]
34
- - Autenticação: [Como funciona o login]
35
-
36
- ## Ferramenta de E2E
37
-
38
- - [ ] Cypress
39
- - [ ] Playwright
40
- - [ ] Selenium
41
- - [ ] TestCafe
42
-
43
- ## Fluxos Críticos a Testar
44
-
45
- 1. [Fluxo 1 - ex: Cadastro de usuário]
46
- 2. [Fluxo 2 - ex: Login e acesso ao dashboard]
47
- 3. [Fluxo 3 - ex: Checkout completo]
48
- 4. [Fluxo 4 - ex: ...]
49
-
50
- ## URLs e Ambientes
51
-
52
- - Desenvolvimento: [http://localhost:3000]
53
- - Staging: [https://staging.example.com]
54
-
55
- ---
56
-
57
- ## Sua Missão
58
-
59
- Gere testes E2E completos usando a ferramenta escolhida:
60
-
61
- ### 1. Estrutura do Projeto
62
-
63
- ```
64
- e2e/
65
- ├── fixtures/
66
- │ ├── users.json
67
- │ └── products.json
68
- ├── pages/
69
- │ ├── LoginPage.ts
70
- │ ├── DashboardPage.ts
71
- │ └── CheckoutPage.ts
72
- ├── support/
73
- │ ├── commands.ts
74
- │ └── helpers.ts
75
- ├── specs/
76
- │ ├── auth/
77
- │ │ ├── login.spec.ts
78
- │ │ └── register.spec.ts
79
- │ ├── checkout/
80
- │ │ └── purchase.spec.ts
81
- │ └── smoke.spec.ts
82
- ├── playwright.config.ts
83
- └── package.json
84
- ```
85
-
86
- ### 2. Configuração (Playwright)
87
-
88
- ```typescript
89
- // playwright.config.ts
90
- import { defineConfig, devices } from '@playwright/test';
91
-
92
- export default defineConfig({
93
- testDir: './specs',
94
- timeout: 30000,
95
- expect: {
96
- timeout: 5000,
97
- },
98
- fullyParallel: true,
99
- forbidOnly: !!process.env.CI,
100
- retries: process.env.CI ? 2 : 0,
101
- workers: process.env.CI ? 1 : undefined,
102
- reporter: [
103
- ['html'],
104
- ['junit', { outputFile: 'results/junit.xml' }],
105
- ],
106
- use: {
107
- baseURL: process.env.BASE_URL || 'http://localhost:3000',
108
- trace: 'on-first-retry',
109
- screenshot: 'only-on-failure',
110
- video: 'retain-on-failure',
111
- },
112
- projects: [
113
- {
114
- name: 'chromium',
115
- use: { ...devices['Desktop Chrome'] },
116
- },
117
- {
118
- name: 'firefox',
119
- use: { ...devices['Desktop Firefox'] },
120
- },
121
- {
122
- name: 'mobile',
123
- use: { ...devices['iPhone 13'] },
124
- },
125
- ],
126
- webServer: {
127
- command: 'npm run dev',
128
- url: 'http://localhost:3000',
129
- reuseExistingServer: !process.env.CI,
130
- },
131
- });
132
- ```
133
-
134
- ### 3. Page Object Model
135
-
136
- ```typescript
137
- // pages/LoginPage.ts
138
- import { Page, Locator } from '@playwright/test';
139
-
140
- export class LoginPage {
141
- readonly page: Page;
142
- readonly emailInput: Locator;
143
- readonly passwordInput: Locator;
144
- readonly submitButton: Locator;
145
- readonly errorMessage: Locator;
146
- readonly forgotPasswordLink: Locator;
147
-
148
- constructor(page: Page) {
149
- this.page = page;
150
- this.emailInput = page.getByLabel('Email');
151
- this.passwordInput = page.getByLabel('Senha');
152
- this.submitButton = page.getByRole('button', { name: 'Entrar' });
153
- this.errorMessage = page.getByRole('alert');
154
- this.forgotPasswordLink = page.getByRole('link', { name: 'Esqueci minha senha' });
155
- }
156
-
157
- async goto() {
158
- await this.page.goto('/login');
159
- }
160
-
161
- async login(email: string, password: string) {
162
- await this.emailInput.fill(email);
163
- await this.passwordInput.fill(password);
164
- await this.submitButton.click();
165
- }
166
-
167
- async expectErrorMessage(message: string) {
168
- await expect(this.errorMessage).toContainText(message);
169
- }
170
- }
171
-
172
- // pages/DashboardPage.ts
173
- export class DashboardPage {
174
- readonly page: Page;
175
- readonly welcomeMessage: Locator;
176
- readonly userMenu: Locator;
177
- readonly logoutButton: Locator;
178
-
179
- constructor(page: Page) {
180
- this.page = page;
181
- this.welcomeMessage = page.getByTestId('welcome-message');
182
- this.userMenu = page.getByRole('button', { name: /menu do usuário/i });
183
- this.logoutButton = page.getByRole('menuitem', { name: 'Sair' });
184
- }
185
-
186
- async expectWelcome(name: string) {
187
- await expect(this.welcomeMessage).toContainText(`Olá, ${name}`);
188
- }
189
-
190
- async logout() {
191
- await this.userMenu.click();
192
- await this.logoutButton.click();
193
- }
194
- }
195
- ```
196
-
197
- ### 4. Fixtures e Helpers
198
-
199
- ```typescript
200
- // support/helpers.ts
201
- import { Page } from '@playwright/test';
202
-
203
- export async function loginAsUser(page: Page, email: string, password: string) {
204
- await page.goto('/login');
205
- await page.getByLabel('Email').fill(email);
206
- await page.getByLabel('Senha').fill(password);
207
- await page.getByRole('button', { name: 'Entrar' }).click();
208
- await page.waitForURL('/dashboard');
209
- }
210
-
211
- export async function createTestUser(page: Page) {
212
- // Criar usuário via API para evitar depender de UI
213
- const response = await page.request.post('/api/test/users', {
214
- data: {
215
- email: `test-${Date.now()}@example.com`,
216
- password: 'Test123!',
217
- name: 'Test User',
218
- },
219
- });
220
- return response.json();
221
- }
222
-
223
- // fixtures/users.json
224
- {
225
- "validUser": {
226
- "email": "user@example.com",
227
- "password": "SecurePass123!"
228
- },
229
- "adminUser": {
230
- "email": "admin@example.com",
231
- "password": "AdminPass123!"
232
- }
233
- }
234
- ```
235
-
236
- ### 5. Testes de Autenticação
237
-
238
- ```typescript
239
- // specs/auth/login.spec.ts
240
- import { test, expect } from '@playwright/test';
241
- import { LoginPage } from '../../pages/LoginPage';
242
- import { DashboardPage } from '../../pages/DashboardPage';
243
- import users from '../../fixtures/users.json';
244
-
245
- test.describe('Login', () => {
246
- test.beforeEach(async ({ page }) => {
247
- await page.goto('/login');
248
- });
249
-
250
- test('should login with valid credentials', async ({ page }) => {
251
- const loginPage = new LoginPage(page);
252
- const dashboardPage = new DashboardPage(page);
253
-
254
- await loginPage.login(users.validUser.email, users.validUser.password);
255
-
256
- // Verificar redirecionamento
257
- await expect(page).toHaveURL('/dashboard');
258
- await dashboardPage.expectWelcome('Test User');
259
- });
260
-
261
- test('should show error for invalid credentials', async ({ page }) => {
262
- const loginPage = new LoginPage(page);
263
-
264
- await loginPage.login('invalid@example.com', 'wrongpassword');
265
-
266
- await loginPage.expectErrorMessage('Email ou senha inválidos');
267
- await expect(page).toHaveURL('/login');
268
- });
269
-
270
- test('should persist session after page reload', async ({ page }) => {
271
- const loginPage = new LoginPage(page);
272
-
273
- await loginPage.login(users.validUser.email, users.validUser.password);
274
- await expect(page).toHaveURL('/dashboard');
275
-
276
- // Recarregar página
277
- await page.reload();
278
-
279
- // Deve continuar logado
280
- await expect(page).toHaveURL('/dashboard');
281
- });
282
-
283
- test('should logout successfully', async ({ page }) => {
284
- const loginPage = new LoginPage(page);
285
- const dashboardPage = new DashboardPage(page);
286
-
287
- await loginPage.login(users.validUser.email, users.validUser.password);
288
- await dashboardPage.logout();
289
-
290
- await expect(page).toHaveURL('/login');
291
- });
292
- });
293
-
294
- // specs/auth/register.spec.ts
295
- test.describe('Registro', () => {
296
- test('should register new user successfully', async ({ page }) => {
297
- const uniqueEmail = `user-${Date.now()}@example.com`;
298
-
299
- await page.goto('/register');
300
- await page.getByLabel('Nome').fill('Novo Usuario');
301
- await page.getByLabel('Email').fill(uniqueEmail);
302
- await page.getByLabel('Senha').fill('SecurePass123!');
303
- await page.getByLabel('Confirmar senha').fill('SecurePass123!');
304
- await page.getByRole('checkbox', { name: /termos/i }).check();
305
- await page.getByRole('button', { name: 'Criar conta' }).click();
306
-
307
- // Verificar sucesso
308
- await expect(page).toHaveURL('/dashboard');
309
- await expect(page.getByText('Conta criada com sucesso')).toBeVisible();
310
- });
311
-
312
- test('should validate password requirements', async ({ page }) => {
313
- await page.goto('/register');
314
- await page.getByLabel('Senha').fill('weak');
315
- await page.getByLabel('Senha').blur();
316
-
317
- await expect(page.getByText(/mínimo 8 caracteres/i)).toBeVisible();
318
- });
319
- });
320
- ```
321
-
322
- ### 6. Testes de Fluxo de Compra
323
-
324
- ```typescript
325
- // specs/checkout/purchase.spec.ts
326
- import { test, expect } from '@playwright/test';
327
- import { loginAsUser } from '../../support/helpers';
328
-
329
- test.describe('Checkout', () => {
330
- test.beforeEach(async ({ page }) => {
331
- await loginAsUser(page, 'user@example.com', 'Test123!');
332
- });
333
-
334
- test('should complete full purchase flow', async ({ page }) => {
335
- // 1. Navegar para produtos
336
- await page.getByRole('link', { name: 'Produtos' }).click();
337
-
338
- // 2. Adicionar produto ao carrinho
339
- await page.getByTestId('product-card').first().click();
340
- await page.getByRole('button', { name: 'Adicionar ao carrinho' }).click();
341
- await expect(page.getByText('Produto adicionado')).toBeVisible();
342
-
343
- // 3. Ir para carrinho
344
- await page.getByRole('link', { name: /carrinho/i }).click();
345
- await expect(page.getByTestId('cart-item')).toHaveCount(1);
346
-
347
- // 4. Prosseguir para checkout
348
- await page.getByRole('button', { name: 'Finalizar compra' }).click();
349
-
350
- // 5. Preencher endereço
351
- await page.getByLabel('CEP').fill('01310-100');
352
- await page.waitForResponse('**/api/address/**'); // Aguardar busca de CEP
353
- await page.getByLabel('Número').fill('100');
354
- await page.getByRole('button', { name: 'Continuar' }).click();
355
-
356
- // 6. Selecionar pagamento
357
- await page.getByLabel('Cartão de crédito').check();
358
- await page.getByLabel('Número do cartão').fill('4242424242424242');
359
- await page.getByLabel('Validade').fill('12/28');
360
- await page.getByLabel('CVV').fill('123');
361
- await page.getByRole('button', { name: 'Pagar' }).click();
362
-
363
- // 7. Verificar confirmação
364
- await expect(page.getByText('Pedido confirmado')).toBeVisible({ timeout: 10000 });
365
- await expect(page.getByTestId('order-number')).toBeVisible();
366
- });
367
-
368
- test('should handle payment failure gracefully', async ({ page }) => {
369
- // ... adicionar produto e ir para checkout
370
-
371
- // Usar cartão que falha
372
- await page.getByLabel('Número do cartão').fill('4000000000000002');
373
- await page.getByRole('button', { name: 'Pagar' }).click();
374
-
375
- await expect(page.getByRole('alert')).toContainText('Pagamento recusado');
376
- // Usuário deve poder tentar novamente
377
- await expect(page.getByRole('button', { name: 'Pagar' })).toBeEnabled();
378
- });
379
- });
380
- ```
381
-
382
- ### 7. Testes de Smoke (Críticos)
383
-
384
- ```typescript
385
- // specs/smoke.spec.ts
386
- import { test, expect } from '@playwright/test';
387
-
388
- test.describe('Smoke Tests', () => {
389
- test('homepage loads correctly', async ({ page }) => {
390
- await page.goto('/');
391
- await expect(page).toHaveTitle(/Nome do App/);
392
- await expect(page.getByRole('navigation')).toBeVisible();
393
- });
394
-
395
- test('login page is accessible', async ({ page }) => {
396
- await page.goto('/login');
397
- await expect(page.getByRole('heading', { name: 'Entrar' })).toBeVisible();
398
- });
399
-
400
- test('API health check', async ({ request }) => {
401
- const response = await request.get('/api/health');
402
- expect(response.ok()).toBeTruthy();
403
- });
404
- });
405
- ```
406
-
407
- ### 8. Scripts e CI
408
-
409
- ```json
410
- // package.json
411
- {
412
- "scripts": {
413
- "test:e2e": "playwright test",
414
- "test:e2e:ui": "playwright test --ui",
415
- "test:e2e:headed": "playwright test --headed",
416
- "test:e2e:smoke": "playwright test --grep @smoke",
417
- "test:e2e:report": "playwright show-report"
418
- }
419
- }
420
- ```
421
-
422
- ```yaml
423
- # .github/workflows/e2e.yml
424
- name: E2E Tests
425
-
426
- on: [push, pull_request]
427
-
428
- jobs:
429
- e2e:
430
- runs-on: ubuntu-latest
431
- steps:
432
- - uses: actions/checkout@v4
433
- - uses: actions/setup-node@v4
434
- with:
435
- node-version: 20
436
- - run: npm ci
437
- - run: npx playwright install --with-deps
438
- - run: npm run test:e2e
439
- - uses: actions/upload-artifact@v4
440
- if: failure()
441
- with:
442
- name: playwright-report
443
- path: playwright-report/
444
- ```
445
- ```
446
-
447
- ---
448
-
449
- ## Checklist Pós-Geração
450
-
451
- - [ ] Page Objects criados para páginas principais
452
- - [ ] Fixtures de dados configurados
453
- - [ ] Testes de autenticação (login, registro, logout)
454
- - [ ] Testes de fluxos críticos de negócio
455
- - [ ] Smoke tests para verificação rápida
456
- - [ ] Configuração multi-browser
457
- - [ ] Screenshots e vídeos em falha
458
- - [ ] CI configurado com artefatos
459
- - [ ] Seletores resilientes (role, label, testid)
460
- - [ ] Timeouts apropriados
1
+ # Prompt: Testes End-to-End (E2E)
2
+
3
+ > **Quando usar**: Validar fluxos completos do usuário, do início ao fim
4
+ > **Especialista**: [Análise de Testes](../../02-especialistas/Especialista%20em%20Análise%20de%20Testes.md)
5
+ > **Nível**: Médio a Complexo
6
+
7
+ ---
8
+
9
+ ## Fluxo de Contexto
10
+
11
+ Antes de usar este prompt, tenha em mãos:
12
+ - `docs/CONTEXTO.md` - Entendimento do projeto
13
+ - `docs/03-ux/design-doc.md` - Fluxos de usuário
14
+ - URL do ambiente de staging/desenvolvimento
15
+
16
+ Após gerar, salve os testes em:
17
+ - `tests/e2e/` ou `e2e/` na raiz do projeto
18
+
19
+ ---
20
+
21
+ ## Prompt Completo
22
+
23
+ ```text
24
+ Atue como especialista em testes end-to-end (E2E) e automação de browser.
25
+
26
+ ## Contexto do Projeto
27
+
28
+ [COLE O CONTEÚDO DE docs/CONTEXTO.md]
29
+
30
+ ## Stack Frontend
31
+
32
+ - Framework: [React/Vue/Angular/Next.js]
33
+ - Componentes: [Component library usada]
34
+ - Autenticação: [Como funciona o login]
35
+
36
+ ## Ferramenta de E2E
37
+
38
+ - [ ] Cypress
39
+ - [ ] Playwright
40
+ - [ ] Selenium
41
+ - [ ] TestCafe
42
+
43
+ ## Fluxos Críticos a Testar
44
+
45
+ 1. [Fluxo 1 - ex: Cadastro de usuário]
46
+ 2. [Fluxo 2 - ex: Login e acesso ao dashboard]
47
+ 3. [Fluxo 3 - ex: Checkout completo]
48
+ 4. [Fluxo 4 - ex: ...]
49
+
50
+ ## URLs e Ambientes
51
+
52
+ - Desenvolvimento: [http://localhost:3000]
53
+ - Staging: [https://staging.example.com]
54
+
55
+ ---
56
+
57
+ ## Sua Missão
58
+
59
+ Gere testes E2E completos usando a ferramenta escolhida:
60
+
61
+ ### 1. Estrutura do Projeto
62
+
63
+ ```
64
+ e2e/
65
+ ├── fixtures/
66
+ │ ├── users.json
67
+ │ └── products.json
68
+ ├── pages/
69
+ │ ├── LoginPage.ts
70
+ │ ├── DashboardPage.ts
71
+ │ └── CheckoutPage.ts
72
+ ├── support/
73
+ │ ├── commands.ts
74
+ │ └── helpers.ts
75
+ ├── specs/
76
+ │ ├── auth/
77
+ │ │ ├── login.spec.ts
78
+ │ │ └── register.spec.ts
79
+ │ ├── checkout/
80
+ │ │ └── purchase.spec.ts
81
+ │ └── smoke.spec.ts
82
+ ├── playwright.config.ts
83
+ └── package.json
84
+ ```
85
+
86
+ ### 2. Configuração (Playwright)
87
+
88
+ ```typescript
89
+ // playwright.config.ts
90
+ import { defineConfig, devices } from '@playwright/test';
91
+
92
+ export default defineConfig({
93
+ testDir: './specs',
94
+ timeout: 30000,
95
+ expect: {
96
+ timeout: 5000,
97
+ },
98
+ fullyParallel: true,
99
+ forbidOnly: !!process.env.CI,
100
+ retries: process.env.CI ? 2 : 0,
101
+ workers: process.env.CI ? 1 : undefined,
102
+ reporter: [
103
+ ['html'],
104
+ ['junit', { outputFile: 'results/junit.xml' }],
105
+ ],
106
+ use: {
107
+ baseURL: process.env.BASE_URL || 'http://localhost:3000',
108
+ trace: 'on-first-retry',
109
+ screenshot: 'only-on-failure',
110
+ video: 'retain-on-failure',
111
+ },
112
+ projects: [
113
+ {
114
+ name: 'chromium',
115
+ use: { ...devices['Desktop Chrome'] },
116
+ },
117
+ {
118
+ name: 'firefox',
119
+ use: { ...devices['Desktop Firefox'] },
120
+ },
121
+ {
122
+ name: 'mobile',
123
+ use: { ...devices['iPhone 13'] },
124
+ },
125
+ ],
126
+ webServer: {
127
+ command: 'npm run dev',
128
+ url: 'http://localhost:3000',
129
+ reuseExistingServer: !process.env.CI,
130
+ },
131
+ });
132
+ ```
133
+
134
+ ### 3. Page Object Model
135
+
136
+ ```typescript
137
+ // pages/LoginPage.ts
138
+ import { Page, Locator } from '@playwright/test';
139
+
140
+ export class LoginPage {
141
+ readonly page: Page;
142
+ readonly emailInput: Locator;
143
+ readonly passwordInput: Locator;
144
+ readonly submitButton: Locator;
145
+ readonly errorMessage: Locator;
146
+ readonly forgotPasswordLink: Locator;
147
+
148
+ constructor(page: Page) {
149
+ this.page = page;
150
+ this.emailInput = page.getByLabel('Email');
151
+ this.passwordInput = page.getByLabel('Senha');
152
+ this.submitButton = page.getByRole('button', { name: 'Entrar' });
153
+ this.errorMessage = page.getByRole('alert');
154
+ this.forgotPasswordLink = page.getByRole('link', { name: 'Esqueci minha senha' });
155
+ }
156
+
157
+ async goto() {
158
+ await this.page.goto('/login');
159
+ }
160
+
161
+ async login(email: string, password: string) {
162
+ await this.emailInput.fill(email);
163
+ await this.passwordInput.fill(password);
164
+ await this.submitButton.click();
165
+ }
166
+
167
+ async expectErrorMessage(message: string) {
168
+ await expect(this.errorMessage).toContainText(message);
169
+ }
170
+ }
171
+
172
+ // pages/DashboardPage.ts
173
+ export class DashboardPage {
174
+ readonly page: Page;
175
+ readonly welcomeMessage: Locator;
176
+ readonly userMenu: Locator;
177
+ readonly logoutButton: Locator;
178
+
179
+ constructor(page: Page) {
180
+ this.page = page;
181
+ this.welcomeMessage = page.getByTestId('welcome-message');
182
+ this.userMenu = page.getByRole('button', { name: /menu do usuário/i });
183
+ this.logoutButton = page.getByRole('menuitem', { name: 'Sair' });
184
+ }
185
+
186
+ async expectWelcome(name: string) {
187
+ await expect(this.welcomeMessage).toContainText(`Olá, ${name}`);
188
+ }
189
+
190
+ async logout() {
191
+ await this.userMenu.click();
192
+ await this.logoutButton.click();
193
+ }
194
+ }
195
+ ```
196
+
197
+ ### 4. Fixtures e Helpers
198
+
199
+ ```typescript
200
+ // support/helpers.ts
201
+ import { Page } from '@playwright/test';
202
+
203
+ export async function loginAsUser(page: Page, email: string, password: string) {
204
+ await page.goto('/login');
205
+ await page.getByLabel('Email').fill(email);
206
+ await page.getByLabel('Senha').fill(password);
207
+ await page.getByRole('button', { name: 'Entrar' }).click();
208
+ await page.waitForURL('/dashboard');
209
+ }
210
+
211
+ export async function createTestUser(page: Page) {
212
+ // Criar usuário via API para evitar depender de UI
213
+ const response = await page.request.post('/api/test/users', {
214
+ data: {
215
+ email: `test-${Date.now()}@example.com`,
216
+ password: 'Test123!',
217
+ name: 'Test User',
218
+ },
219
+ });
220
+ return response.json();
221
+ }
222
+
223
+ // fixtures/users.json
224
+ {
225
+ "validUser": {
226
+ "email": "user@example.com",
227
+ "password": "SecurePass123!"
228
+ },
229
+ "adminUser": {
230
+ "email": "admin@example.com",
231
+ "password": "AdminPass123!"
232
+ }
233
+ }
234
+ ```
235
+
236
+ ### 5. Testes de Autenticação
237
+
238
+ ```typescript
239
+ // specs/auth/login.spec.ts
240
+ import { test, expect } from '@playwright/test';
241
+ import { LoginPage } from '../../pages/LoginPage';
242
+ import { DashboardPage } from '../../pages/DashboardPage';
243
+ import users from '../../fixtures/users.json';
244
+
245
+ test.describe('Login', () => {
246
+ test.beforeEach(async ({ page }) => {
247
+ await page.goto('/login');
248
+ });
249
+
250
+ test('should login with valid credentials', async ({ page }) => {
251
+ const loginPage = new LoginPage(page);
252
+ const dashboardPage = new DashboardPage(page);
253
+
254
+ await loginPage.login(users.validUser.email, users.validUser.password);
255
+
256
+ // Verificar redirecionamento
257
+ await expect(page).toHaveURL('/dashboard');
258
+ await dashboardPage.expectWelcome('Test User');
259
+ });
260
+
261
+ test('should show error for invalid credentials', async ({ page }) => {
262
+ const loginPage = new LoginPage(page);
263
+
264
+ await loginPage.login('invalid@example.com', 'wrongpassword');
265
+
266
+ await loginPage.expectErrorMessage('Email ou senha inválidos');
267
+ await expect(page).toHaveURL('/login');
268
+ });
269
+
270
+ test('should persist session after page reload', async ({ page }) => {
271
+ const loginPage = new LoginPage(page);
272
+
273
+ await loginPage.login(users.validUser.email, users.validUser.password);
274
+ await expect(page).toHaveURL('/dashboard');
275
+
276
+ // Recarregar página
277
+ await page.reload();
278
+
279
+ // Deve continuar logado
280
+ await expect(page).toHaveURL('/dashboard');
281
+ });
282
+
283
+ test('should logout successfully', async ({ page }) => {
284
+ const loginPage = new LoginPage(page);
285
+ const dashboardPage = new DashboardPage(page);
286
+
287
+ await loginPage.login(users.validUser.email, users.validUser.password);
288
+ await dashboardPage.logout();
289
+
290
+ await expect(page).toHaveURL('/login');
291
+ });
292
+ });
293
+
294
+ // specs/auth/register.spec.ts
295
+ test.describe('Registro', () => {
296
+ test('should register new user successfully', async ({ page }) => {
297
+ const uniqueEmail = `user-${Date.now()}@example.com`;
298
+
299
+ await page.goto('/register');
300
+ await page.getByLabel('Nome').fill('Novo Usuario');
301
+ await page.getByLabel('Email').fill(uniqueEmail);
302
+ await page.getByLabel('Senha').fill('SecurePass123!');
303
+ await page.getByLabel('Confirmar senha').fill('SecurePass123!');
304
+ await page.getByRole('checkbox', { name: /termos/i }).check();
305
+ await page.getByRole('button', { name: 'Criar conta' }).click();
306
+
307
+ // Verificar sucesso
308
+ await expect(page).toHaveURL('/dashboard');
309
+ await expect(page.getByText('Conta criada com sucesso')).toBeVisible();
310
+ });
311
+
312
+ test('should validate password requirements', async ({ page }) => {
313
+ await page.goto('/register');
314
+ await page.getByLabel('Senha').fill('weak');
315
+ await page.getByLabel('Senha').blur();
316
+
317
+ await expect(page.getByText(/mínimo 8 caracteres/i)).toBeVisible();
318
+ });
319
+ });
320
+ ```
321
+
322
+ ### 6. Testes de Fluxo de Compra
323
+
324
+ ```typescript
325
+ // specs/checkout/purchase.spec.ts
326
+ import { test, expect } from '@playwright/test';
327
+ import { loginAsUser } from '../../support/helpers';
328
+
329
+ test.describe('Checkout', () => {
330
+ test.beforeEach(async ({ page }) => {
331
+ await loginAsUser(page, 'user@example.com', 'Test123!');
332
+ });
333
+
334
+ test('should complete full purchase flow', async ({ page }) => {
335
+ // 1. Navegar para produtos
336
+ await page.getByRole('link', { name: 'Produtos' }).click();
337
+
338
+ // 2. Adicionar produto ao carrinho
339
+ await page.getByTestId('product-card').first().click();
340
+ await page.getByRole('button', { name: 'Adicionar ao carrinho' }).click();
341
+ await expect(page.getByText('Produto adicionado')).toBeVisible();
342
+
343
+ // 3. Ir para carrinho
344
+ await page.getByRole('link', { name: /carrinho/i }).click();
345
+ await expect(page.getByTestId('cart-item')).toHaveCount(1);
346
+
347
+ // 4. Prosseguir para checkout
348
+ await page.getByRole('button', { name: 'Finalizar compra' }).click();
349
+
350
+ // 5. Preencher endereço
351
+ await page.getByLabel('CEP').fill('01310-100');
352
+ await page.waitForResponse('**/api/address/**'); // Aguardar busca de CEP
353
+ await page.getByLabel('Número').fill('100');
354
+ await page.getByRole('button', { name: 'Continuar' }).click();
355
+
356
+ // 6. Selecionar pagamento
357
+ await page.getByLabel('Cartão de crédito').check();
358
+ await page.getByLabel('Número do cartão').fill('4242424242424242');
359
+ await page.getByLabel('Validade').fill('12/28');
360
+ await page.getByLabel('CVV').fill('123');
361
+ await page.getByRole('button', { name: 'Pagar' }).click();
362
+
363
+ // 7. Verificar confirmação
364
+ await expect(page.getByText('Pedido confirmado')).toBeVisible({ timeout: 10000 });
365
+ await expect(page.getByTestId('order-number')).toBeVisible();
366
+ });
367
+
368
+ test('should handle payment failure gracefully', async ({ page }) => {
369
+ // ... adicionar produto e ir para checkout
370
+
371
+ // Usar cartão que falha
372
+ await page.getByLabel('Número do cartão').fill('4000000000000002');
373
+ await page.getByRole('button', { name: 'Pagar' }).click();
374
+
375
+ await expect(page.getByRole('alert')).toContainText('Pagamento recusado');
376
+ // Usuário deve poder tentar novamente
377
+ await expect(page.getByRole('button', { name: 'Pagar' })).toBeEnabled();
378
+ });
379
+ });
380
+ ```
381
+
382
+ ### 7. Testes de Smoke (Críticos)
383
+
384
+ ```typescript
385
+ // specs/smoke.spec.ts
386
+ import { test, expect } from '@playwright/test';
387
+
388
+ test.describe('Smoke Tests', () => {
389
+ test('homepage loads correctly', async ({ page }) => {
390
+ await page.goto('/');
391
+ await expect(page).toHaveTitle(/Nome do App/);
392
+ await expect(page.getByRole('navigation')).toBeVisible();
393
+ });
394
+
395
+ test('login page is accessible', async ({ page }) => {
396
+ await page.goto('/login');
397
+ await expect(page.getByRole('heading', { name: 'Entrar' })).toBeVisible();
398
+ });
399
+
400
+ test('API health check', async ({ request }) => {
401
+ const response = await request.get('/api/health');
402
+ expect(response.ok()).toBeTruthy();
403
+ });
404
+ });
405
+ ```
406
+
407
+ ### 8. Scripts e CI
408
+
409
+ ```json
410
+ // package.json
411
+ {
412
+ "scripts": {
413
+ "test:e2e": "playwright test",
414
+ "test:e2e:ui": "playwright test --ui",
415
+ "test:e2e:headed": "playwright test --headed",
416
+ "test:e2e:smoke": "playwright test --grep @smoke",
417
+ "test:e2e:report": "playwright show-report"
418
+ }
419
+ }
420
+ ```
421
+
422
+ ```yaml
423
+ # .github/workflows/e2e.yml
424
+ name: E2E Tests
425
+
426
+ on: [push, pull_request]
427
+
428
+ jobs:
429
+ e2e:
430
+ runs-on: ubuntu-latest
431
+ steps:
432
+ - uses: actions/checkout@v4
433
+ - uses: actions/setup-node@v4
434
+ with:
435
+ node-version: 20
436
+ - run: npm ci
437
+ - run: npx playwright install --with-deps
438
+ - run: npm run test:e2e
439
+ - uses: actions/upload-artifact@v4
440
+ if: failure()
441
+ with:
442
+ name: playwright-report
443
+ path: playwright-report/
444
+ ```
445
+ ```
446
+
447
+ ---
448
+
449
+ ## Checklist Pós-Geração
450
+
451
+ - [ ] Page Objects criados para páginas principais
452
+ - [ ] Fixtures de dados configurados
453
+ - [ ] Testes de autenticação (login, registro, logout)
454
+ - [ ] Testes de fluxos críticos de negócio
455
+ - [ ] Smoke tests para verificação rápida
456
+ - [ ] Configuração multi-browser
457
+ - [ ] Screenshots e vídeos em falha
458
+ - [ ] CI configurado com artefatos
459
+ - [ ] Seletores resilientes (role, label, testid)
460
+ - [ ] Timeouts apropriados