@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,65 @@
|
|
|
1
|
+
# Templates de Artefatos
|
|
2
|
+
|
|
3
|
+
Esta pasta contém templates padronizados para cada entregável do Maestro.
|
|
4
|
+
|
|
5
|
+
## Como Usar
|
|
6
|
+
|
|
7
|
+
1. Copie o template para seu projeto
|
|
8
|
+
2. Renomeie conforme necessário
|
|
9
|
+
3. Preencha as seções
|
|
10
|
+
4. Use a IA para ajudar no preenchimento
|
|
11
|
+
|
|
12
|
+
## Índice de Templates
|
|
13
|
+
|
|
14
|
+
### Fase 1: Produto
|
|
15
|
+
| Template | Descrição |
|
|
16
|
+
|---|---|
|
|
17
|
+
| [PRD.md](./PRD.md) | Product Requirements Document |
|
|
18
|
+
|
|
19
|
+
### Contexto (Todas as Fases)
|
|
20
|
+
| Template | Descrição |
|
|
21
|
+
|---|---|
|
|
22
|
+
| [contexto.md](./contexto.md) | **NOVO** - Mantém contexto entre sessões |
|
|
23
|
+
|
|
24
|
+
### Fase 2: Requisitos
|
|
25
|
+
| Template | Descrição |
|
|
26
|
+
|---|---|
|
|
27
|
+
| [requisitos.md](./requisitos.md) | Lista de RF/RNF |
|
|
28
|
+
| [criterios-aceite.md](./criterios-aceite.md) | Cenários Gherkin |
|
|
29
|
+
|
|
30
|
+
### Fase 3: UX
|
|
31
|
+
| Template | Descrição |
|
|
32
|
+
|---|---|
|
|
33
|
+
| [design-doc.md](./design-doc.md) | Documento de design |
|
|
34
|
+
|
|
35
|
+
### Fase 4: Modelagem
|
|
36
|
+
| Template | Descrição |
|
|
37
|
+
|---|---|
|
|
38
|
+
| [modelo-dominio.md](./modelo-dominio.md) | Entidades e relacionamentos |
|
|
39
|
+
|
|
40
|
+
### Fase 5: Arquitetura
|
|
41
|
+
| Template | Descrição |
|
|
42
|
+
|---|---|
|
|
43
|
+
| [arquitetura.md](./arquitetura.md) | Arquitetura C4 |
|
|
44
|
+
| [adr.md](./adr.md) | Architecture Decision Record |
|
|
45
|
+
|
|
46
|
+
### Fase 6: Segurança
|
|
47
|
+
| Template | Descrição |
|
|
48
|
+
|---|---|
|
|
49
|
+
| [checklist-seguranca.md](./checklist-seguranca.md) | Checklist de segurança |
|
|
50
|
+
|
|
51
|
+
### Fase 7: Testes
|
|
52
|
+
| Template | Descrição |
|
|
53
|
+
|---|---|
|
|
54
|
+
| [plano-testes.md](./plano-testes.md) | Plano de testes |
|
|
55
|
+
|
|
56
|
+
### Fase 8: Execução
|
|
57
|
+
| Template | Descrição |
|
|
58
|
+
|---|---|
|
|
59
|
+
| [backlog.md](./backlog.md) | Backlog de histórias |
|
|
60
|
+
| [historia-usuario.md](./historia-usuario.md) | Template de história |
|
|
61
|
+
|
|
62
|
+
### Rastreabilidade
|
|
63
|
+
| Template | Descrição |
|
|
64
|
+
|---|---|
|
|
65
|
+
| [matriz-rastreabilidade.md](./matriz-rastreabilidade.md) | RF → US → TC |
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# ADR-[NNN]: [Título da Decisão]
|
|
2
|
+
|
|
3
|
+
**Status:** Proposto | Aceito | Deprecado | Substituído
|
|
4
|
+
**Data:** YYYY-MM-DD
|
|
5
|
+
**Decisores:** [Nomes]
|
|
6
|
+
**Consultas:** [Quem foi consultado]
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Contexto
|
|
11
|
+
|
|
12
|
+
[Descreva a situação que motivou esta decisão. Qual problema estamos tentando resolver? Quais forças estão em jogo?]
|
|
13
|
+
|
|
14
|
+
### Requisitos
|
|
15
|
+
- [Requisito que influencia a decisão]
|
|
16
|
+
- [Outro requisito]
|
|
17
|
+
|
|
18
|
+
### Restrições
|
|
19
|
+
- [Restrição técnica ou de negócio]
|
|
20
|
+
- [Outra restrição]
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Decisão
|
|
25
|
+
|
|
26
|
+
**Decidimos [usar/adotar/implementar] [escolha] porque [razão principal].**
|
|
27
|
+
|
|
28
|
+
[Elabore a decisão em mais detalhes se necessário]
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Alternativas Consideradas
|
|
33
|
+
|
|
34
|
+
### Opção 1: [Nome da Opção Escolhida] ✅
|
|
35
|
+
**Descrição:** [O que é esta opção]
|
|
36
|
+
|
|
37
|
+
**Prós:**
|
|
38
|
+
- [Vantagem 1]
|
|
39
|
+
- [Vantagem 2]
|
|
40
|
+
|
|
41
|
+
**Contras:**
|
|
42
|
+
- [Desvantagem 1]
|
|
43
|
+
- [Desvantagem 2]
|
|
44
|
+
|
|
45
|
+
### Opção 2: [Nome da Alternativa]
|
|
46
|
+
**Descrição:** [O que é esta opção]
|
|
47
|
+
|
|
48
|
+
**Prós:**
|
|
49
|
+
- [Vantagem 1]
|
|
50
|
+
|
|
51
|
+
**Contras:**
|
|
52
|
+
- [Desvantagem 1]
|
|
53
|
+
- [Por que não foi escolhida]
|
|
54
|
+
|
|
55
|
+
### Opção 3: [Outra Alternativa]
|
|
56
|
+
**Descrição:** [O que é esta opção]
|
|
57
|
+
|
|
58
|
+
**Prós:**
|
|
59
|
+
- [Vantagem 1]
|
|
60
|
+
|
|
61
|
+
**Contras:**
|
|
62
|
+
- [Desvantagem 1]
|
|
63
|
+
- [Por que não foi escolhida]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Consequências
|
|
68
|
+
|
|
69
|
+
### Positivas
|
|
70
|
+
- [Benefício que ganhamos com esta decisão]
|
|
71
|
+
- [Outro benefício]
|
|
72
|
+
|
|
73
|
+
### Negativas
|
|
74
|
+
- [Trade-off que aceitamos]
|
|
75
|
+
- [Limitação que introduz]
|
|
76
|
+
|
|
77
|
+
### Riscos
|
|
78
|
+
| Risco | Probabilidade | Impacto | Mitigação |
|
|
79
|
+
|---|---|---|---|
|
|
80
|
+
| [Risco] | Alta/Média/Baixa | Alto/Médio/Baixo | [Como mitigar] |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Métricas de Sucesso
|
|
85
|
+
|
|
86
|
+
Como saberemos se esta decisão foi boa?
|
|
87
|
+
|
|
88
|
+
- [ ] [Métrica 1]: [Valor esperado]
|
|
89
|
+
- [ ] [Métrica 2]: [Valor esperado]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Links Relacionados
|
|
94
|
+
|
|
95
|
+
- [Link para documentação relevante]
|
|
96
|
+
- [Link para discussão]
|
|
97
|
+
- [ADR relacionado]
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Notas
|
|
102
|
+
|
|
103
|
+
[Qualquer informação adicional relevante]
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# Arquitetura: [Nome do Sistema]
|
|
2
|
+
|
|
3
|
+
**Versão:** 1.0
|
|
4
|
+
**Data:** YYYY-MM-DD
|
|
5
|
+
**Arquiteto:** [Nome]
|
|
6
|
+
**Requisitos Relacionados:** [Link]
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Visão Geral
|
|
11
|
+
|
|
12
|
+
### 1.1 Contexto
|
|
13
|
+
[Descrição de alto nível do sistema e seu propósito]
|
|
14
|
+
|
|
15
|
+
### 1.2 Decisões Arquiteturais Chave
|
|
16
|
+
| Decisão | Escolha | Justificativa | ADR |
|
|
17
|
+
|---|---|---|---|
|
|
18
|
+
| Padrão arquitetural | [MVC/Hexagonal/DDD/etc] | [Por quê] | [Link] |
|
|
19
|
+
| Banco de dados | [PostgreSQL/MongoDB/etc] | [Por quê] | [Link] |
|
|
20
|
+
| Comunicação | [REST/GraphQL/gRPC] | [Por quê] | [Link] |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Diagrama C4
|
|
25
|
+
|
|
26
|
+
### 2.1 Nível 1: Contexto
|
|
27
|
+
|
|
28
|
+
```mermaid
|
|
29
|
+
graph TB
|
|
30
|
+
subgraph boundary [Sistema]
|
|
31
|
+
SISTEMA[Sistema Principal]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
USUARIO[👤 Usuário]
|
|
35
|
+
ADMIN[👤 Administrador]
|
|
36
|
+
EMAIL[📧 Serviço de Email]
|
|
37
|
+
PAGAMENTO[💳 Gateway de Pagamento]
|
|
38
|
+
|
|
39
|
+
USUARIO -->|Usa| SISTEMA
|
|
40
|
+
ADMIN -->|Gerencia| SISTEMA
|
|
41
|
+
SISTEMA -->|Envia emails| EMAIL
|
|
42
|
+
SISTEMA -->|Processa pagamentos| PAGAMENTO
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Atores:**
|
|
46
|
+
| Ator | Descrição | Interação |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| Usuário | Usuário final do sistema | Web/Mobile |
|
|
49
|
+
| Administrador | Gerencia configurações | Painel admin |
|
|
50
|
+
|
|
51
|
+
**Sistemas Externos:**
|
|
52
|
+
| Sistema | Descrição | Protocolo |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Serviço de Email | SendGrid/SES | API REST |
|
|
55
|
+
| Gateway de Pagamento | Stripe/PagSeguro | API REST + Webhooks |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 2.2 Nível 2: Containers
|
|
60
|
+
|
|
61
|
+
```mermaid
|
|
62
|
+
graph TB
|
|
63
|
+
subgraph boundary [Sistema Principal]
|
|
64
|
+
WEB[🌐 Web App<br/>Next.js]
|
|
65
|
+
API[⚙️ API<br/>NestJS]
|
|
66
|
+
WORKER[⏰ Worker<br/>Bull/Agenda]
|
|
67
|
+
DB[(🗄️ PostgreSQL)]
|
|
68
|
+
CACHE[(⚡ Redis)]
|
|
69
|
+
STORAGE[📁 S3/Minio]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
USUARIO[👤 Usuário] -->|HTTPS| WEB
|
|
73
|
+
WEB -->|HTTPS/JSON| API
|
|
74
|
+
API --> DB
|
|
75
|
+
API --> CACHE
|
|
76
|
+
API --> STORAGE
|
|
77
|
+
API --> WORKER
|
|
78
|
+
WORKER --> DB
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Containers:**
|
|
82
|
+
| Container | Tecnologia | Responsabilidade | Porta |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| Web App | Next.js | Interface do usuário | 3000 |
|
|
85
|
+
| API | NestJS | Lógica de negócio | 4000 |
|
|
86
|
+
| Worker | Bull | Jobs assíncronos | - |
|
|
87
|
+
| PostgreSQL | PostgreSQL 15 | Persistência | 5432 |
|
|
88
|
+
| Redis | Redis 7 | Cache + Filas | 6379 |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### 2.3 Nível 3: Componentes (API)
|
|
93
|
+
|
|
94
|
+
```mermaid
|
|
95
|
+
graph TB
|
|
96
|
+
subgraph API [API - NestJS]
|
|
97
|
+
subgraph Controllers
|
|
98
|
+
UC[UserController]
|
|
99
|
+
PC[PedidoController]
|
|
100
|
+
end
|
|
101
|
+
subgraph Services
|
|
102
|
+
US[UserService]
|
|
103
|
+
PS[PedidoService]
|
|
104
|
+
ES[EmailService]
|
|
105
|
+
end
|
|
106
|
+
subgraph Repositories
|
|
107
|
+
UR[UserRepository]
|
|
108
|
+
PR[PedidoRepository]
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
UC --> US
|
|
113
|
+
PC --> PS
|
|
114
|
+
US --> UR
|
|
115
|
+
PS --> PR
|
|
116
|
+
PS --> ES
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Componentes:**
|
|
120
|
+
| Componente | Responsabilidade | Dependências |
|
|
121
|
+
|---|---|---|
|
|
122
|
+
| UserController | Endpoints de usuário | UserService |
|
|
123
|
+
| UserService | Lógica de usuário | UserRepository |
|
|
124
|
+
| UserRepository | Acesso a dados | Database |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 3. Stack Tecnológica
|
|
129
|
+
|
|
130
|
+
### 3.1 Backend
|
|
131
|
+
| Camada | Tecnologia | Versão | Justificativa |
|
|
132
|
+
|---|---|---|---|
|
|
133
|
+
| Runtime | Node.js | 20 LTS | Ecosistema, performance |
|
|
134
|
+
| Framework | NestJS | 10.x | Estrutura, TypeScript nativo |
|
|
135
|
+
| ORM | Prisma | 5.x | Type-safety, migrations |
|
|
136
|
+
| Validação | class-validator | - | Decorators, integração NestJS |
|
|
137
|
+
|
|
138
|
+
### 3.2 Frontend
|
|
139
|
+
| Camada | Tecnologia | Versão | Justificativa |
|
|
140
|
+
|---|---|---|---|
|
|
141
|
+
| Framework | Next.js | 14 | SSR, App Router |
|
|
142
|
+
| UI | Tailwind + shadcn/ui | - | Produtividade, customização |
|
|
143
|
+
| Estado | Zustand | - | Simplicidade |
|
|
144
|
+
| Fetch | TanStack Query | - | Cache, invalidation |
|
|
145
|
+
|
|
146
|
+
### 3.3 Infraestrutura
|
|
147
|
+
| Componente | Tecnologia | Ambiente |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| Hospedagem | AWS / Railway | Produção |
|
|
150
|
+
| CI/CD | GitHub Actions | - |
|
|
151
|
+
| Containers | Docker | Todos |
|
|
152
|
+
| Orquestração | Docker Compose / K8s | Dev / Prod |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 4. Padrões e Convenções
|
|
157
|
+
|
|
158
|
+
### 4.1 Estrutura de Pastas (Backend)
|
|
159
|
+
```
|
|
160
|
+
src/
|
|
161
|
+
├── modules/
|
|
162
|
+
│ └── [modulo]/
|
|
163
|
+
│ ├── controllers/
|
|
164
|
+
│ ├── services/
|
|
165
|
+
│ ├── repositories/
|
|
166
|
+
│ ├── entities/
|
|
167
|
+
│ ├── dtos/
|
|
168
|
+
│ └── [modulo].module.ts
|
|
169
|
+
├── common/
|
|
170
|
+
│ ├── decorators/
|
|
171
|
+
│ ├── filters/
|
|
172
|
+
│ ├── guards/
|
|
173
|
+
│ └── interceptors/
|
|
174
|
+
├── config/
|
|
175
|
+
└── main.ts
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 4.2 Convenções de Código
|
|
179
|
+
- **Nomenclatura**: camelCase para variáveis, PascalCase para classes
|
|
180
|
+
- **Commits**: Conventional Commits (feat:, fix:, chore:)
|
|
181
|
+
- **Branch**: feature/, fix/, hotfix/
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 5. Segurança
|
|
186
|
+
|
|
187
|
+
### 5.1 Autenticação
|
|
188
|
+
- **Método**: JWT + Refresh Token
|
|
189
|
+
- **Expiração**: Access 15min, Refresh 7 dias
|
|
190
|
+
- **Armazenamento**: HttpOnly Cookies
|
|
191
|
+
|
|
192
|
+
### 5.2 Autorização
|
|
193
|
+
- **Modelo**: RBAC (Role-Based Access Control)
|
|
194
|
+
- **Roles**: Admin, User, Guest
|
|
195
|
+
|
|
196
|
+
### 5.3 Proteções
|
|
197
|
+
- [ ] Rate limiting
|
|
198
|
+
- [ ] CORS configurado
|
|
199
|
+
- [ ] Helmet (headers de segurança)
|
|
200
|
+
- [ ] Validação de input
|
|
201
|
+
- [ ] SQL Injection prevention (ORM)
|
|
202
|
+
- [ ] HTTPS obrigatório
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 6. Escalabilidade
|
|
207
|
+
|
|
208
|
+
### 6.1 Pontos de Escala
|
|
209
|
+
| Componente | Estratégia | Trigger |
|
|
210
|
+
|---|---|---|
|
|
211
|
+
| API | Horizontal (réplicas) | CPU > 70% |
|
|
212
|
+
| Worker | Horizontal | Queue size > 1000 |
|
|
213
|
+
| Database | Read replicas | Queries > X/s |
|
|
214
|
+
|
|
215
|
+
### 6.2 Caching
|
|
216
|
+
| Camada | Tecnologia | TTL | Invalidação |
|
|
217
|
+
|---|---|---|---|
|
|
218
|
+
| HTTP | CDN | 1h | Deploy |
|
|
219
|
+
| API | Redis | 5min | Mutation |
|
|
220
|
+
| Query | Redis | 1min | TTL |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 7. Observabilidade
|
|
225
|
+
|
|
226
|
+
### 7.1 Logging
|
|
227
|
+
- **Formato**: JSON estruturado
|
|
228
|
+
- **Níveis**: error, warn, info, debug
|
|
229
|
+
- **Destino**: CloudWatch / Loki
|
|
230
|
+
|
|
231
|
+
### 7.2 Métricas
|
|
232
|
+
- **Ferramenta**: Prometheus + Grafana
|
|
233
|
+
- **Métricas-chave**:
|
|
234
|
+
- Request rate
|
|
235
|
+
- Latência (p50, p95, p99)
|
|
236
|
+
- Error rate
|
|
237
|
+
- CPU/Memory
|
|
238
|
+
|
|
239
|
+
### 7.3 Tracing
|
|
240
|
+
- **Ferramenta**: OpenTelemetry + Jaeger
|
|
241
|
+
- **Spans**: HTTP, Database, External calls
|
|
242
|
+
|
|
243
|
+
### 7.4 Alertas
|
|
244
|
+
| Alerta | Condição | Severidade |
|
|
245
|
+
|---|---|---|
|
|
246
|
+
| API Down | Uptime < 99% em 5min | Critical |
|
|
247
|
+
| Latência Alta | p95 > 2s | Warning |
|
|
248
|
+
| Erros 5xx | Rate > 1% | Critical |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 8. Disaster Recovery
|
|
253
|
+
|
|
254
|
+
### 8.1 Backup
|
|
255
|
+
| Componente | Frequência | Retenção | Localização |
|
|
256
|
+
|---|---|---|---|
|
|
257
|
+
| Database | Diário | 30 dias | S3 |
|
|
258
|
+
| Files | Contínuo | 90 dias | S3 |
|
|
259
|
+
|
|
260
|
+
### 8.2 RTO/RPO
|
|
261
|
+
- **RTO** (Recovery Time Objective): < 1 hora
|
|
262
|
+
- **RPO** (Recovery Point Objective): < 1 hora
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 9. ADRs Relacionados
|
|
267
|
+
|
|
268
|
+
| ID | Título | Status |
|
|
269
|
+
|---|---|---|
|
|
270
|
+
| ADR-001 | [Escolha do banco de dados](./adr/001-banco-dados.md) | Aceito |
|
|
271
|
+
| ADR-002 | [Padrão de autenticação](./adr/002-autenticacao.md) | Aceito |
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Changelog
|
|
276
|
+
|
|
277
|
+
| Versão | Data | Autor | Mudanças |
|
|
278
|
+
|---|---|---|---|
|
|
279
|
+
| 1.0 | YYYY-MM-DD | [Nome] | Versão inicial |
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Backlog: [Nome do Sistema]
|
|
2
|
+
|
|
3
|
+
**Versão:** 1.0
|
|
4
|
+
**Data:** YYYY-MM-DD
|
|
5
|
+
**Product Owner:** [Nome]
|
|
6
|
+
**PRD Relacionado:** [Link]
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Épicos
|
|
11
|
+
|
|
12
|
+
| ID | Épico | Descrição | Prioridade | Sprint Alvo |
|
|
13
|
+
|---|---|---|---|---|
|
|
14
|
+
| E001 | [Nome do Épico] | [Descrição breve] | P0 | 1-2 |
|
|
15
|
+
| E002 | [Nome do Épico] | [Descrição breve] | P1 | 3-4 |
|
|
16
|
+
| E003 | [Nome do Épico] | [Descrição breve] | P2 | Backlog |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Histórias de Usuário
|
|
21
|
+
|
|
22
|
+
### Épico: E001 - [Nome do Épico]
|
|
23
|
+
|
|
24
|
+
#### US001 - [Título da História]
|
|
25
|
+
|
|
26
|
+
**Como** [persona],
|
|
27
|
+
**Quero** [ação/funcionalidade],
|
|
28
|
+
**Para** [benefício/valor].
|
|
29
|
+
|
|
30
|
+
| Campo | Valor |
|
|
31
|
+
|---|---|
|
|
32
|
+
| **Épico** | E001 |
|
|
33
|
+
| **Prioridade** | P0 |
|
|
34
|
+
| **Pontos** | 3 |
|
|
35
|
+
| **Sprint** | 1 |
|
|
36
|
+
| **Requisitos** | RF001, RF002 |
|
|
37
|
+
|
|
38
|
+
**Critérios de Aceite:**
|
|
39
|
+
- [ ] CA1: [Critério verificável]
|
|
40
|
+
- [ ] CA2: [Critério verificável]
|
|
41
|
+
- [ ] CA3: [Critério verificável]
|
|
42
|
+
|
|
43
|
+
**Definição de Pronto:**
|
|
44
|
+
- [ ] Código implementado
|
|
45
|
+
- [ ] Testes unitários (cobertura > 80%)
|
|
46
|
+
- [ ] Code review aprovado
|
|
47
|
+
- [ ] Documentação atualizada
|
|
48
|
+
- [ ] Deploy em staging
|
|
49
|
+
|
|
50
|
+
**Notas técnicas:**
|
|
51
|
+
- [Consideração técnica relevante]
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
#### US002 - [Título da História]
|
|
56
|
+
|
|
57
|
+
**Como** [persona],
|
|
58
|
+
**Quero** [ação],
|
|
59
|
+
**Para** [benefício].
|
|
60
|
+
|
|
61
|
+
| Campo | Valor |
|
|
62
|
+
|---|---|
|
|
63
|
+
| **Épico** | E001 |
|
|
64
|
+
| **Prioridade** | P0 |
|
|
65
|
+
| **Pontos** | 5 |
|
|
66
|
+
| **Sprint** | 1 |
|
|
67
|
+
| **Requisitos** | RF003 |
|
|
68
|
+
| **Dependências** | US001 |
|
|
69
|
+
|
|
70
|
+
**Critérios de Aceite:**
|
|
71
|
+
- [ ] CA1:
|
|
72
|
+
- [ ] CA2:
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### Épico: E002 - [Nome do Épico]
|
|
77
|
+
|
|
78
|
+
#### US003 - [Título]
|
|
79
|
+
|
|
80
|
+
[Repetir estrutura]
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Sprint Planning
|
|
85
|
+
|
|
86
|
+
### Sprint 1 (Semana X-Y)
|
|
87
|
+
|
|
88
|
+
**Objetivo:** [Objetivo da sprint em uma frase]
|
|
89
|
+
|
|
90
|
+
**Capacidade:** X pontos
|
|
91
|
+
|
|
92
|
+
| ID | História | Pontos | Responsável | Status |
|
|
93
|
+
|---|---|---|---|---|
|
|
94
|
+
| US001 | [Título] | 3 | [Nome] | ⏳ To Do |
|
|
95
|
+
| US002 | [Título] | 5 | [Nome] | ⏳ To Do |
|
|
96
|
+
| **Total** | | **8** | | |
|
|
97
|
+
|
|
98
|
+
### Sprint 2 (Semana X-Y)
|
|
99
|
+
|
|
100
|
+
**Objetivo:** [Objetivo]
|
|
101
|
+
|
|
102
|
+
| ID | História | Pontos | Responsável | Status |
|
|
103
|
+
|---|---|---|---|---|
|
|
104
|
+
| US003 | [Título] | 3 | | ⏳ |
|
|
105
|
+
| US004 | [Título] | 5 | | ⏳ |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Bugs e Débito Técnico
|
|
110
|
+
|
|
111
|
+
| ID | Tipo | Título | Prioridade | Sprint |
|
|
112
|
+
|---|---|---|---|---|
|
|
113
|
+
| BUG001 | Bug | [Descrição] | Alta | 1 |
|
|
114
|
+
| TECH001 | Tech Debt | [Descrição] | Média | Backlog |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Métricas de Velocidade
|
|
119
|
+
|
|
120
|
+
| Sprint | Planejado | Entregue | Velocidade |
|
|
121
|
+
|---|---|---|---|
|
|
122
|
+
| 1 | X pts | - | - |
|
|
123
|
+
| 2 | X pts | - | - |
|
|
124
|
+
| Média | | | - |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Definição de Pronto (DoD) Global
|
|
129
|
+
|
|
130
|
+
Toda história deve atender:
|
|
131
|
+
|
|
132
|
+
- [ ] Código implementado e funcionando
|
|
133
|
+
- [ ] Testes unitários com cobertura > 80%
|
|
134
|
+
- [ ] Testes de integração para fluxos críticos
|
|
135
|
+
- [ ] Code review aprovado por 1+ devs
|
|
136
|
+
- [ ] Build passando no CI
|
|
137
|
+
- [ ] Sem vulnerabilidades de segurança críticas
|
|
138
|
+
- [ ] Documentação técnica atualizada
|
|
139
|
+
- [ ] Deploy bem-sucedido em staging
|
|
140
|
+
- [ ] Aceite do PO
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Diagrama de Dependências
|
|
145
|
+
|
|
146
|
+
### Visão Geral
|
|
147
|
+
|
|
148
|
+
```mermaid
|
|
149
|
+
flowchart TD
|
|
150
|
+
subgraph E001["🔹 Épico: [Nome do Épico 1]"]
|
|
151
|
+
US001[US001: Título]
|
|
152
|
+
US002[US002: Título]
|
|
153
|
+
US001 --> US002
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
subgraph E002["🔹 Épico: [Nome do Épico 2]"]
|
|
157
|
+
US003[US003: Título]
|
|
158
|
+
US004[US004: Título]
|
|
159
|
+
US003 --> US004
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
US002 --> US003
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Tabela de Dependências
|
|
166
|
+
|
|
167
|
+
| História | Depende de | Bloqueia | Prioridade |
|
|
168
|
+
|----------|------------|----------|------------|
|
|
169
|
+
| US001 | - | US002 | Alta |
|
|
170
|
+
| US002 | US001 | US003 | Alta |
|
|
171
|
+
| US003 | US002 | US004 | Média |
|
|
172
|
+
|
|
173
|
+
### Legenda
|
|
174
|
+
- ⬜ Pendente
|
|
175
|
+
- 🔄 Em andamento
|
|
176
|
+
- ✅ Concluído
|
|
177
|
+
- ⏸️ Bloqueado
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Changelog
|
|
182
|
+
|
|
183
|
+
| Versão | Data | Autor | Mudanças |
|
|
184
|
+
|---|---|---|---|
|
|
185
|
+
| 1.0 | YYYY-MM-DD | [Nome] | Versão inicial |
|