@maestro-ai/cli 1.0.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 (252) hide show
  1. package/README.md +59 -0
  2. package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
  3. package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
  4. package/content/guides/Checklist Mestre de Entrega.md +68 -0
  5. package/content/guides/Gates de Qualidade.md +209 -0
  6. package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
  7. package/content/guides/Guia de Chaos Engineering.md +267 -0
  8. package/content/guides/Guia de Debugging com IA.md +135 -0
  9. package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
  10. package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
  11. package/content/guides/Guia de Multi-tenancy.md +368 -0
  12. package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
  13. package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
  14. package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
  15. package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
  16. package/content/guides/Rules base.md +90 -0
  17. package/content/prompts/README.md +203 -0
  18. package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
  19. package/content/prompts/apis/design-api-rest.md +303 -0
  20. package/content/prompts/apis/idempotencia.md +254 -0
  21. package/content/prompts/apis/versionamento.md +313 -0
  22. package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
  23. package/content/prompts/arquitetura/clean-architecture.md +151 -0
  24. package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
  25. package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
  26. package/content/prompts/arquitetura/modelo-dominio.md +207 -0
  27. package/content/prompts/arquitetura/multi-tenancy.md +235 -0
  28. package/content/prompts/database/migrations-zero-downtime.md +192 -0
  29. package/content/prompts/database/otimizacao-queries.md +296 -0
  30. package/content/prompts/desenvolvimento/code-review.md +301 -0
  31. package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
  32. package/content/prompts/devops/docker-compose.md +336 -0
  33. package/content/prompts/devops/feature-flags.md +374 -0
  34. package/content/prompts/devops/kubernetes-deploy.md +460 -0
  35. package/content/prompts/devops/pipeline-cicd.md +358 -0
  36. package/content/prompts/devops/terraform-iac.md +502 -0
  37. package/content/prompts/escalabilidade/analise-performance.md +240 -0
  38. package/content/prompts/escalabilidade/analise-performance.txt +94 -0
  39. package/content/prompts/escalabilidade/caching.md +255 -0
  40. package/content/prompts/observabilidade/chaos-testing.md +237 -0
  41. package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
  42. package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
  43. package/content/prompts/observabilidade/slos.md +215 -0
  44. package/content/prompts/produto/discovery-inicial.md +203 -0
  45. package/content/prompts/produto/discovery-inicial.txt +33 -0
  46. package/content/prompts/requisitos/refinar-requisitos.md +232 -0
  47. package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
  48. package/content/prompts/seguranca/analise-seguranca.md +243 -0
  49. package/content/prompts/seguranca/pentest-checklist.md +333 -0
  50. package/content/prompts/seguranca/rate-limiting.md +356 -0
  51. package/content/prompts/seguranca/revisao-lgpd.md +227 -0
  52. package/content/prompts/seguranca/threat-modeling.md +224 -0
  53. package/content/prompts/testes/contract-testing.md +340 -0
  54. package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
  55. package/content/prompts/testes/testes-e2e.md +460 -0
  56. package/content/prompts/testes/testes-integracao.md +418 -0
  57. package/content/prompts/testes/testes-performance.md +458 -0
  58. package/content/prompts/ux/gerar-ui-stitch.md +151 -0
  59. package/content/skills/api-patterns/SKILL.md +81 -0
  60. package/content/skills/api-patterns/api-style.md +42 -0
  61. package/content/skills/api-patterns/auth.md +24 -0
  62. package/content/skills/api-patterns/documentation.md +26 -0
  63. package/content/skills/api-patterns/graphql.md +41 -0
  64. package/content/skills/api-patterns/rate-limiting.md +31 -0
  65. package/content/skills/api-patterns/response.md +37 -0
  66. package/content/skills/api-patterns/rest.md +40 -0
  67. package/content/skills/api-patterns/scripts/api_validator.py +211 -0
  68. package/content/skills/api-patterns/security-testing.md +122 -0
  69. package/content/skills/api-patterns/trpc.md +41 -0
  70. package/content/skills/api-patterns/versioning.md +22 -0
  71. package/content/skills/app-builder/SKILL.md +75 -0
  72. package/content/skills/app-builder/agent-coordination.md +71 -0
  73. package/content/skills/app-builder/feature-building.md +53 -0
  74. package/content/skills/app-builder/project-detection.md +34 -0
  75. package/content/skills/app-builder/scaffolding.md +118 -0
  76. package/content/skills/app-builder/tech-stack.md +40 -0
  77. package/content/skills/app-builder/templates/SKILL.md +39 -0
  78. package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  79. package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  80. package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  81. package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  82. package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  83. package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  84. package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  85. package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  86. package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  87. package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  88. package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  89. package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  90. package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  91. package/content/skills/architecture/SKILL.md +55 -0
  92. package/content/skills/architecture/context-discovery.md +43 -0
  93. package/content/skills/architecture/examples.md +94 -0
  94. package/content/skills/architecture/pattern-selection.md +68 -0
  95. package/content/skills/architecture/patterns-reference.md +50 -0
  96. package/content/skills/architecture/trade-off-analysis.md +77 -0
  97. package/content/skills/bash-linux/SKILL.md +199 -0
  98. package/content/skills/behavioral-modes/SKILL.md +242 -0
  99. package/content/skills/brainstorming/SKILL.md +163 -0
  100. package/content/skills/brainstorming/dynamic-questioning.md +350 -0
  101. package/content/skills/clean-code/SKILL.md +201 -0
  102. package/content/skills/code-review-checklist/SKILL.md +109 -0
  103. package/content/skills/database-design/SKILL.md +52 -0
  104. package/content/skills/database-design/database-selection.md +43 -0
  105. package/content/skills/database-design/indexing.md +39 -0
  106. package/content/skills/database-design/migrations.md +48 -0
  107. package/content/skills/database-design/optimization.md +36 -0
  108. package/content/skills/database-design/orm-selection.md +30 -0
  109. package/content/skills/database-design/schema-design.md +56 -0
  110. package/content/skills/database-design/scripts/schema_validator.py +172 -0
  111. package/content/skills/deployment-procedures/SKILL.md +241 -0
  112. package/content/skills/doc.md +177 -0
  113. package/content/skills/documentation-templates/SKILL.md +194 -0
  114. package/content/skills/frontend-design/SKILL.md +396 -0
  115. package/content/skills/frontend-design/animation-guide.md +331 -0
  116. package/content/skills/frontend-design/color-system.md +311 -0
  117. package/content/skills/frontend-design/decision-trees.md +418 -0
  118. package/content/skills/frontend-design/motion-graphics.md +306 -0
  119. package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  120. package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
  121. package/content/skills/frontend-design/typography-system.md +345 -0
  122. package/content/skills/frontend-design/ux-psychology.md +541 -0
  123. package/content/skills/frontend-design/visual-effects.md +383 -0
  124. package/content/skills/game-development/2d-games/SKILL.md +119 -0
  125. package/content/skills/game-development/3d-games/SKILL.md +135 -0
  126. package/content/skills/game-development/SKILL.md +167 -0
  127. package/content/skills/game-development/game-art/SKILL.md +185 -0
  128. package/content/skills/game-development/game-audio/SKILL.md +190 -0
  129. package/content/skills/game-development/game-design/SKILL.md +129 -0
  130. package/content/skills/game-development/mobile-games/SKILL.md +108 -0
  131. package/content/skills/game-development/multiplayer/SKILL.md +132 -0
  132. package/content/skills/game-development/pc-games/SKILL.md +144 -0
  133. package/content/skills/game-development/vr-ar/SKILL.md +123 -0
  134. package/content/skills/game-development/web-games/SKILL.md +150 -0
  135. package/content/skills/geo-fundamentals/SKILL.md +156 -0
  136. package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  137. package/content/skills/i18n-localization/SKILL.md +154 -0
  138. package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  139. package/content/skills/intelligent-routing/SKILL.md +334 -0
  140. package/content/skills/lint-and-validate/SKILL.md +45 -0
  141. package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
  142. package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  143. package/content/skills/mcp-builder/SKILL.md +176 -0
  144. package/content/skills/mobile-design/SKILL.md +394 -0
  145. package/content/skills/mobile-design/decision-trees.md +516 -0
  146. package/content/skills/mobile-design/mobile-backend.md +491 -0
  147. package/content/skills/mobile-design/mobile-color-system.md +420 -0
  148. package/content/skills/mobile-design/mobile-debugging.md +122 -0
  149. package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
  150. package/content/skills/mobile-design/mobile-navigation.md +458 -0
  151. package/content/skills/mobile-design/mobile-performance.md +767 -0
  152. package/content/skills/mobile-design/mobile-testing.md +356 -0
  153. package/content/skills/mobile-design/mobile-typography.md +433 -0
  154. package/content/skills/mobile-design/platform-android.md +666 -0
  155. package/content/skills/mobile-design/platform-ios.md +561 -0
  156. package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
  157. package/content/skills/mobile-design/touch-psychology.md +537 -0
  158. package/content/skills/nextjs-best-practices/SKILL.md +203 -0
  159. package/content/skills/nodejs-best-practices/SKILL.md +333 -0
  160. package/content/skills/parallel-agents/SKILL.md +175 -0
  161. package/content/skills/performance-profiling/SKILL.md +143 -0
  162. package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  163. package/content/skills/plan-writing/SKILL.md +152 -0
  164. package/content/skills/powershell-windows/SKILL.md +167 -0
  165. package/content/skills/python-patterns/SKILL.md +441 -0
  166. package/content/skills/react-patterns/SKILL.md +198 -0
  167. package/content/skills/red-team-tactics/SKILL.md +199 -0
  168. package/content/skills/seo-fundamentals/SKILL.md +129 -0
  169. package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  170. package/content/skills/server-management/SKILL.md +161 -0
  171. package/content/skills/systematic-debugging/SKILL.md +109 -0
  172. package/content/skills/tailwind-patterns/SKILL.md +269 -0
  173. package/content/skills/tdd-workflow/SKILL.md +149 -0
  174. package/content/skills/testing-patterns/SKILL.md +178 -0
  175. package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
  176. package/content/skills/vulnerability-scanner/SKILL.md +276 -0
  177. package/content/skills/vulnerability-scanner/checklists.md +121 -0
  178. package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  179. package/content/skills/webapp-testing/SKILL.md +187 -0
  180. package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  181. package/content/specialists/Especialista em Acessibilidade.md +266 -0
  182. package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
  183. package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
  184. package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
  185. package/content/specialists/Especialista em Banco de Dados.md +260 -0
  186. package/content/specialists/Especialista em Contrato de API.md +172 -0
  187. package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
  188. package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
  189. package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
  190. package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
  191. package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
  192. package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
  193. package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
  194. package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
  195. package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
  196. package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
  197. package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
  198. package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
  199. package/content/specialists/Especialista em Observabilidade.md +415 -0
  200. package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
  201. package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
  202. package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
  203. package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
  204. package/content/specialists/Especialista em UX Design.md +453 -0
  205. package/content/specialists/INDEX.md +43 -0
  206. package/content/templates/PRD.md +165 -0
  207. package/content/templates/README.md +65 -0
  208. package/content/templates/adr.md +103 -0
  209. package/content/templates/arquitetura.md +279 -0
  210. package/content/templates/backlog.md +185 -0
  211. package/content/templates/checklist-seguranca.md +180 -0
  212. package/content/templates/contexto.md +120 -0
  213. package/content/templates/criterios-aceite.md +99 -0
  214. package/content/templates/design-banco.md +270 -0
  215. package/content/templates/design-doc.md +240 -0
  216. package/content/templates/feature.md +88 -0
  217. package/content/templates/historia-backend.md +84 -0
  218. package/content/templates/historia-frontend.md +75 -0
  219. package/content/templates/historia-usuario.md +125 -0
  220. package/content/templates/mapa-navegacao.md +133 -0
  221. package/content/templates/matriz-rastreabilidade.md +121 -0
  222. package/content/templates/modelo-dominio.md +219 -0
  223. package/content/templates/plano-testes.md +199 -0
  224. package/content/templates/prototipo-stitch.md +138 -0
  225. package/content/templates/requisitos.md +162 -0
  226. package/content/templates/slo-sli.md +197 -0
  227. package/content/workflows/README-MCP.md +363 -0
  228. package/content/workflows/brainstorm.md +113 -0
  229. package/content/workflows/create.md +59 -0
  230. package/content/workflows/debug.md +103 -0
  231. package/content/workflows/deploy.md +176 -0
  232. package/content/workflows/enhance.md +63 -0
  233. package/content/workflows/mcp-debug.md +506 -0
  234. package/content/workflows/mcp-feature.md +385 -0
  235. package/content/workflows/mcp-gate.md +413 -0
  236. package/content/workflows/mcp-next.md +388 -0
  237. package/content/workflows/mcp-refactor.md +600 -0
  238. package/content/workflows/mcp-start.md +304 -0
  239. package/content/workflows/mcp-status.md +400 -0
  240. package/content/workflows/orchestrate.md +237 -0
  241. package/content/workflows/plan.md +89 -0
  242. package/content/workflows/preview.md +81 -0
  243. package/content/workflows/status.md +86 -0
  244. package/content/workflows/test.md +144 -0
  245. package/content/workflows/ui-ux-pro-max.md +296 -0
  246. package/dist/commands/init.d.ts +6 -0
  247. package/dist/commands/init.js +138 -0
  248. package/dist/commands/update.d.ts +5 -0
  249. package/dist/commands/update.js +50 -0
  250. package/dist/index.d.ts +2 -0
  251. package/dist/index.js +21 -0
  252. package/package.json +48 -0
