@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.
- package/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- 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
|