@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,138 @@
|
|
|
1
|
+
# Template: Registro de Protótipos Stitch
|
|
2
|
+
|
|
3
|
+
## Metadados
|
|
4
|
+
| Campo | Valor |
|
|
5
|
+
|-------|-------|
|
|
6
|
+
| Projeto | [NOME DO PROJETO] |
|
|
7
|
+
| Data | [DATA] |
|
|
8
|
+
| Responsável | [NOME] |
|
|
9
|
+
| Status | 🔄 Em progresso / ✅ Validado / ❌ Descartado |
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Protótipos Criados
|
|
14
|
+
|
|
15
|
+
### Tela 1: [Nome da Tela]
|
|
16
|
+
|
|
17
|
+
**Prompt Usado:**
|
|
18
|
+
```
|
|
19
|
+
[Cole o prompt que usou no Stitch]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Resultado:**
|
|
23
|
+
- [ ] Gerado com sucesso
|
|
24
|
+
- [ ] Aprovado por stakeholders
|
|
25
|
+
- [ ] Código exportado
|
|
26
|
+
|
|
27
|
+
**Iterações:**
|
|
28
|
+
| Versão | Mudança | Resultado |
|
|
29
|
+
|--------|---------|-----------|
|
|
30
|
+
| v1 | Prompt inicial | [OK/Ajustar] |
|
|
31
|
+
| v2 | [Ajuste feito] | [OK/Ajustar] |
|
|
32
|
+
|
|
33
|
+
**Código Exportado:** `docs/03-ux/stitch-output/tela-1.html`
|
|
34
|
+
|
|
35
|
+
**Observações:**
|
|
36
|
+
- [Notas sobre o que funcionou/não funcionou]
|
|
37
|
+
- [Decisões tomadas]
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### Tela 2: [Nome da Tela]
|
|
42
|
+
|
|
43
|
+
**Prompt Usado:**
|
|
44
|
+
```
|
|
45
|
+
[Cole o prompt que usou no Stitch]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Resultado:**
|
|
49
|
+
- [ ] Gerado com sucesso
|
|
50
|
+
- [ ] Aprovado por stakeholders
|
|
51
|
+
- [ ] Código exportado
|
|
52
|
+
|
|
53
|
+
**Código Exportado:** `docs/03-ux/stitch-output/tela-2.html`
|
|
54
|
+
|
|
55
|
+
**Observações:**
|
|
56
|
+
- [Notas]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Componentes Identificados
|
|
61
|
+
|
|
62
|
+
Após análise dos protótipos, os seguintes componentes reutilizáveis foram identificados:
|
|
63
|
+
|
|
64
|
+
| Componente | Aparece Em | Prioridade |
|
|
65
|
+
|------------|------------|------------|
|
|
66
|
+
| Navbar | Todas as telas | Alta |
|
|
67
|
+
| Card | Dashboard, Listagem | Alta |
|
|
68
|
+
| Button | Todas as telas | Alta |
|
|
69
|
+
| Form Input | Cadastro, Edição | Alta |
|
|
70
|
+
| [Outros] | [Telas] | [Alta/Média/Baixa] |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Mapeamento UI → Domínio
|
|
75
|
+
|
|
76
|
+
| Elemento de UI | Entidade/Campo | Requisito |
|
|
77
|
+
|----------------|----------------|-----------|
|
|
78
|
+
| Campo "Nome" | Cliente.nome | RF001 |
|
|
79
|
+
| Card de agendamento | Agendamento | RF003 |
|
|
80
|
+
| [Outros] | [Entidade.campo] | [RFxxx] |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Decisões de Design
|
|
85
|
+
|
|
86
|
+
### Tema Visual
|
|
87
|
+
- **Modo:** Light / Dark
|
|
88
|
+
- **Cor primária:** #[HEX]
|
|
89
|
+
- **Cor secundária:** #[HEX]
|
|
90
|
+
- **Fonte:** [Nome da fonte]
|
|
91
|
+
|
|
92
|
+
### Padrões de UI
|
|
93
|
+
- Cards com sombra sutil e bordas arredondadas
|
|
94
|
+
- Botões com hover state
|
|
95
|
+
- [Outros padrões observados]
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Próximos Passos
|
|
100
|
+
|
|
101
|
+
- [ ] Exportar todos os códigos para `docs/03-ux/stitch-output/`
|
|
102
|
+
- [ ] Exportar assets para `docs/03-ux/stitch-output/assets/`
|
|
103
|
+
- [ ] Analisar código com IA para extrair componentes
|
|
104
|
+
- [ ] Atualizar CONTEXTO.md com decisões visuais
|
|
105
|
+
- [ ] Prosseguir para Modelagem de Domínio
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Arquivos Relacionados
|
|
110
|
+
|
|
111
|
+
- Design Doc (base para prompts): `docs/03-ux/design-doc.md`
|
|
112
|
+
- Prompts usados: `docs/03-ux/stitch-prompts.md`
|
|
113
|
+
- Código exportado: `docs/03-ux/stitch-output/`
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 🔗 Integração com Frontend
|
|
118
|
+
|
|
119
|
+
### Para Desenvolvimento Frontend
|
|
120
|
+
|
|
121
|
+
Os arquivos exportados serão usados na fase de Frontend:
|
|
122
|
+
|
|
123
|
+
| Arquivo | Destino Sugerido | Tipo |
|
|
124
|
+
|---------|------------------|------|
|
|
125
|
+
| `*.html` | `src/components/` | Referência estrutural |
|
|
126
|
+
| `assets/*.png` | `public/images/` | Assets estáticos |
|
|
127
|
+
| `assets/*.svg` | `src/assets/icons/` | Ícones vetoriais |
|
|
128
|
+
|
|
129
|
+
### Instruções para o Desenvolvedor Frontend
|
|
130
|
+
|
|
131
|
+
Na fase de Frontend, a IA deve:
|
|
132
|
+
|
|
133
|
+
1. **Verificar** se existe `docs/03-ux/stitch-output/`
|
|
134
|
+
2. **Ler todos os HTML** exportados
|
|
135
|
+
3. **Extrair componentes** identificados neste documento
|
|
136
|
+
4. **Copiar assets** para a estrutura correta do projeto
|
|
137
|
+
5. **Adaptar markup** para a stack definida (React, Vue, etc.)
|
|
138
|
+
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# Requisitos: [Nome do Sistema]
|
|
2
|
+
|
|
3
|
+
**Versão:** 1.0
|
|
4
|
+
**Data:** YYYY-MM-DD
|
|
5
|
+
**Autor:** [Nome]
|
|
6
|
+
**PRD Relacionado:** [Link para PRD]
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Visão Geral
|
|
11
|
+
|
|
12
|
+
[Resumo de 2-3 linhas do sistema baseado no PRD]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 2. Requisitos Funcionais
|
|
17
|
+
|
|
18
|
+
### RF001 - [Título do Requisito]
|
|
19
|
+
| Campo | Valor |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **Descrição** | O sistema deve [ação específica] |
|
|
22
|
+
| **Prioridade** | P0/P1/P2 |
|
|
23
|
+
| **Persona** | [Qual persona usa] |
|
|
24
|
+
| **Critérios de Aceite** | Ver CA001 |
|
|
25
|
+
| **Dependências** | RF002, RF003 |
|
|
26
|
+
|
|
27
|
+
### RF002 - [Título do Requisito]
|
|
28
|
+
| Campo | Valor |
|
|
29
|
+
|---|---|
|
|
30
|
+
| **Descrição** | O sistema deve [ação específica] |
|
|
31
|
+
| **Prioridade** | P0/P1/P2 |
|
|
32
|
+
| **Persona** | |
|
|
33
|
+
| **Critérios de Aceite** | Ver CA002 |
|
|
34
|
+
| **Dependências** | |
|
|
35
|
+
|
|
36
|
+
### RF003 - [Título do Requisito]
|
|
37
|
+
| Campo | Valor |
|
|
38
|
+
|---|---|
|
|
39
|
+
| **Descrição** | O sistema deve [ação específica] |
|
|
40
|
+
| **Prioridade** | |
|
|
41
|
+
| **Persona** | |
|
|
42
|
+
| **Critérios de Aceite** | |
|
|
43
|
+
| **Dependências** | |
|
|
44
|
+
|
|
45
|
+
[Adicione mais RFs conforme necessário]
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. Requisitos Não-Funcionais
|
|
50
|
+
|
|
51
|
+
### RNF001 - Performance
|
|
52
|
+
| Campo | Valor |
|
|
53
|
+
|---|---|
|
|
54
|
+
| **Descrição** | O sistema deve responder em menos de [X]ms para [Y]% das requisições |
|
|
55
|
+
| **Métrica** | Latência p95 < Xms |
|
|
56
|
+
| **Como medir** | APM, logs, load test |
|
|
57
|
+
|
|
58
|
+
### RNF002 - Disponibilidade
|
|
59
|
+
| Campo | Valor |
|
|
60
|
+
|---|---|
|
|
61
|
+
| **Descrição** | O sistema deve estar disponível [X]% do tempo |
|
|
62
|
+
| **Métrica** | Uptime >= X% |
|
|
63
|
+
| **Como medir** | Monitoramento, alertas |
|
|
64
|
+
|
|
65
|
+
### RNF003 - Segurança
|
|
66
|
+
| Campo | Valor |
|
|
67
|
+
|---|---|
|
|
68
|
+
| **Descrição** | [Requisito de segurança] |
|
|
69
|
+
| **Métrica** | |
|
|
70
|
+
| **Como medir** | |
|
|
71
|
+
|
|
72
|
+
### RNF004 - Escalabilidade
|
|
73
|
+
| Campo | Valor |
|
|
74
|
+
|---|---|
|
|
75
|
+
| **Descrição** | O sistema deve suportar [X] usuários simultâneos |
|
|
76
|
+
| **Métrica** | |
|
|
77
|
+
| **Como medir** | Load test |
|
|
78
|
+
|
|
79
|
+
### RNF005 - Usabilidade
|
|
80
|
+
| Campo | Valor |
|
|
81
|
+
|---|---|
|
|
82
|
+
| **Descrição** | [Requisito de UX] |
|
|
83
|
+
| **Métrica** | |
|
|
84
|
+
| **Como medir** | |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 4. Regras de Negócio
|
|
89
|
+
|
|
90
|
+
### RN001 - [Título]
|
|
91
|
+
**Descrição:** [Regra específica que o sistema deve seguir]
|
|
92
|
+
|
|
93
|
+
**Exemplo:**
|
|
94
|
+
- Se [condição], então [ação]
|
|
95
|
+
- Caso [situação], [comportamento esperado]
|
|
96
|
+
|
|
97
|
+
### RN002 - [Título]
|
|
98
|
+
**Descrição:** [Regra]
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 5. Integrações
|
|
103
|
+
|
|
104
|
+
| ID | Sistema Externo | Tipo | Descrição |
|
|
105
|
+
|---|---|---|---|
|
|
106
|
+
| INT001 | [Nome] | API REST / Webhook / File | [O que integra] |
|
|
107
|
+
| INT002 | | | |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 6. Dúvidas em Aberto
|
|
112
|
+
|
|
113
|
+
| ID | Pergunta | Responsável | Status | Resposta |
|
|
114
|
+
|---|---|---|---|---|
|
|
115
|
+
| Q001 | [Pergunta para stakeholder] | [Nome] | Pendente | |
|
|
116
|
+
| Q002 | | | | |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 7. Glossário
|
|
121
|
+
|
|
122
|
+
| Termo | Definição |
|
|
123
|
+
|---|---|
|
|
124
|
+
| [Termo técnico ou de negócio] | [Definição clara] |
|
|
125
|
+
| | |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Matriz de Rastreabilidade
|
|
130
|
+
|
|
131
|
+
| Requisito | User Stories | Casos de Teste |
|
|
132
|
+
|---|---|---|
|
|
133
|
+
| RF001 | US001, US002 | TC001, TC002 |
|
|
134
|
+
| RF002 | US003 | TC003 |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 8. Matriz Requisitos × Telas
|
|
139
|
+
|
|
140
|
+
> [!NOTE]
|
|
141
|
+
> Mapeie quais telas serão afetadas por cada requisito. Telas são estimativas iniciais que serão refinadas na fase de UX.
|
|
142
|
+
|
|
143
|
+
| RF ID | Descrição Resumida | Telas Estimadas | Componentes Prováveis |
|
|
144
|
+
|-------|-------------------|-----------------|----------------------|
|
|
145
|
+
| RF001 | [Descrição curta] | [Tela1, Tela2] | [Componente1] |
|
|
146
|
+
| RF002 | [Descrição curta] | [Tela1] | [Componente1, Componente2] |
|
|
147
|
+
| RF003 | [Descrição curta] | [Tela2, Tela3] | [Componente2] |
|
|
148
|
+
|
|
149
|
+
### Legenda de Telas
|
|
150
|
+
|
|
151
|
+
| ID | Nome da Tela | Tipo | Área |
|
|
152
|
+
|----|-------------|------|------|
|
|
153
|
+
| T01 | [Nome] | [Lista/Detalhe/Form] | [Pública/Auth] |
|
|
154
|
+
| T02 | [Nome] | | |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Changelog
|
|
159
|
+
|
|
160
|
+
| Versão | Data | Autor | Mudanças |
|
|
161
|
+
|---|---|---|---|
|
|
162
|
+
| 1.0 | YYYY-MM-DD | [Nome] | Versão inicial |
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Template: SLOs e SLIs do Sistema
|
|
2
|
+
|
|
3
|
+
> **Preencha este template** para definir os objetivos de confiabilidade do seu sistema.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Informações do Sistema
|
|
8
|
+
|
|
9
|
+
| Campo | Valor |
|
|
10
|
+
|-------|-------|
|
|
11
|
+
| **Nome do Sistema** | [NOME] |
|
|
12
|
+
| **Responsável** | [TIME/PESSOA] |
|
|
13
|
+
| **Criticidade** | [ ] Baixa [ ] Média [ ] Alta [ ] Crítica |
|
|
14
|
+
| **Data de Criação** | [DATA] |
|
|
15
|
+
| **Última Revisão** | [DATA] |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Definições
|
|
20
|
+
|
|
21
|
+
| Termo | Significado |
|
|
22
|
+
|-------|-------------|
|
|
23
|
+
| **SLA** | Service Level Agreement - Acordo contratual com clientes externos |
|
|
24
|
+
| **SLO** | Service Level Objective - Meta interna de confiabilidade |
|
|
25
|
+
| **SLI** | Service Level Indicator - Métrica que mede o SLO |
|
|
26
|
+
| **Error Budget** | Quantidade de erros/indisponibilidade permitida antes de violar o SLO |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## SLOs Definidos
|
|
31
|
+
|
|
32
|
+
### SLO-001: Disponibilidade
|
|
33
|
+
|
|
34
|
+
| Aspecto | Valor |
|
|
35
|
+
|---------|-------|
|
|
36
|
+
| **Descrição** | O sistema deve estar disponível para responder requisições |
|
|
37
|
+
| **SLI** | `(requests bem-sucedidos / total de requests) × 100%` |
|
|
38
|
+
| **SLO Target** | [99.9%] |
|
|
39
|
+
| **Error Budget** | [43.2 min/mês] ou [0.1% de requests podem falhar] |
|
|
40
|
+
| **Janela de Medição** | Rolling [30] dias |
|
|
41
|
+
| **Exclusões** | Manutenções programadas, dependências externas |
|
|
42
|
+
|
|
43
|
+
**Cálculo do Error Budget:**
|
|
44
|
+
|
|
45
|
+
| SLO | Error Budget (30 dias) | Error Budget (por semana) |
|
|
46
|
+
|-----|------------------------|---------------------------|
|
|
47
|
+
| 99% | 7.2 horas | 1.68 horas |
|
|
48
|
+
| 99.9% | 43.2 minutos | 10 minutos |
|
|
49
|
+
| 99.95% | 21.6 minutos | 5 minutos |
|
|
50
|
+
| 99.99% | 4.32 minutos | 1 minuto |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### SLO-002: Latência
|
|
55
|
+
|
|
56
|
+
| Aspecto | Valor |
|
|
57
|
+
|---------|-------|
|
|
58
|
+
| **Descrição** | Tempo de resposta para requisições |
|
|
59
|
+
| **SLI** | Percentil de latência das requisições |
|
|
60
|
+
| **SLO Target p50** | [< 100ms] (mediana) |
|
|
61
|
+
| **SLO Target p95** | [< 300ms] |
|
|
62
|
+
| **SLO Target p99** | [< 1000ms] |
|
|
63
|
+
| **Janela de Medição** | Rolling [7] dias |
|
|
64
|
+
| **Exclusões** | Operações de export/batch, uploads grandes |
|
|
65
|
+
|
|
66
|
+
**Endpoints Críticos (medir separadamente):**
|
|
67
|
+
|
|
68
|
+
| Endpoint | p50 | p95 | p99 |
|
|
69
|
+
|----------|-----|-----|-----|
|
|
70
|
+
| `GET /api/health` | < 10ms | < 50ms | < 100ms |
|
|
71
|
+
| `POST /api/auth/login` | < 200ms | < 500ms | < 1s |
|
|
72
|
+
| `GET /api/products` | < 100ms | < 300ms | < 500ms |
|
|
73
|
+
| [ADICIONAR SEUS ENDPOINTS] | | | |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### SLO-003: Taxa de Erros
|
|
78
|
+
|
|
79
|
+
| Aspecto | Valor |
|
|
80
|
+
|---------|-------|
|
|
81
|
+
| **Descrição** | Proporção de requisições que resultam em erro |
|
|
82
|
+
| **SLI** | `(erros 5xx / total de requests) × 100%` |
|
|
83
|
+
| **SLO Target** | [< 0.1%] |
|
|
84
|
+
| **Janela de Medição** | Rolling [24] horas |
|
|
85
|
+
| **Exclusões** | Erros 4xx (responsabilidade do cliente) |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### SLO-004: Throughput
|
|
90
|
+
|
|
91
|
+
| Aspecto | Valor |
|
|
92
|
+
|---------|-------|
|
|
93
|
+
| **Descrição** | Capacidade de processamento do sistema |
|
|
94
|
+
| **SLI** | Requests processados por segundo |
|
|
95
|
+
| **SLO Target** | Suportar [1000] req/s sem degradação |
|
|
96
|
+
| **Degradação Aceitável** | Até [20%] aumento de latência em picos |
|
|
97
|
+
| **Janela de Medição** | Picos de [5] minutos |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### SLO-005: Durabilidade de Dados (se aplicável)
|
|
102
|
+
|
|
103
|
+
| Aspecto | Valor |
|
|
104
|
+
|---------|-------|
|
|
105
|
+
| **Descrição** | Dados armazenados não devem ser perdidos |
|
|
106
|
+
| **SLI** | % de objetos preservados |
|
|
107
|
+
| **SLO Target** | [99.999999999%] (11 noves) |
|
|
108
|
+
| **Janela de Medição** | Anual |
|
|
109
|
+
| **Estratégia** | Replicação multi-região, backups diários |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Ações por Consumo de Error Budget
|
|
114
|
+
|
|
115
|
+
| Budget Consumido | Status | Ações |
|
|
116
|
+
|------------------|--------|-------|
|
|
117
|
+
| 0-50% | 🟢 Normal | Operação normal, deploys liberados |
|
|
118
|
+
| 50-75% | 🟡 Atenção | Alerta para time, revisar deploys |
|
|
119
|
+
| 75-90% | 🟠 Alerta | Freeze parcial, priorizar estabilidade |
|
|
120
|
+
| 90-100% | 🔴 Crítico | Freeze total de features, foco em bugs |
|
|
121
|
+
| >100% | ⚫ Violação | Post-mortem obrigatório, plano de ação |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Alertas Configurados
|
|
126
|
+
|
|
127
|
+
| SLO | Condição de Alerta | Severidade | Canal |
|
|
128
|
+
|-----|-------------------|------------|-------|
|
|
129
|
+
| Disponibilidade | < 99.5% (1h window) | Warning | Slack |
|
|
130
|
+
| Disponibilidade | < 99% (1h window) | Critical | PagerDuty |
|
|
131
|
+
| Latência p95 | > 500ms (5min window) | Warning | Slack |
|
|
132
|
+
| Latência p99 | > 2s (5min window) | Critical | PagerDuty |
|
|
133
|
+
| Error Rate | > 1% (5min window) | Critical | PagerDuty |
|
|
134
|
+
| Error Budget | > 50% consumido | Warning | Slack |
|
|
135
|
+
| Error Budget | > 80% consumido | Critical | Email + Slack |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Dashboard e Observabilidade
|
|
140
|
+
|
|
141
|
+
### Métricas a Coletar
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
# Prometheus/OpenTelemetry metrics
|
|
145
|
+
- http_requests_total{status, endpoint, method}
|
|
146
|
+
- http_request_duration_seconds{endpoint, method, quantile}
|
|
147
|
+
- http_errors_total{status, endpoint}
|
|
148
|
+
- error_budget_remaining_percent{service}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Queries de Referência (PromQL)
|
|
152
|
+
|
|
153
|
+
```promql
|
|
154
|
+
# Disponibilidade (últimas 24h)
|
|
155
|
+
sum(rate(http_requests_total{status=~"2.."}[24h]))
|
|
156
|
+
/
|
|
157
|
+
sum(rate(http_requests_total[24h])) * 100
|
|
158
|
+
|
|
159
|
+
# Latência p95
|
|
160
|
+
histogram_quantile(0.95,
|
|
161
|
+
sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
# Taxa de erros
|
|
165
|
+
sum(rate(http_requests_total{status=~"5.."}[5m]))
|
|
166
|
+
/
|
|
167
|
+
sum(rate(http_requests_total[5m])) * 100
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Revisão e Governança
|
|
173
|
+
|
|
174
|
+
| Atividade | Frequência | Responsável |
|
|
175
|
+
|-----------|------------|-------------|
|
|
176
|
+
| Revisão de SLOs | Trimestral | Tech Lead + SRE |
|
|
177
|
+
| Análise de Error Budget | Semanal | Time de Produto |
|
|
178
|
+
| Post-mortem de violações | Após cada violação | Time responsável |
|
|
179
|
+
| Atualização de alertas | Mensal | SRE |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Histórico de Violações
|
|
184
|
+
|
|
185
|
+
| Data | SLO Violado | Duração | Causa Raiz | Ação Corretiva |
|
|
186
|
+
|------|-------------|---------|------------|----------------|
|
|
187
|
+
| [DATA] | [SLO-XXX] | [DURAÇÃO] | [CAUSA] | [AÇÃO] |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Próximos Passos
|
|
192
|
+
|
|
193
|
+
- [ ] Configurar coleta de métricas (Prometheus/Datadog/New Relic)
|
|
194
|
+
- [ ] Criar dashboard com SLIs em tempo real
|
|
195
|
+
- [ ] Configurar alertas conforme tabela acima
|
|
196
|
+
- [ ] Integrar com sistema de on-call (PagerDuty/Opsgenie)
|
|
197
|
+
- [ ] Agendar primeira revisão de SLOs
|