@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,313 @@
1
+ # Prompt: Versionamento de APIs
2
+
3
+ > **Prioridade**: 🟠 ALTA
4
+ > **Aplicável a**: APIs públicas, integrações com terceiros, sistemas com múltiplos clientes
5
+
6
+ ---
7
+
8
+ ## Por que Versionar?
9
+
10
+ - **Breaking changes** sem quebrar clientes existentes
11
+ - **Deprecação gradual** de funcionalidades
12
+ - **Múltiplas versões** em produção simultaneamente
13
+ - **Contratos estáveis** para integradores
14
+
15
+ ---
16
+
17
+ ## Estratégias de Versionamento
18
+
19
+ | Estratégia | Exemplo | Prós | Contras |
20
+ |------------|---------|------|---------|
21
+ | **URL Path** | `/v1/users` | Simples, cache-friendly | Mudança de URL |
22
+ | **Query Param** | `/users?version=1` | Fácil de adicionar | Menos RESTful |
23
+ | **Header** | `Accept: application/vnd.api.v1+json` | Não polui URL | Menos visível |
24
+ | **Content Negotiation** | `Accept: application/vnd.company.v2+json` | Padrão HTTP | Mais complexo |
25
+
26
+ ---
27
+
28
+ ## Prompt Base: Estratégia de Versionamento
29
+
30
+ ```text
31
+ Atue como arquiteto de APIs.
32
+
33
+ Estou criando uma API com as seguintes características:
34
+ - Tipo: [REST/GraphQL]
35
+ - Clientes: [internos/externos/públicos]
36
+ - Frequência de breaking changes esperada: [alta/média/baixa]
37
+ - Suporte simultâneo de versões: [ex. 2 versões, 6 meses]
38
+
39
+ Recomende uma estratégia de versionamento considerando:
40
+
41
+ 1. **Mecanismo de Versão**
42
+ - URL path, header, query param, ou híbrido
43
+ - Justificativa para o contexto
44
+
45
+ 2. **Política de Deprecação**
46
+ - Quanto tempo uma versão é suportada?
47
+ - Como comunicar deprecação aos clientes?
48
+ - Headers de deprecação
49
+
50
+ 3. **O que constitui uma nova versão?**
51
+ - Breaking vs non-breaking changes
52
+ - Quando incrementar major/minor
53
+
54
+ 4. **Implementação**
55
+ - Estrutura de código para múltiplas versões
56
+ - Como compartilhar lógica entre versões
57
+ - Testes por versão
58
+
59
+ 5. **Documentação**
60
+ - OpenAPI por versão ou unificado?
61
+ - Changelog entre versões
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Prompt: Implementar Versionamento
67
+
68
+ ```text
69
+ Tenho uma API existente que precisa de versionamento:
70
+ [COLE ESTRUTURA DE ENDPOINTS ATUAL]
71
+
72
+ Stack: [ex. Node.js + Express / Java + Spring]
73
+
74
+ Estratégia escolhida: [URL Path / Header / etc]
75
+
76
+ Gere:
77
+ 1. Middleware/interceptor para roteamento de versões
78
+ 2. Estrutura de pastas para organizar versões
79
+ 3. Exemplo de endpoint com v1 e v2
80
+ 4. Headers de deprecação (Sunset, Deprecation)
81
+ 5. Testes para verificar compatibilidade
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Prompt: Migrar de v1 para v2
87
+
88
+ ```text
89
+ Tenho esta API v1:
90
+ [COLE ENDPOINTS E SCHEMAS]
91
+
92
+ Preciso criar v2 com estas mudanças:
93
+ [DESCREVA BREAKING CHANGES]
94
+
95
+ Gere:
96
+ 1. API v2 com as mudanças
97
+ 2. Estratégia de migração para clientes
98
+ 3. Período de dual-support recomendado
99
+ 4. Guia de migração para documentação
100
+ 5. Headers para comunicar deprecação de v1
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Headers de Deprecação (RFC 8594)
106
+
107
+ ```http
108
+ HTTP/1.1 200 OK
109
+ Deprecation: @1735689600
110
+ Sunset: Sat, 01 Jan 2025 00:00:00 GMT
111
+ Link: <https://api.example.com/docs/v2>; rel="successor-version"
112
+ ```
113
+
114
+ | Header | Significado |
115
+ |--------|-------------|
116
+ | `Deprecation` | Timestamp Unix de quando foi marcado como deprecated |
117
+ | `Sunset` | Data após a qual não será mais disponível |
118
+ | `Link: rel="successor-version"` | Link para nova versão |
119
+
120
+ ---
121
+
122
+ ## Exemplo: Versionamento por URL (Node.js + Express)
123
+
124
+ ```typescript
125
+ // src/app.ts
126
+ import express from 'express';
127
+ import v1Router from './routes/v1';
128
+ import v2Router from './routes/v2';
129
+
130
+ const app = express();
131
+
132
+ // Versionamento por URL
133
+ app.use('/api/v1', v1Router);
134
+ app.use('/api/v2', v2Router);
135
+
136
+ // Fallback para versão padrão
137
+ app.use('/api', (req, res, next) => {
138
+ res.redirect(301, `/api/v2${req.path}`);
139
+ });
140
+ ```
141
+
142
+ ```typescript
143
+ // src/routes/v1/users.ts
144
+ router.get('/', async (req, res) => {
145
+ const users = await userService.getAll();
146
+
147
+ // v1: resposta com formato antigo
148
+ res.json({
149
+ data: users.map(u => ({
150
+ id: u.id,
151
+ name: u.full_name, // v1 usa "name"
152
+ email: u.email
153
+ }))
154
+ });
155
+ });
156
+ ```
157
+
158
+ ```typescript
159
+ // src/routes/v2/users.ts
160
+ router.get('/', async (req, res) => {
161
+ const users = await userService.getAll();
162
+
163
+ // v2: resposta com novo formato
164
+ res.json({
165
+ data: users.map(u => ({
166
+ id: u.id,
167
+ full_name: u.full_name, // v2 usa "full_name"
168
+ email: u.email,
169
+ profile: u.profile // v2 adiciona profile
170
+ })),
171
+ meta: {
172
+ total: users.length,
173
+ version: 'v2'
174
+ }
175
+ });
176
+ });
177
+ ```
178
+
179
+ ---
180
+
181
+ ## Exemplo: Versionamento por Header
182
+
183
+ ```typescript
184
+ // src/middleware/versioning.ts
185
+ const VERSION_HEADER = 'X-API-Version';
186
+ const DEFAULT_VERSION = '2';
187
+
188
+ export function versionRouter(req, res, next) {
189
+ const version = req.headers[VERSION_HEADER.toLowerCase()] || DEFAULT_VERSION;
190
+
191
+ // Anexar versão ao request
192
+ req.apiVersion = version;
193
+
194
+ // Adicionar headers de resposta
195
+ res.setHeader(VERSION_HEADER, version);
196
+
197
+ if (version === '1') {
198
+ res.setHeader('Deprecation', '@1704067200');
199
+ res.setHeader('Sunset', 'Mon, 01 Jul 2024 00:00:00 GMT');
200
+ }
201
+
202
+ next();
203
+ }
204
+
205
+ // No controller
206
+ export function getUsers(req, res) {
207
+ const users = userService.getAll();
208
+
209
+ if (req.apiVersion === '1') {
210
+ return res.json(formatV1(users));
211
+ }
212
+
213
+ return res.json(formatV2(users));
214
+ }
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Política de Breaking Changes
220
+
221
+ ### O que é Breaking Change?
222
+
223
+ | Tipo de Mudança | Breaking? | Ação |
224
+ |-----------------|-----------|------|
225
+ | Remover endpoint | ✅ Sim | Nova versão major |
226
+ | Remover campo da resposta | ✅ Sim | Nova versão major |
227
+ | Renomear campo | ✅ Sim | Nova versão major |
228
+ | Alterar tipo de campo | ✅ Sim | Nova versão major |
229
+ | Adicionar campo obrigatório no request | ✅ Sim | Nova versão major |
230
+ | Adicionar campo opcional na resposta | ❌ Não | Versão atual |
231
+ | Adicionar endpoint | ❌ Não | Versão atual |
232
+ | Adicionar campo opcional no request | ❌ Não | Versão atual |
233
+
234
+ ### Exemplo de Política
235
+
236
+ ```markdown
237
+ ## Política de Versionamento - API [NOME]
238
+
239
+ ### Versões Suportadas
240
+ - Máximo de 2 versões major em produção
241
+ - Versão deprecated tem suporte por 6 meses após lançamento da próxima
242
+ - Versão sunset é comunicada com 3 meses de antecedência
243
+
244
+ ### Comunicação
245
+ - Changelog público em /docs/changelog
246
+ - Email para clientes cadastrados em mudanças major
247
+ - Headers Deprecation e Sunset em respostas
248
+
249
+ ### SLA de Deprecação
250
+ 1. Anúncio: -6 meses do sunset
251
+ 2. Deprecation header: -3 meses do sunset
252
+ 3. Sunset: remoção completa
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Documentação Multi-Versão
258
+
259
+ ### OpenAPI por Versão
260
+
261
+ ```yaml
262
+ # openapi-v1.yaml
263
+ openapi: 3.0.0
264
+ info:
265
+ title: API v1 (Deprecated)
266
+ version: 1.0.0
267
+ x-deprecation-date: 2024-01-01
268
+
269
+ # openapi-v2.yaml
270
+ openapi: 3.0.0
271
+ info:
272
+ title: API v2 (Current)
273
+ version: 2.0.0
274
+ ```
275
+
276
+ ### Changelog
277
+
278
+ ```markdown
279
+ # Changelog
280
+
281
+ ## v2.0.0 (2024-01-15)
282
+
283
+ ### Breaking Changes
284
+ - `GET /users`: Campo `name` renomeado para `full_name`
285
+ - `POST /users`: Campo `profile_url` agora é obrigatório
286
+
287
+ ### Migração de v1 para v2
288
+ 1. Substituir `name` por `full_name` em todas as requisições
289
+ 2. Adicionar `profile_url` ao criar usuários
290
+
291
+ ## v1.0.0 (2023-06-01)
292
+ - Release inicial
293
+ ```
294
+
295
+ ---
296
+
297
+ ## Checklist
298
+
299
+ - [ ] Estratégia de versionamento definida e documentada
300
+ - [ ] Política de breaking changes clara
301
+ - [ ] Headers de deprecação implementados
302
+ - [ ] Documentação separada por versão
303
+ - [ ] Changelog atualizado
304
+ - [ ] Testes para todas as versões ativas
305
+ - [ ] Roteamento de versões testado
306
+
307
+ ---
308
+
309
+ ## Referências
310
+
311
+ - [RFC 8594 - The Sunset HTTP Header](https://tools.ietf.org/html/rfc8594)
312
+ - [API Versioning Best Practices](https://www.mnot.net/blog/2012/12/04/api-evolution)
313
+ - [Stripe API Versioning](https://stripe.com/docs/api/versioning)
@@ -0,0 +1,190 @@
1
+ # Prompt: Arquitetura C4 Completa
2
+
3
+ > **Quando usar**: Início da fase de arquitetura, para definir visão geral do sistema
4
+ > **Especialista**: [Arquitetura de Software](../../02-especialistas/Especialista%20em%20Arquitetura%20de%20Software.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/02-requisitos/requisitos.md` - Requisitos funcionais e não-funcionais
14
+
15
+ Após gerar, salve o resultado em:
16
+ - `docs/05-arquitetura/arquitetura-c4.md`
17
+
18
+ ---
19
+
20
+ ## Prompt Completo
21
+
22
+ ```text
23
+ Atue como arquiteto de software sênior especializado em arquitetura C4.
24
+
25
+ ## Contexto do Projeto
26
+
27
+ [COLE O CONTEÚDO DE docs/CONTEXTO.md]
28
+
29
+ ## Requisitos
30
+
31
+ Requisitos funcionais:
32
+ [COLE RFs DE docs/02-requisitos/requisitos.md]
33
+
34
+ Requisitos não-funcionais:
35
+ [COLE RNFs DE docs/02-requisitos/requisitos.md]
36
+
37
+ Stack sugerida: [DESCREVA A STACK PREFERENCIAL]
38
+ Escala esperada: [X usuários simultâneos, Y requests/segundo]
39
+ Orçamento de infra: [ORÇAMENTO MENSAL]
40
+
41
+ ---
42
+
43
+ ## Sua Missão
44
+
45
+ Entregue uma arquitetura completa usando o modelo C4:
46
+
47
+ ### 1. Diagrama C4 Nível 1 (Contexto)
48
+ - Atores externos (tipos de usuários)
49
+ - Sistemas externos que integram
50
+ - O sistema como caixa única
51
+ - Gere em formato Mermaid
52
+
53
+ ### 2. Diagrama C4 Nível 2 (Containers)
54
+ - Aplicações (web, API, mobile)
55
+ - Bancos de dados
56
+ - Message brokers (se aplicável)
57
+ - Caches
58
+ - Para cada container: tecnologia e responsabilidade
59
+ - Gere em formato Mermaid
60
+
61
+ ### 3. Diagrama C4 Nível 3 (Componentes) para o container principal
62
+ - Módulos/pacotes principais
63
+ - Responsabilidades de cada componente
64
+ - Dependências entre componentes
65
+ - Gere em formato Mermaid
66
+
67
+ ### 4. Decisões Arquiteturais (ADRs)
68
+
69
+ Para cada decisão, justifique:
70
+
71
+ **Padrão arquitetural**: [MVC/Hexagonal/DDD/Clean Architecture]
72
+ - Por que este padrão?
73
+ - Alternativas consideradas e por que foram descartadas
74
+
75
+ **Estratégia de persistência**:
76
+ - Banco escolhido e justificativa
77
+ - Estratégia de cache
78
+
79
+ **Estratégia de escalabilidade**:
80
+ - O que escala horizontalmente
81
+ - Pontos de bottleneck potenciais
82
+
83
+ **Observabilidade**:
84
+ - Logs, métricas, traces
85
+ - Ferramentas sugeridas
86
+
87
+ **Segurança**:
88
+ - Autenticação/autorização
89
+ - Proteção de dados sensíveis
90
+
91
+ ### 5. Trade-offs e Custos
92
+ - Prós e contras das decisões
93
+ - O que sacrificamos e por quê
94
+ - Custo estimado de infraestrutura (MVP e 6 meses)
95
+ - Riscos técnicos identificados
96
+
97
+ ### 6. Estrutura de Pastas
98
+ - Proposta de estrutura de diretórios do projeto
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Exemplo de Uso
104
+
105
+ ```text
106
+ Atue como arquiteto de software sênior especializado em arquitetura C4.
107
+
108
+ ## Contexto do Projeto
109
+
110
+ Sistema de agendamento online para salões de beleza. Permite que
111
+ clientes agendem horários via web/mobile e recebam confirmação via WhatsApp.
112
+
113
+ ## Requisitos
114
+
115
+ Requisitos funcionais:
116
+ - RF-001: O sistema deve permitir agendamento online
117
+ - RF-002: O sistema deve enviar confirmação via WhatsApp
118
+ - RF-003: O sistema deve permitir cancelamento até 2h antes
119
+
120
+ Requisitos não-funcionais:
121
+ - RNF-001: Tempo de resposta < 2 segundos
122
+ - RNF-002: Disponibilidade 99.5%
123
+
124
+ Stack sugerida: Node.js + TypeScript + PostgreSQL + Redis
125
+ Escala esperada: 500 usuários simultâneos, 50 requests/segundo
126
+ Orçamento de infra: R$ 300/mês
127
+
128
+ [CONTINUA COM O PROMPT COMPLETO]
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Resposta Esperada
134
+
135
+ ### 1. Contexto (C4 L1)
136
+
137
+ ```mermaid
138
+ graph TB
139
+ U[Usuário Final]
140
+ A[Admin do Salão]
141
+ S[Sistema de Agendamento]
142
+ P[Gateway de Pagamento]
143
+ W[API WhatsApp]
144
+
145
+ U -->|Usa| S
146
+ A -->|Gerencia| S
147
+ S -->|Processa| P
148
+ S -->|Notifica| W
149
+ ```
150
+
151
+ ### 2. Containers (C4 L2)
152
+
153
+ ```mermaid
154
+ graph TB
155
+ subgraph Sistema
156
+ WEB[Next.js - Frontend]
157
+ API[NestJS - API]
158
+ DB[(PostgreSQL)]
159
+ CACHE[(Redis)]
160
+ end
161
+
162
+ WEB --> API
163
+ API --> DB
164
+ API --> CACHE
165
+ ```
166
+
167
+ ### 4. Decisões
168
+
169
+ **Padrão**: Hexagonal Architecture
170
+ - **Por quê**: Separação clara entre domínio e infraestrutura
171
+ - **Alternativa descartada**: MVC - menos testável
172
+
173
+ **Banco**: PostgreSQL
174
+ - **Por quê**: ACID, JSON support, maturidade
175
+ - **Cache**: Redis para sessões e queries frequentes
176
+
177
+ ---
178
+
179
+ ## Checklist Pós-Geração
180
+
181
+ Após receber a arquitetura, valide:
182
+
183
+ - [ ] Diagrama C4 inclui níveis 1, 2 e 3
184
+ - [ ] Padrão arquitetural está justificado
185
+ - [ ] Pelo menos 4 ADRs documentados
186
+ - [ ] Estrutura de pastas proposta
187
+ - [ ] Estimativa de custos presente (MVP e 6 meses)
188
+ - [ ] Stack justificada com prós/contras
189
+ - [ ] Riscos técnicos identificados
190
+ - [ ] Salvar em `docs/05-arquitetura/arquitetura-c4.md`
@@ -0,0 +1,151 @@
1
+ # Prompt: Arquitetura Clean Architecture
2
+
3
+ > **Quando usar**: Projetos de nível Médio (1-3 meses, 5-15 entidades)
4
+ > **Especialista**: Arquitetura de Software
5
+
6
+ ---
7
+
8
+ ## Prompt Completo
9
+
10
+ ```text
11
+ Atue como arquiteto de software sênior especializado em Clean Architecture.
12
+
13
+ ## Contexto do Projeto
14
+
15
+ PRD:
16
+ [COLE O CONTEÚDO DE docs/01-produto/PRD.md]
17
+
18
+ Requisitos:
19
+ [COLE O CONTEÚDO DE docs/02-requisitos/requisitos.md]
20
+
21
+ Modelo de Domínio:
22
+ [COLE O CONTEÚDO DE docs/04-modelo/modelo-dominio.md]
23
+
24
+ Stack preferencial: [DESCREVA SUA STACK]
25
+ Prazo: [PRAZO DO MVP]
26
+ Orçamento de infra: [ORÇAMENTO MENSAL]
27
+
28
+ ---
29
+
30
+ ## Sua Missão
31
+
32
+ Proponha uma arquitetura em Clean Architecture considerando:
33
+
34
+ ### 1. Camadas da Arquitetura
35
+
36
+ Defina cada camada com responsabilidades claras:
37
+
38
+ - **Domain Layer** (mais interna):
39
+ - Entidades de domínio (não são ORM models)
40
+ - Value Objects
41
+ - Regras de negócio puras
42
+ - Interfaces de repositórios (ports)
43
+
44
+ - **Application Layer**:
45
+ - Use Cases / Application Services
46
+ - DTOs de entrada e saída
47
+ - Orquestração de fluxos
48
+ - Sem dependência de frameworks
49
+
50
+ - **Infrastructure Layer**:
51
+ - Implementações de repositórios (adapters)
52
+ - Serviços externos (email, pagamento, etc)
53
+ - Configurações de banco de dados
54
+ - Clientes HTTP
55
+
56
+ - **Interface Layer** (mais externa):
57
+ - Controllers / Handlers
58
+ - Presenters / Serializers
59
+ - Middlewares
60
+ - Validação de input
61
+
62
+ ### 2. Diagrama C4
63
+
64
+ Gere diagramas em Mermaid para:
65
+
66
+ **Nível 1 - Contexto**:
67
+ - Usuários e sistemas externos
68
+ - Relações de alto nível
69
+
70
+ **Nível 2 - Containers**:
71
+ - Frontend, Backend, Banco, Cache, etc
72
+ - Tecnologias de cada container
73
+
74
+ **Nível 3 - Componentes** (para o backend):
75
+ - Módulos principais
76
+ - Fluxo de dependências
77
+
78
+ ### 3. Decisões Arquiteturais (ADRs)
79
+
80
+ Para cada decisão importante, documente:
81
+ - Contexto: Por que é necessário decidir
82
+ - Decisão: O que foi escolhido
83
+ - Alternativas: O que foi descartado e por quê
84
+ - Consequências: Prós e contras
85
+
86
+ ADRs obrigatórios:
87
+ - Escolha da stack
88
+ - Padrão de arquitetura (Clean vs outras)
89
+ - Estratégia de autenticação
90
+ - Estratégia de persistência
91
+
92
+ ### 4. Trade-offs
93
+
94
+ Explique:
95
+ - Por que Clean Architecture e não algo mais simples
96
+ - Por que não microserviços (se aplicável)
97
+ - Custos de infra estimados (MVP e 6 meses)
98
+ - Pontos de escalabilidade futura
99
+
100
+ ### 5. Formato de Saída
101
+
102
+ Retorne um documento Markdown estruturado seguindo o template:
103
+ - Use diagramas Mermaid
104
+ - Inclua code snippets de exemplo para cada camada
105
+ - Liste arquivos/pastas da estrutura proposta
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Exemplo de Uso
111
+
112
+ ```text
113
+ Atue como arquiteto de software sênior especializado em Clean Architecture.
114
+
115
+ ## Contexto do Projeto
116
+
117
+ PRD:
118
+ Sistema de gestão de tarefas para equipes remotas. Permite criar projetos,
119
+ adicionar tarefas com prazos, e acompanhar progresso.
120
+
121
+ Requisitos:
122
+ - RF-001: Usuário pode criar projetos
123
+ - RF-002: Usuário pode adicionar tarefas a projetos
124
+ - RF-003: Tarefas têm título, descrição, prazo e status
125
+ - RNF-001: Suportar 1000 usuários simultâneos
126
+ - RNF-002: Tempo de resposta < 200ms
127
+
128
+ Modelo de Domínio:
129
+ - User (id, name, email)
130
+ - Project (id, name, ownerId)
131
+ - Task (id, title, description, dueDate, status, projectId)
132
+
133
+ Stack preferencial: Node.js + TypeScript + PostgreSQL
134
+ Prazo: 2 meses
135
+ Orçamento de infra: R$ 500/mês
136
+
137
+ [CONTINUA COM O PROMPT COMPLETO ACIMA]
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Checklist Pós-Geração
143
+
144
+ Após receber a arquitetura, valide:
145
+
146
+ - [ ] Diagrama C4 inclui níveis 1 e 2
147
+ - [ ] Camadas estão bem definidas
148
+ - [ ] Pelo menos 3 ADRs documentados
149
+ - [ ] Estrutura de pastas proposta
150
+ - [ ] Estimativa de custos presente
151
+ - [ ] Stack justificada com prós/contras