@@ -0,0 +1,240 @@
1
+ # Prompt: Análise de Performance e Escalabilidade
2
+
3
+ > **Quando usar**: Após implementação inicial, antes de ir para produção, ou ao identificar gargalos
4
+ > **Especialista**: [Performance e Escalabilidade](../../02-especialistas/Especialista%20em%20Performance%20e%20Escalabilidade.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 atual do projeto
13
+ - `docs/05-arquitetura/arquitetura.md` - Arquitetura do sistema
14
+ - Métricas atuais (se existirem)
15
+
16
+ Após gerar, salve o resultado em:
17
+ - `docs/07-performance/analise-performance.md`
18
+
19
+ ---
20
+
21
+ ## Prompt Completo
22
+
23
+ ```text
24
+ Atue como engenheiro de performance sênior.
25
+
26
+ ## Contexto do Projeto
27
+
28
+ [COLE O CONTEÚDO DE docs/CONTEXTO.md]
29
+
30
+ ## Arquitetura Atual
31
+
32
+ Arquitetura: [DESCREVA COMPONENTES - API, Frontend, Banco, Cache, etc]
33
+ Stack: [TECNOLOGIAS USADAS]
34
+ Banco de dados: [TIPO, TAMANHO ESTIMADO DOS DADOS]
35
+ Infraestrutura: [Cloud provider, containers, serverless, etc]
36
+
37
+ ## Requisitos de Performance
38
+
39
+ Usuários esperados: [NÚMERO DE USUÁRIOS SIMULTÂNEOS]
40
+ Requests/segundo esperados: [NÚMERO]
41
+ SLA desejado: [LATÊNCIA p95, UPTIME %]
42
+
43
+ ## Endpoints Críticos
44
+
45
+ [LISTE OS 3-5 ENDPOINTS MAIS IMPORTANTES]
46
+ - [Endpoint 1]: [Descrição e frequência de uso]
47
+ - [Endpoint 2]: [Descrição e frequência de uso]
48
+
49
+ ---
50
+
51
+ ## Sua Missão
52
+
53
+ Analise e proponha otimizações de performance e escalabilidade:
54
+
55
+ ### 1. Análise de Gargalos
56
+
57
+ #### 1.1 Database
58
+ - Queries potencialmente problemáticas
59
+ - Necessidade de índices
60
+ - N+1 queries
61
+ - Connection pool sizing
62
+ - Locks e deadlocks potenciais
63
+
64
+ #### 1.2 Application
65
+ - CPU-bound vs I/O-bound operations
66
+ - Memory leaks potenciais
67
+ - Concurrency issues
68
+ - Bloqueios síncronos desnecessários
69
+ - Cold starts (se serverless)
70
+
71
+ #### 1.3 Network
72
+ - Latência entre serviços
73
+ - Payload sizes (compressão)
74
+ - Número de roundtrips
75
+ - DNS lookups
76
+
77
+ #### 1.4 Frontend (se aplicável)
78
+ - Bundle size
79
+ - Imagens e assets
80
+ - Render blocking resources
81
+
82
+ ### 2. Estratégia de Caching
83
+
84
+ #### 2.1 O que cachear
85
+ - Dados que mudam raramente
86
+ - Queries frequentes e custosas
87
+ - Sessões e autenticação
88
+ - Respostas de APIs externas
89
+
90
+ #### 2.2 Onde cachear
91
+ | Camada | Tecnologia | Casos de Uso |
92
+ |--------|------------|--------------|
93
+ | Application | In-memory | Hot data |
94
+ | Distributed | Redis/Memcached | Sessões, queries |
95
+ | CDN | CloudFlare/CloudFront | Assets, páginas |
96
+ | Browser | Cache headers | Assets estáticos |
97
+
98
+ #### 2.3 Cache Policies
99
+ - TTL por tipo de dado
100
+ - Estratégia de invalidação (write-through, write-behind, cache-aside)
101
+ - Handling de cache miss thundering herd
102
+
103
+ ### 3. Escalabilidade
104
+
105
+ #### 3.1 Horizontal Scaling (Scale Out)
106
+ - Quais componentes escalam horizontalmente
107
+ - Como manter estado (stateless vs stateful)
108
+ - Session affinity considerations
109
+ - Load balancing strategy
110
+
111
+ #### 3.2 Database Scaling
112
+ - Read replicas
113
+ - Sharding (se necessário)
114
+ - Connection pooling (PgBouncer, ProxySQL)
115
+ - Particionamento de tabelas
116
+
117
+ #### 3.3 Auto-scaling
118
+ | Métrica | Threshold | Ação |
119
+ |---------|-----------|------|
120
+ | CPU | > X% | Scale up |
121
+ | Memory | > Y% | Scale up |
122
+ | Queue depth | > Z | Add workers |
123
+ | Response time | > Wms | Scale out |
124
+
125
+ - Cooldown periods
126
+ - Minimum/Maximum instances
127
+
128
+ ### 4. Performance Targets (SLOs)
129
+
130
+ | Endpoint/Fluxo | Latência p50 | Latência p95 | Throughput |
131
+ |----------------|--------------|--------------|------------|
132
+ | [Endpoint 1] | < Xms | < Yms | Z req/s |
133
+ | [Endpoint 2] | < Xms | < Yms | Z req/s |
134
+
135
+ ### 5. Query Optimization
136
+
137
+ Para as queries mais críticas, sugira:
138
+ - Índices necessários
139
+ - Query rewrites
140
+ - Explain analyze interpretation
141
+
142
+ ### 6. Plano de Load Test
143
+
144
+ - Cenários a testar (ramp-up, spike, soak)
145
+ - Ferramentas sugeridas (k6, Locust, Artillery)
146
+ - Métricas a monitorar durante teste
147
+ - Baseline vs target
148
+
149
+ ### 7. Quick Wins vs Long Term
150
+
151
+ | Otimização | Esforço | Impacto | Prioridade |
152
+ |------------|---------|---------|------------|
153
+ | [Otimização 1] | Baixo | Alto | ⭐⭐⭐ |
154
+ | [Otimização 2] | Médio | Alto | ⭐⭐⭐ |
155
+ | [Otimização 3] | Alto | Médio | ⭐⭐ |
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Exemplo de Uso
161
+
162
+ ```text
163
+ Atue como engenheiro de performance sênior.
164
+
165
+ ## Contexto do Projeto
166
+
167
+ Marketplace de serviços locais com agendamento online.
168
+
169
+ ## Arquitetura Atual
170
+
171
+ Arquitetura:
172
+ - Frontend: Next.js na Vercel
173
+ - API: NestJS em containers no ECS
174
+ - Banco: PostgreSQL RDS (db.t3.medium)
175
+ - Cache: Nenhum atualmente
176
+
177
+ Stack: Node.js 18, TypeScript, Prisma ORM
178
+ Banco de dados: PostgreSQL 15, ~50GB de dados esperados
179
+ Infraestrutura: AWS (ECS, RDS, ALB)
180
+
181
+ ## Requisitos de Performance
182
+
183
+ Usuários esperados: 1000 simultâneos no pico
184
+ Requests/segundo esperados: 200
185
+ SLA desejado: p95 < 300ms, 99.9% uptime
186
+
187
+ ## Endpoints Críticos
188
+
189
+ - GET /api/profissionais?cidade=X: Listagem de prestadores (~40% do tráfego)
190
+ - POST /api/agendamentos: Criação de agendamento (~15% do tráfego)
191
+ - GET /api/agenda/:id/disponibilidade: Horários livres (~30% do tráfego)
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Resposta Esperada
197
+
198
+ ### Gargalos Identificados
199
+
200
+ 1. **Query de listagem** - Falta índice em `cidade` + `ativo`
201
+ 2. **Disponibilidade** - Consulta completa para calcular, deveria ser pré-computada
202
+ 3. **Sessões** - Stored in DB, should be Redis
203
+ 4. **Sem cache** - Queries repetidas a cada request
204
+
205
+ ### Cache Strategy
206
+
207
+ | Dado | Onde | TTL | Invalidação |
208
+ |------|------|-----|-------------|
209
+ | Lista de profissionais | Redis | 5min | On update |
210
+ | Disponibilidade | Redis | 1min | On agendamento |
211
+ | Sessão | Redis | 1h | On logout |
212
+ | Assets | CDN | 1 semana | Deploy hash |
213
+
214
+ ### Scaling
215
+
216
+ - **API**: 2-10 pods, HPA on CPU > 70%
217
+ - **Database**: 1 primary + 2 read replicas
218
+ - **Redis**: ElastiCache cluster mode
219
+
220
+ ### Quick Wins
221
+
222
+ | Otimização | Esforço | Impacto |
223
+ |------------|---------|---------|
224
+ | Adicionar Redis para sessões | 2h | Alto |
225
+ | Índice em cidade+ativo | 30min | Alto |
226
+ | Cache de listagem | 4h | Alto |
227
+ | Read replica para queries | 2h | Médio |
228
+
229
+ ---
230
+
231
+ ## Checklist Pós-Geração
232
+
233
+ - [ ] Gargalos identificados por camada (DB, App, Network)
234
+ - [ ] Estratégia de cache definida (o quê, onde, TTL)
235
+ - [ ] Índices sugeridos para queries críticas
236
+ - [ ] Thresholds de auto-scaling definidos
237
+ - [ ] SLOs documentados por endpoint
238
+ - [ ] Quick wins priorizados
239
+ - [ ] Plano de load test sugerido
240
+ - [ ] Salvar em `docs/07-performance/analise-performance.md`
@@ -0,0 +1,94 @@
1
+ Atue como engenheiro de performance sênior.
2
+
3
+ Sistema:
4
+ - Arquitetura: [DESCREVA]
5
+ - Stack: [TECNOLOGIAS]
6
+ - Banco: [TIPO E TAMANHO]
7
+ - Usuários esperados: [NÚMERO]
8
+ - Requests/segundo esperados: [NÚMERO]
9
+
10
+ Analise e proponha otimizações de performance e escalabilidade:
11
+
12
+ ## 1. Análise de Gargalos
13
+
14
+ ### 1.1 Database
15
+ - Queries potencialmente problemáticas
16
+ - Necessidade de índices
17
+ - N+1 queries
18
+ - Connection pool sizing
19
+
20
+ ### 1.2 Application
21
+ - CPU-bound vs I/O-bound
22
+ - Memory leaks potenciais
23
+ - Concurrency issues
24
+
25
+ ### 1.3 Network
26
+ - Latência entre serviços
27
+ - Payload sizes
28
+ - Número de roundtrips
29
+
30
+ ## 2. Estratégia de Caching
31
+
32
+ ### 2.1 O que cachear
33
+ - Dados que mudam raramente
34
+ - Queries frequentes
35
+ - Sessões/auth
36
+
37
+ ### 2.2 Onde cachear
38
+ - Application level
39
+ - Redis/Memcached
40
+ - CDN (assets estáticos)
41
+
42
+ ### 2.3 TTL e Invalidação
43
+ - Tempo de expiração por tipo
44
+ - Estratégia de invalidação
45
+
46
+ ## 3. Escalabilidade
47
+
48
+ ### 3.1 Horizontal Scaling
49
+ - Quais componentes escalam
50
+ - Como manter estado (stateless)
51
+ - Load balancing
52
+
53
+ ### 3.2 Database Scaling
54
+ - Read replicas
55
+ - Sharding (se necessário)
56
+ - Connection pooling
57
+
58
+ ### 3.3 Auto-scaling
59
+ - Métricas de trigger
60
+ - Thresholds
61
+ - Cooldown periods
62
+
63
+ ## 4. Performance Targets (SLOs)
64
+
65
+ | Endpoint/Fluxo | Latência p95 | Throughput |
66
+ |---|---|---|
67
+ | [Endpoint 1] | < Xms | Y req/s |
68
+
69
+ ## 5. Plano de Load Test
70
+
71
+ - Cenários a testar
72
+ - Ferramentas sugeridas
73
+ - Métricas a monitorar
74
+
75
+ ---
76
+
77
+ ## Resposta Esperada (Resumo)
78
+
79
+ ### Gargalos Identificados
80
+ 1. **Query de listagem** - Falta índice em `created_at`
81
+ 2. **Uploads** - Bloqueiam thread principal
82
+ 3. **Sessões** - Stored in DB, should be Redis
83
+
84
+ ### Cache Strategy
85
+ | Dado | Onde | TTL | Invalidação |
86
+ |---|---|---|---|
87
+ | Lista de produtos | Redis | 5min | On update |
88
+ | Sessão | Redis | 1h | On logout |
89
+ | Assets | CDN | 1d | Deploy |
90
+
91
+ ### Scaling
92
+ - API: 2-10 pods, HPA on CPU > 70%
93
+ - Database: 1 primary + 2 read replicas
94
+ - Redis: Cluster mode for high availability
@@ -0,0 +1,255 @@
1
+ # Prompt: Estratégias de Cache
2
+
3
+ > **Prioridade**: 🟡 MÉDIA
4
+ > **Aplicável a**: APIs com alta carga, dados lidos frequentemente
5
+
6
+ ---
7
+
8
+ ## Prompt Base: Projetar Cache
9
+
10
+ ```text
11
+ Atue como engenheiro de performance.
12
+
13
+ Tenho um sistema com:
14
+ - Stack: [ex. Node.js + PostgreSQL + Redis]
15
+ - Tráfego: [ex. 1000 req/s, 80% leitura, 20% escrita]
16
+ - Dados: [ex. catálogo de 50k produtos, users sessions, configurações]
17
+ - Latência atual: [ex. p95 = 500ms]
18
+ - Meta: [ex. p95 < 100ms]
19
+
20
+ Para cada tipo de dado, recomende:
21
+
22
+ 1. **Padrão de Cache**
23
+ - Cache-aside, write-through, read-through, ou combinação
24
+ - Justificativa
25
+
26
+ 2. **TTL e Invalidação**
27
+ - Tempo de vida sugerido
28
+ - Estratégia de invalidação (explícita, event-driven, TTL puro)
29
+
30
+ 3. **Estrutura no Redis**
31
+ - Tipo de dado Redis (string, hash, set, sorted set)
32
+ - Naming convention para keys
33
+ - Exemplos de comandos
34
+
35
+ 4. **Código de Implementação**
36
+ - Cache layer reutilizável
37
+ - Decorators ou helpers
38
+ - Tratamento de cache miss e falha do Redis
39
+
40
+ 5. **Métricas**
41
+ - O que monitorar
42
+ - Alertas recomendados
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Prompt: Cache para Endpoint Específico
48
+
49
+ ```text
50
+ Tenho este endpoint que é lento:
51
+ [COLE CÓDIGO DO ENDPOINT]
52
+
53
+ Métricas atuais:
54
+ - Latência: [ex. p95 = 800ms]
55
+ - Chamadas/dia: [ex. 100k]
56
+ - Taxa de mudança dos dados: [ex. atualizam 1x por hora]
57
+
58
+ Gere:
59
+ 1. Análise do que pode ser cacheado
60
+ 2. Implementação com cache-aside
61
+ 3. Estratégia de invalidação
62
+ 4. Código refatorado
63
+ 5. Testes para validar cache hit/miss
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Prompt: Invalidação de Cache
69
+
70
+ ```text
71
+ Tenho o seguinte cenário de cache:
72
+ - Entidades: [ex. User, Order, Product]
73
+ - Relacionamentos: [ex. User tem Orders, Order tem Products]
74
+ - Caches atuais: [ex. user:123, user:123:orders, product:456]
75
+
76
+ Quando um User é atualizado, preciso invalidar: [DESCREVA]
77
+
78
+ Projete uma estratégia de invalidação que:
79
+ 1. Garanta consistência
80
+ 2. Minimize invalidações desnecessárias
81
+ 3. Use eventos/pub-sub se benéfico
82
+ 4. Documente quais eventos afetam quais caches
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Prompt: Cache Multi-Layer
88
+
89
+ ```text
90
+ Quero implementar cache em múltiplas camadas:
91
+ 1. Browser/CDN (edge)
92
+ 2. Application (in-memory)
93
+ 3. Distributed (Redis)
94
+ 4. Database (query cache)
95
+
96
+ Para estes endpoints:
97
+ [LISTE ENDPOINTS E CARACTERÍSTICAS]
98
+
99
+ Gere:
100
+ 1. Estratégia por camada
101
+ 2. Headers HTTP para cache de browser/CDN
102
+ 3. Código para cache in-memory + Redis
103
+ 4. Quando usar cada camada
104
+ 5. Como invalidar coordenadamente
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Prompt: Resolver Cache Stampede
110
+
111
+ ```text
112
+ Estou tendo problemas de cache stampede:
113
+ - Cenário: [ex. muitos requests simultâneos no cache miss]
114
+ - Impacto: [ex. banco sobrecarrega, timeout em cascata]
115
+
116
+ Stack: [DESCREVA]
117
+
118
+ Implemente:
119
+ 1. Lock de requisição única (singleflight)
120
+ 2. Probabilistic early expiration
121
+ 3. Fallback para stale data durante refresh
122
+ 4. Código completo com testes
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Exemplo: Cache Layer Genérico
128
+
129
+ ```typescript
130
+ // src/cache/cacheLayer.ts
131
+ import Redis from 'ioredis';
132
+
133
+ interface CacheOptions {
134
+ ttl?: number; // segundos
135
+ staleWhileRevalidate?: boolean;
136
+ lockTimeout?: number; // ms
137
+ }
138
+
139
+ class CacheLayer {
140
+ private redis: Redis;
141
+ private locks = new Map<string, Promise<any>>();
142
+
143
+ constructor(redis: Redis) {
144
+ this.redis = redis;
145
+ }
146
+
147
+ async get<T>(
148
+ key: string,
149
+ fetcher: () => Promise<T>,
150
+ options: CacheOptions = {}
151
+ ): Promise<T> {
152
+ const { ttl = 3600, staleWhileRevalidate = false, lockTimeout = 5000 } = options;
153
+
154
+ // 1. Tentar cache
155
+ const cached = await this.redis.get(key);
156
+ if (cached) {
157
+ const data = JSON.parse(cached);
158
+
159
+ // SWR: retornar stale e atualizar em background
160
+ if (staleWhileRevalidate && this.isNearExpiry(key)) {
161
+ this.refreshInBackground(key, fetcher, ttl);
162
+ }
163
+
164
+ return data;
165
+ }
166
+
167
+ // 2. Prevenir stampede com lock
168
+ if (this.locks.has(key)) {
169
+ return this.locks.get(key);
170
+ }
171
+
172
+ // 3. Buscar com timeout
173
+ const promise = this.fetchWithLock(key, fetcher, ttl, lockTimeout);
174
+ this.locks.set(key, promise);
175
+
176
+ try {
177
+ return await promise;
178
+ } finally {
179
+ this.locks.delete(key);
180
+ }
181
+ }
182
+
183
+ async invalidate(key: string): Promise<void> {
184
+ await this.redis.del(key);
185
+ }
186
+
187
+ async invalidatePattern(pattern: string): Promise<void> {
188
+ const keys = await this.redis.keys(pattern);
189
+ if (keys.length > 0) {
190
+ await this.redis.del(...keys);
191
+ }
192
+ }
193
+
194
+ private async fetchWithLock<T>(
195
+ key: string,
196
+ fetcher: () => Promise<T>,
197
+ ttl: number,
198
+ timeout: number
199
+ ): Promise<T> {
200
+ const lockKey = `lock:${key}`;
201
+ const lockAcquired = await this.redis.set(lockKey, '1', 'PX', timeout, 'NX');
202
+
203
+ try {
204
+ const data = await fetcher();
205
+ await this.redis.setex(key, ttl, JSON.stringify(data));
206
+ return data;
207
+ } finally {
208
+ await this.redis.del(lockKey);
209
+ }
210
+ }
211
+
212
+ private async isNearExpiry(key: string): Promise<boolean> {
213
+ const ttl = await this.redis.ttl(key);
214
+ return ttl < 60; // último minuto
215
+ }
216
+
217
+ private async refreshInBackground<T>(
218
+ key: string,
219
+ fetcher: () => Promise<T>,
220
+ ttl: number
221
+ ): Promise<void> {
222
+ // Fire and forget
223
+ fetcher()
224
+ .then(data => this.redis.setex(key, ttl, JSON.stringify(data)))
225
+ .catch(err => console.error(`Background refresh failed for ${key}:`, err));
226
+ }
227
+ }
228
+
229
+ // Uso
230
+ const cache = new CacheLayer(redis);
231
+
232
+ const user = await cache.get(
233
+ `user:${userId}`,
234
+ () => db.users.findById(userId),
235
+ { ttl: 300, staleWhileRevalidate: true }
236
+ );
237
+ ```
238
+
239
+ ---
240
+
241
+ ## Checklist
242
+
243
+ - [ ] Padrão de cache escolhido para cada tipo de dado
244
+ - [ ] TTLs definidos e documentados
245
+ - [ ] Invalidação implementada para operações de escrita
246
+ - [ ] Proteção contra stampede
247
+ - [ ] Monitoramento de hit rate
248
+ - [ ] Fallback se Redis indisponível
249
+ - [ ] Testes de cache hit, miss, e invalidação
250
+
251
+ ---
252
+
253
+ ## Referências
254
+
255
+ Consulte: [Guia de Estratégias de Cache](../03-guias/Guia%20de%20Estratégias%20de%20Cache.md)