@maestro-ai/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +59 -0
  2. package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
  3. package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
  4. package/content/guides/Checklist Mestre de Entrega.md +68 -0
  5. package/content/guides/Gates de Qualidade.md +209 -0
  6. package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
  7. package/content/guides/Guia de Chaos Engineering.md +267 -0
  8. package/content/guides/Guia de Debugging com IA.md +135 -0
  9. package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
  10. package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
  11. package/content/guides/Guia de Multi-tenancy.md +368 -0
  12. package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
  13. package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
  14. package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
  15. package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
  16. package/content/guides/Rules base.md +90 -0
  17. package/content/prompts/README.md +203 -0
  18. package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
  19. package/content/prompts/apis/design-api-rest.md +303 -0
  20. package/content/prompts/apis/idempotencia.md +254 -0
  21. package/content/prompts/apis/versionamento.md +313 -0
  22. package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
  23. package/content/prompts/arquitetura/clean-architecture.md +151 -0
  24. package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
  25. package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
  26. package/content/prompts/arquitetura/modelo-dominio.md +207 -0
  27. package/content/prompts/arquitetura/multi-tenancy.md +235 -0
  28. package/content/prompts/database/migrations-zero-downtime.md +192 -0
  29. package/content/prompts/database/otimizacao-queries.md +296 -0
  30. package/content/prompts/desenvolvimento/code-review.md +301 -0
  31. package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
  32. package/content/prompts/devops/docker-compose.md +336 -0
  33. package/content/prompts/devops/feature-flags.md +374 -0
  34. package/content/prompts/devops/kubernetes-deploy.md +460 -0
  35. package/content/prompts/devops/pipeline-cicd.md +358 -0
  36. package/content/prompts/devops/terraform-iac.md +502 -0
  37. package/content/prompts/escalabilidade/analise-performance.md +240 -0
  38. package/content/prompts/escalabilidade/analise-performance.txt +94 -0
  39. package/content/prompts/escalabilidade/caching.md +255 -0
  40. package/content/prompts/observabilidade/chaos-testing.md +237 -0
  41. package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
  42. package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
  43. package/content/prompts/observabilidade/slos.md +215 -0
  44. package/content/prompts/produto/discovery-inicial.md +203 -0
  45. package/content/prompts/produto/discovery-inicial.txt +33 -0
  46. package/content/prompts/requisitos/refinar-requisitos.md +232 -0
  47. package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
  48. package/content/prompts/seguranca/analise-seguranca.md +243 -0
  49. package/content/prompts/seguranca/pentest-checklist.md +333 -0
  50. package/content/prompts/seguranca/rate-limiting.md +356 -0
  51. package/content/prompts/seguranca/revisao-lgpd.md +227 -0
  52. package/content/prompts/seguranca/threat-modeling.md +224 -0
  53. package/content/prompts/testes/contract-testing.md +340 -0
  54. package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
  55. package/content/prompts/testes/testes-e2e.md +460 -0
  56. package/content/prompts/testes/testes-integracao.md +418 -0
  57. package/content/prompts/testes/testes-performance.md +458 -0
  58. package/content/prompts/ux/gerar-ui-stitch.md +151 -0
  59. package/content/skills/api-patterns/SKILL.md +81 -0
  60. package/content/skills/api-patterns/api-style.md +42 -0
  61. package/content/skills/api-patterns/auth.md +24 -0
  62. package/content/skills/api-patterns/documentation.md +26 -0
  63. package/content/skills/api-patterns/graphql.md +41 -0
  64. package/content/skills/api-patterns/rate-limiting.md +31 -0
  65. package/content/skills/api-patterns/response.md +37 -0
  66. package/content/skills/api-patterns/rest.md +40 -0
  67. package/content/skills/api-patterns/scripts/api_validator.py +211 -0
  68. package/content/skills/api-patterns/security-testing.md +122 -0
  69. package/content/skills/api-patterns/trpc.md +41 -0
  70. package/content/skills/api-patterns/versioning.md +22 -0
  71. package/content/skills/app-builder/SKILL.md +75 -0
  72. package/content/skills/app-builder/agent-coordination.md +71 -0
  73. package/content/skills/app-builder/feature-building.md +53 -0
  74. package/content/skills/app-builder/project-detection.md +34 -0
  75. package/content/skills/app-builder/scaffolding.md +118 -0
  76. package/content/skills/app-builder/tech-stack.md +40 -0
  77. package/content/skills/app-builder/templates/SKILL.md +39 -0
  78. package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  79. package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  80. package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  81. package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  82. package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  83. package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  84. package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  85. package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  86. package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  87. package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  88. package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  89. package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  90. package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  91. package/content/skills/architecture/SKILL.md +55 -0
  92. package/content/skills/architecture/context-discovery.md +43 -0
  93. package/content/skills/architecture/examples.md +94 -0
  94. package/content/skills/architecture/pattern-selection.md +68 -0
  95. package/content/skills/architecture/patterns-reference.md +50 -0
  96. package/content/skills/architecture/trade-off-analysis.md +77 -0
  97. package/content/skills/bash-linux/SKILL.md +199 -0
  98. package/content/skills/behavioral-modes/SKILL.md +242 -0
  99. package/content/skills/brainstorming/SKILL.md +163 -0
  100. package/content/skills/brainstorming/dynamic-questioning.md +350 -0
  101. package/content/skills/clean-code/SKILL.md +201 -0
  102. package/content/skills/code-review-checklist/SKILL.md +109 -0
  103. package/content/skills/database-design/SKILL.md +52 -0
  104. package/content/skills/database-design/database-selection.md +43 -0
  105. package/content/skills/database-design/indexing.md +39 -0
  106. package/content/skills/database-design/migrations.md +48 -0
  107. package/content/skills/database-design/optimization.md +36 -0
  108. package/content/skills/database-design/orm-selection.md +30 -0
  109. package/content/skills/database-design/schema-design.md +56 -0
  110. package/content/skills/database-design/scripts/schema_validator.py +172 -0
  111. package/content/skills/deployment-procedures/SKILL.md +241 -0
  112. package/content/skills/doc.md +177 -0
  113. package/content/skills/documentation-templates/SKILL.md +194 -0
  114. package/content/skills/frontend-design/SKILL.md +396 -0
  115. package/content/skills/frontend-design/animation-guide.md +331 -0
  116. package/content/skills/frontend-design/color-system.md +311 -0
  117. package/content/skills/frontend-design/decision-trees.md +418 -0
  118. package/content/skills/frontend-design/motion-graphics.md +306 -0
  119. package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  120. package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
  121. package/content/skills/frontend-design/typography-system.md +345 -0
  122. package/content/skills/frontend-design/ux-psychology.md +541 -0
  123. package/content/skills/frontend-design/visual-effects.md +383 -0
  124. package/content/skills/game-development/2d-games/SKILL.md +119 -0
  125. package/content/skills/game-development/3d-games/SKILL.md +135 -0
  126. package/content/skills/game-development/SKILL.md +167 -0
  127. package/content/skills/game-development/game-art/SKILL.md +185 -0
  128. package/content/skills/game-development/game-audio/SKILL.md +190 -0
  129. package/content/skills/game-development/game-design/SKILL.md +129 -0
  130. package/content/skills/game-development/mobile-games/SKILL.md +108 -0
  131. package/content/skills/game-development/multiplayer/SKILL.md +132 -0
  132. package/content/skills/game-development/pc-games/SKILL.md +144 -0
  133. package/content/skills/game-development/vr-ar/SKILL.md +123 -0
  134. package/content/skills/game-development/web-games/SKILL.md +150 -0
  135. package/content/skills/geo-fundamentals/SKILL.md +156 -0
  136. package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  137. package/content/skills/i18n-localization/SKILL.md +154 -0
  138. package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  139. package/content/skills/intelligent-routing/SKILL.md +334 -0
  140. package/content/skills/lint-and-validate/SKILL.md +45 -0
  141. package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
  142. package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  143. package/content/skills/mcp-builder/SKILL.md +176 -0
  144. package/content/skills/mobile-design/SKILL.md +394 -0
  145. package/content/skills/mobile-design/decision-trees.md +516 -0
  146. package/content/skills/mobile-design/mobile-backend.md +491 -0
  147. package/content/skills/mobile-design/mobile-color-system.md +420 -0
  148. package/content/skills/mobile-design/mobile-debugging.md +122 -0
  149. package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
  150. package/content/skills/mobile-design/mobile-navigation.md +458 -0
  151. package/content/skills/mobile-design/mobile-performance.md +767 -0
  152. package/content/skills/mobile-design/mobile-testing.md +356 -0
  153. package/content/skills/mobile-design/mobile-typography.md +433 -0
  154. package/content/skills/mobile-design/platform-android.md +666 -0
  155. package/content/skills/mobile-design/platform-ios.md +561 -0
  156. package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
  157. package/content/skills/mobile-design/touch-psychology.md +537 -0
  158. package/content/skills/nextjs-best-practices/SKILL.md +203 -0
  159. package/content/skills/nodejs-best-practices/SKILL.md +333 -0
  160. package/content/skills/parallel-agents/SKILL.md +175 -0
  161. package/content/skills/performance-profiling/SKILL.md +143 -0
  162. package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  163. package/content/skills/plan-writing/SKILL.md +152 -0
  164. package/content/skills/powershell-windows/SKILL.md +167 -0
  165. package/content/skills/python-patterns/SKILL.md +441 -0
  166. package/content/skills/react-patterns/SKILL.md +198 -0
  167. package/content/skills/red-team-tactics/SKILL.md +199 -0
  168. package/content/skills/seo-fundamentals/SKILL.md +129 -0
  169. package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  170. package/content/skills/server-management/SKILL.md +161 -0
  171. package/content/skills/systematic-debugging/SKILL.md +109 -0
  172. package/content/skills/tailwind-patterns/SKILL.md +269 -0
  173. package/content/skills/tdd-workflow/SKILL.md +149 -0
  174. package/content/skills/testing-patterns/SKILL.md +178 -0
  175. package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
  176. package/content/skills/vulnerability-scanner/SKILL.md +276 -0
  177. package/content/skills/vulnerability-scanner/checklists.md +121 -0
  178. package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  179. package/content/skills/webapp-testing/SKILL.md +187 -0
  180. package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  181. package/content/specialists/Especialista em Acessibilidade.md +266 -0
  182. package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
  183. package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
  184. package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
  185. package/content/specialists/Especialista em Banco de Dados.md +260 -0
  186. package/content/specialists/Especialista em Contrato de API.md +172 -0
  187. package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
  188. package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
  189. package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
  190. package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
  191. package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
  192. package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
  193. package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
  194. package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
  195. package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
  196. package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
  197. package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
  198. package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
  199. package/content/specialists/Especialista em Observabilidade.md +415 -0
  200. package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
  201. package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
  202. package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
  203. package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
  204. package/content/specialists/Especialista em UX Design.md +453 -0
  205. package/content/specialists/INDEX.md +43 -0
  206. package/content/templates/PRD.md +165 -0
  207. package/content/templates/README.md +65 -0
  208. package/content/templates/adr.md +103 -0
  209. package/content/templates/arquitetura.md +279 -0
  210. package/content/templates/backlog.md +185 -0
  211. package/content/templates/checklist-seguranca.md +180 -0
  212. package/content/templates/contexto.md +120 -0
  213. package/content/templates/criterios-aceite.md +99 -0
  214. package/content/templates/design-banco.md +270 -0
  215. package/content/templates/design-doc.md +240 -0
  216. package/content/templates/feature.md +88 -0
  217. package/content/templates/historia-backend.md +84 -0
  218. package/content/templates/historia-frontend.md +75 -0
  219. package/content/templates/historia-usuario.md +125 -0
  220. package/content/templates/mapa-navegacao.md +133 -0
  221. package/content/templates/matriz-rastreabilidade.md +121 -0
  222. package/content/templates/modelo-dominio.md +219 -0
  223. package/content/templates/plano-testes.md +199 -0
  224. package/content/templates/prototipo-stitch.md +138 -0
  225. package/content/templates/requisitos.md +162 -0
  226. package/content/templates/slo-sli.md +197 -0
  227. package/content/workflows/README-MCP.md +363 -0
  228. package/content/workflows/brainstorm.md +113 -0
  229. package/content/workflows/create.md +59 -0
  230. package/content/workflows/debug.md +103 -0
  231. package/content/workflows/deploy.md +176 -0
  232. package/content/workflows/enhance.md +63 -0
  233. package/content/workflows/mcp-debug.md +506 -0
  234. package/content/workflows/mcp-feature.md +385 -0
  235. package/content/workflows/mcp-gate.md +413 -0
  236. package/content/workflows/mcp-next.md +388 -0
  237. package/content/workflows/mcp-refactor.md +600 -0
  238. package/content/workflows/mcp-start.md +304 -0
  239. package/content/workflows/mcp-status.md +400 -0
  240. package/content/workflows/orchestrate.md +237 -0
  241. package/content/workflows/plan.md +89 -0
  242. package/content/workflows/preview.md +81 -0
  243. package/content/workflows/status.md +86 -0
  244. package/content/workflows/test.md +144 -0
  245. package/content/workflows/ui-ux-pro-max.md +296 -0
  246. package/dist/commands/init.d.ts +6 -0
  247. package/dist/commands/init.js +138 -0
  248. package/dist/commands/update.d.ts +5 -0
  249. package/dist/commands/update.js +50 -0
  250. package/dist/index.d.ts +2 -0
  251. package/dist/index.js +21 -0
  252. package/package.json +48 -0
@@ -0,0 +1,180 @@
1
+ # Checklist de Segurança: [Nome do Sistema]
2
+
3
+ **Versão:** 1.0
4
+ **Data:** YYYY-MM-DD
5
+ **Responsável:** [Nome]
6
+ **Arquitetura Relacionada:** [Link]
7
+
8
+ ---
9
+
10
+ ## 1. Autenticação
11
+
12
+ - [ ] Senhas hasheadas com algoritmo seguro (bcrypt/argon2)
13
+ - [ ] Política de senha forte implementada (min 8 chars, complexidade)
14
+ - [ ] Rate limiting em endpoints de login
15
+ - [ ] Bloqueio após N tentativas falhas
16
+ - [ ] 2FA disponível (se aplicável)
17
+ - [ ] Tokens JWT com expiração curta (< 15 min)
18
+ - [ ] Refresh tokens com rotação
19
+ - [ ] Logout invalida tokens
20
+
21
+ ---
22
+
23
+ ## 2. Autorização
24
+
25
+ - [ ] Modelo de autorização definido (RBAC/ABAC)
26
+ - [ ] Verificação de permissão em cada endpoint
27
+ - [ ] Não há exposição de dados entre usuários
28
+ - [ ] Admin separado de user comum
29
+ - [ ] Princípio do menor privilégio aplicado
30
+
31
+ ---
32
+
33
+ ## 3. Proteção de Dados
34
+
35
+ ### 3.1 Dados em Trânsito
36
+ - [ ] HTTPS obrigatório em produção
37
+ - [ ] TLS 1.2+ configurado
38
+ - [ ] HSTS habilitado
39
+ - [ ] Certificados válidos e atualizados
40
+
41
+ ### 3.2 Dados em Repouso
42
+ - [ ] Dados sensíveis criptografados no banco
43
+ - [ ] Backups criptografados
44
+ - [ ] Chaves de criptografia rotacionadas
45
+
46
+ ### 3.3 Dados Sensíveis
47
+ - [ ] PII identificada e mapeada
48
+ - [ ] Logs não contêm dados sensíveis
49
+ - [ ] Mascaramento em ambientes não-prod
50
+ - [ ] LGPD/GDPR compliance (se aplicável)
51
+
52
+ ---
53
+
54
+ ## 4. OWASP Top 10
55
+
56
+ ### A01: Broken Access Control
57
+ - [ ] Verificação de autorização lado servidor
58
+ - [ ] CORS configurado corretamente
59
+ - [ ] Tokens não expostos em URLs
60
+
61
+ ### A02: Cryptographic Failures
62
+ - [ ] Algoritmos modernos (AES-256, RSA-2048+)
63
+ - [ ] Sem secrets hardcoded
64
+ - [ ] Gerenciamento seguro de chaves
65
+
66
+ ### A03: Injection
67
+ - [ ] Queries parametrizadas (ORM/prepared statements)
68
+ - [ ] Validação de input em todo lugar
69
+ - [ ] Sanitização de output (XSS)
70
+
71
+ ### A04: Insecure Design
72
+ - [ ] Threat modeling realizado
73
+ - [ ] Princípios de segurança desde o design
74
+ - [ ] Revisão de segurança em features críticas
75
+
76
+ ### A05: Security Misconfiguration
77
+ - [ ] Headers de segurança (Helmet)
78
+ - [ ] Versões atualizadas de dependências
79
+ - [ ] Debug desabilitado em prod
80
+ - [ ] Ports desnecessárias fechadas
81
+
82
+ ### A06: Vulnerable Components
83
+ - [ ] Dependências auditadas regularmente
84
+ - [ ] Alertas de segurança configurados (Dependabot/Snyk)
85
+ - [ ] Processo de atualização definido
86
+
87
+ ### A07: Identification and Authentication Failures
88
+ - [ ] Políticas de senha adequadas
89
+ - [ ] Proteção contra brute force
90
+ - [ ] Session management seguro
91
+
92
+ ### A08: Software and Data Integrity Failures
93
+ - [ ] Verificação de integridade em dependências
94
+ - [ ] CI/CD seguro
95
+ - [ ] Assinatura de código (se aplicável)
96
+
97
+ ### A09: Security Logging and Monitoring
98
+ - [ ] Logs de eventos de segurança
99
+ - [ ] Alertas para eventos suspeitos
100
+ - [ ] Retenção adequada de logs
101
+ - [ ] Logs protegidos contra tampering
102
+
103
+ ### A10: Server-Side Request Forgery
104
+ - [ ] URLs externas validadas
105
+ - [ ] Whitelist de domínios permitidos
106
+ - [ ] Metadados de cloud bloqueados
107
+
108
+ ---
109
+
110
+ ## 5. Infraestrutura
111
+
112
+ - [ ] Firewall configurado
113
+ - [ ] Grupos de segurança restritivos
114
+ - [ ] Acesso SSH restrito (bastion/chave)
115
+ - [ ] Secrets em vault (não em env vars plain)
116
+ - [ ] Containers rodando como non-root
117
+ - [ ] Imagens base atualizadas
118
+
119
+ ---
120
+
121
+ ## 6. API Security
122
+
123
+ - [ ] Rate limiting implementado
124
+ - [ ] Validação de Content-Type
125
+ - [ ] Tamanho máximo de payload definido
126
+ - [ ] Timeout de requisições
127
+ - [ ] CORS restritivo
128
+ - [ ] API keys rotacionadas
129
+
130
+ ---
131
+
132
+ ## 7. Riscos de IA (se aplicável)
133
+
134
+ - [ ] Inputs de usuário não vão direto para LLM
135
+ - [ ] Proteção contra prompt injection
136
+ - [ ] Dados sensíveis não enviados para AI externa
137
+ - [ ] Output de IA validado antes de uso
138
+ - [ ] Logs de AI não contêm PII
139
+
140
+ ---
141
+
142
+ ## 8. Testes de Segurança
143
+
144
+ - [ ] SAST configurado no CI (Semgrep/CodeQL)
145
+ - [ ] DAST em staging (OWASP ZAP)
146
+ - [ ] Dependency scanning
147
+ - [ ] Pentest realizado (para sistemas críticos)
148
+
149
+ ---
150
+
151
+ ## 9. Resposta a Incidentes
152
+
153
+ - [ ] Plano de resposta documentado
154
+ - [ ] Contatos de emergência definidos
155
+ - [ ] Processo de rollback testado
156
+ - [ ] Comunicação com usuários planejada
157
+
158
+ ---
159
+
160
+ ## Resumo de Status
161
+
162
+ | Categoria | Checados | Total | % |
163
+ |---|---|---|---|
164
+ | Autenticação | /8 | 8 | % |
165
+ | Autorização | /5 | 5 | % |
166
+ | Dados | /12 | 12 | % |
167
+ | OWASP | /20 | 20 | % |
168
+ | Infra | /7 | 7 | % |
169
+ | API | /6 | 6 | % |
170
+ | IA | /5 | 5 | % |
171
+ | Testes | /4 | 4 | % |
172
+ | **TOTAL** | | 67 | % |
173
+
174
+ ---
175
+
176
+ ## Changelog
177
+
178
+ | Versão | Data | Autor | Mudanças |
179
+ |---|---|---|---|
180
+ | 1.0 | YYYY-MM-DD | [Nome] | Versão inicial |
@@ -0,0 +1,120 @@
1
+ # Contexto do Projeto
2
+
3
+ > **Instruções**: Copie este template para `docs/CONTEXTO.md` no seu projeto.
4
+ > Atualize após cada fase para manter o contexto entre sessões.
5
+
6
+ ---
7
+
8
+ ## Metadados
9
+
10
+ | Campo | Valor |
11
+ |-------|-------|
12
+ | **Nome do Projeto** | [NOME] |
13
+ | **Nível de Complexidade** | [ ] Simples / [ ] Médio / [ ] Complexo |
14
+ | **Fase Atual** | [1-10] |
15
+ | **Última Atualização** | [DATA] |
16
+
17
+ ---
18
+
19
+ ## Resumo Executivo
20
+
21
+ [2-3 linhas sobre o que o sistema faz, para quem e qual problema resolve]
22
+
23
+ ---
24
+
25
+ ## Stack Tecnológica
26
+
27
+ | Camada | Tecnologia | Justificativa |
28
+ |--------|------------|---------------|
29
+ | Frontend | | |
30
+ | Backend | | |
31
+ | Banco de Dados | | |
32
+ | Infraestrutura | | |
33
+ | Testes | | |
34
+
35
+ ---
36
+
37
+ ## Modelo de Domínio (Resumo)
38
+
39
+ | Entidade | Principais Atributos | Relacionamentos |
40
+ |----------|---------------------|-----------------|
41
+ | | | |
42
+ | | | |
43
+ | | | |
44
+
45
+ ---
46
+
47
+ ## Decisões Arquiteturais (Resumo)
48
+
49
+ | ID | Decisão | Escolha | Justificativa |
50
+ |----|---------|---------|---------------|
51
+ | ADR-001 | | | |
52
+ | ADR-002 | | | |
53
+
54
+ ---
55
+
56
+ ## Artefatos Existentes
57
+
58
+ > Marque os artefatos já criados e seus caminhos:
59
+
60
+ ### Fase 1: Produto
61
+ - [ ] PRD: `docs/01-produto/PRD.md`
62
+
63
+ ### Fase 2: Requisitos
64
+ - [ ] Requisitos: `docs/02-requisitos/requisitos.md`
65
+ - [ ] Critérios de Aceite: `docs/02-requisitos/criterios-aceite.md`
66
+
67
+ ### Fase 3: UX
68
+ - [ ] Design Doc: `docs/03-ux/design-doc.md`
69
+
70
+ ### Fase 4: Modelagem
71
+ - [ ] Modelo de Domínio: `docs/04-modelo/modelo-dominio.md`
72
+
73
+ ### Fase 5: Arquitetura
74
+ - [ ] Arquitetura: `docs/05-arquitetura/arquitetura.md`
75
+ - [ ] ADRs: `docs/05-arquitetura/adr/`
76
+
77
+ ### Fase 6: Segurança
78
+ - [ ] Checklist: `docs/06-seguranca/checklist.md`
79
+
80
+ ### Fase 7: Testes
81
+ - [ ] Plano de Testes: `docs/07-testes/plano-testes.md`
82
+
83
+ ### Fase 8: Backlog
84
+ - [ ] Backlog: `docs/08-backlog/backlog.md`
85
+
86
+ ---
87
+
88
+ ## Histórico de Fases
89
+
90
+ | Fase | Nome | Data Conclusão | Gate Status |
91
+ |------|------|----------------|-------------|
92
+ | 1 | Produto | | [ ] Aprovado |
93
+ | 2 | Requisitos | | [ ] Aprovado |
94
+ | 3 | UX | | [ ] Aprovado |
95
+ | 4 | Modelagem | | [ ] Aprovado |
96
+ | 5 | Arquitetura | | [ ] Aprovado |
97
+ | 6 | Segurança | | [ ] Aprovado |
98
+ | 7 | Testes | | [ ] Aprovado |
99
+ | 8 | Backlog | | [ ] Aprovado |
100
+
101
+ ---
102
+
103
+ ## Como Usar Este Arquivo
104
+
105
+ ### No início de cada sessão com IA:
106
+
107
+ ```text
108
+ Aqui está o contexto do meu projeto:
109
+
110
+ [COLE O CONTEÚDO DESTE ARQUIVO]
111
+
112
+ Continuando da fase [X], preciso [DESCREVER TAREFA].
113
+ ```
114
+
115
+ ### Após cada fase concluída:
116
+
117
+ 1. Atualize a seção "Artefatos Existentes"
118
+ 2. Atualize "Histórico de Fases"
119
+ 3. Atualize "Modelo de Domínio" e "Decisões" se houver mudanças
120
+ 4. Atualize "Fase Atual" e "Última Atualização"
@@ -0,0 +1,99 @@
1
+ # Critérios de Aceite: [Nome do Sistema]
2
+
3
+ **Versão:** 1.0
4
+ **Requisitos Relacionados:** [Link para requisitos.md]
5
+
6
+ ---
7
+
8
+ ## Formato
9
+
10
+ Usamos Gherkin para critérios de aceite:
11
+
12
+ ```gherkin
13
+ Funcionalidade: [Nome da funcionalidade]
14
+ Como [persona]
15
+ Quero [ação]
16
+ Para [benefício]
17
+
18
+ Cenário: [Nome do cenário]
19
+ Dado [contexto/pré-condição]
20
+ Quando [ação do usuário]
21
+ Então [resultado esperado]
22
+ ```
23
+
24
+ ---
25
+
26
+ ## CA001 - [Título] (RF001)
27
+
28
+ ### Cenário 1: Sucesso - [Descrição]
29
+ ```gherkin
30
+ Dado que o usuário está logado
31
+ E está na página [X]
32
+ Quando o usuário [ação]
33
+ Então o sistema deve [resultado]
34
+ E [outro resultado se houver]
35
+ ```
36
+
37
+ ### Cenário 2: Erro - [Descrição]
38
+ ```gherkin
39
+ Dado que o usuário está logado
40
+ E [condição de erro]
41
+ Quando o usuário [ação]
42
+ Então o sistema deve exibir mensagem de erro "[mensagem]"
43
+ E não deve [ação que não deve ocorrer]
44
+ ```
45
+
46
+ ### Cenário 3: Edge Case - [Descrição]
47
+ ```gherkin
48
+ Dado [condição de borda]
49
+ Quando [ação]
50
+ Então [comportamento esperado]
51
+ ```
52
+
53
+ ---
54
+
55
+ ## CA002 - [Título] (RF002)
56
+
57
+ ### Cenário 1: [Descrição]
58
+ ```gherkin
59
+ Dado [contexto]
60
+ Quando [ação]
61
+ Então [resultado]
62
+ ```
63
+
64
+ ---
65
+
66
+ ## CA003 - [Título] (RF003)
67
+
68
+ ### Cenário 1: [Descrição]
69
+ ```gherkin
70
+ Dado [contexto]
71
+ Quando [ação]
72
+ Então [resultado]
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Tabela de Dados de Teste
78
+
79
+ Para cenários que precisam de múltiplas variações:
80
+
81
+ ### CA001 - Validação de Campos
82
+
83
+ | Campo | Valor Válido | Valor Inválido | Mensagem de Erro |
84
+ |---|---|---|---|
85
+ | email | user@email.com | "email-invalido" | "Email inválido" |
86
+ | senha | "Senha123!" | "123" | "Senha deve ter 8+ caracteres" |
87
+ | nome | "João Silva" | "" | "Nome é obrigatório" |
88
+
89
+ ---
90
+
91
+ ## Checklist de Cobertura
92
+
93
+ - [ ] Cenário de sucesso (happy path)
94
+ - [ ] Validação de campos obrigatórios
95
+ - [ ] Validação de formato de campos
96
+ - [ ] Permissões/autorização
97
+ - [ ] Edge cases (limites, null, vazio)
98
+ - [ ] Concorrência (se aplicável)
99
+ - [ ] Timeout/indisponibilidade (se integração)
@@ -0,0 +1,270 @@
1
+ # Design de Banco de Dados
2
+
3
+ > **Projeto**: [Nome do Projeto]
4
+ > **Versão**: 1.0
5
+ > **Data**: [YYYY-MM-DD]
6
+ > **Autor**: [Nome]
7
+
8
+ ---
9
+
10
+ ## 1. Escolha do Banco de Dados
11
+
12
+ ### 1.1 Banco Selecionado
13
+
14
+ | Aspecto | Valor |
15
+ |---------|-------|
16
+ | **Banco** | PostgreSQL 16 |
17
+ | **Tipo** | Relacional |
18
+ | **Hospedagem** | [Cloud/Self-hosted] |
19
+
20
+ ### 1.2 Justificativa
21
+
22
+ <!-- Por que este banco foi escolhido? Considere: -->
23
+ <!-- - Requisitos de consistência (ACID) -->
24
+ <!-- - Padrão de leitura/escrita -->
25
+ <!-- - Necessidade de JSON/NoSQL -->
26
+ <!-- - Escala esperada -->
27
+ <!-- - Expertise do time -->
28
+
29
+ | Critério | Peso | Score | Justificativa |
30
+ |----------|------|-------|---------------|
31
+ | Consistência ACID | Alto | ✅ | Transações financeiras requerem atomicidade |
32
+ | Performance de leitura | Médio | ✅ | Índices e connection pooling |
33
+ | JSON support | Baixo | ✅ | JSONB para dados semi-estruturados |
34
+ | Escalabilidade | Médio | ⚠️ | Até 1M registros, suficiente para MVP |
35
+
36
+ ---
37
+
38
+ ## 2. Schema Físico
39
+
40
+ ### 2.1 Convenções Adotadas
41
+
42
+ | Convenção | Padrão |
43
+ |-----------|--------|
44
+ | Nomenclatura de tabelas | snake_case, plural |
45
+ | Nomenclatura de colunas | snake_case |
46
+ | Chave primária | `id` (UUID v7) |
47
+ | Timestamps | `created_at`, `updated_at` |
48
+ | Soft delete | `deleted_at` (nullable) |
49
+ | Foreign keys | `{tabela_singular}_id` |
50
+
51
+ ### 2.2 Tabelas
52
+
53
+ #### `users`
54
+
55
+ | Coluna | Tipo | Constraints | Descrição |
56
+ |--------|------|-------------|-----------|
57
+ | `id` | UUID | PK, DEFAULT uuid_generate_v7() | Identificador único |
58
+ | `email` | VARCHAR(255) | NOT NULL, UNIQUE | Email do usuário |
59
+ | `name` | VARCHAR(100) | NOT NULL | Nome completo |
60
+ | `password_hash` | VARCHAR(255) | NOT NULL | Hash bcrypt da senha |
61
+ | `role` | VARCHAR(20) | NOT NULL, DEFAULT 'user' | Papel: user, admin |
62
+ | `created_at` | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() | Data de criação |
63
+ | `updated_at` | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() | Última atualização |
64
+ | `deleted_at` | TIMESTAMPTZ | NULL | Soft delete |
65
+
66
+ <!-- Adicione mais tabelas conforme necessário -->
67
+
68
+ ### 2.3 DDL Completo
69
+
70
+ ```sql
71
+ -- Extensões necessárias
72
+ CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
73
+ CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- Para busca textual
74
+
75
+ -- Tabela: users
76
+ CREATE TABLE users (
77
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v7(),
78
+ email VARCHAR(255) NOT NULL,
79
+ name VARCHAR(100) NOT NULL,
80
+ password_hash VARCHAR(255) NOT NULL,
81
+ role VARCHAR(20) NOT NULL DEFAULT 'user',
82
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
83
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
84
+ deleted_at TIMESTAMPTZ NULL,
85
+
86
+ CONSTRAINT users_email_unique UNIQUE (email),
87
+ CONSTRAINT users_role_check CHECK (role IN ('user', 'admin'))
88
+ );
89
+
90
+ -- Índices
91
+ CREATE INDEX idx_users_email ON users(email) WHERE deleted_at IS NULL;
92
+ CREATE INDEX idx_users_role ON users(role) WHERE deleted_at IS NULL;
93
+
94
+ -- Trigger para updated_at
95
+ CREATE OR REPLACE FUNCTION update_updated_at_column()
96
+ RETURNS TRIGGER AS $$
97
+ BEGIN
98
+ NEW.updated_at = NOW();
99
+ RETURN NEW;
100
+ END;
101
+ $$ language 'plpgsql';
102
+
103
+ CREATE TRIGGER update_users_updated_at
104
+ BEFORE UPDATE ON users
105
+ FOR EACH ROW
106
+ EXECUTE FUNCTION update_updated_at_column();
107
+ ```
108
+
109
+ ---
110
+
111
+ ## 3. Diagrama ER de Implementação
112
+
113
+ ```mermaid
114
+ erDiagram
115
+ USERS {
116
+ uuid id PK
117
+ varchar email UK
118
+ varchar name
119
+ varchar password_hash
120
+ varchar role
121
+ timestamptz created_at
122
+ timestamptz updated_at
123
+ timestamptz deleted_at
124
+ }
125
+
126
+ %% Adicione relacionamentos conforme necessário
127
+ %% ORDERS ||--o{ ORDER_ITEMS : contains
128
+ %% USERS ||--o{ ORDERS : places
129
+ ```
130
+
131
+ ---
132
+
133
+ ## 4. Índices e Otimização
134
+
135
+ ### 4.1 Índices Planejados
136
+
137
+ | Tabela | Índice | Tipo | Colunas | Justificativa |
138
+ |--------|--------|------|---------|---------------|
139
+ | users | idx_users_email | B-tree | email | Login por email |
140
+ | users | idx_users_role | B-tree | role | Filtro por papel |
141
+
142
+ ### 4.2 Queries Críticas
143
+
144
+ ```sql
145
+ -- Query: Login por email
146
+ -- Frequency: Alta
147
+ -- Expected time: <5ms
148
+ EXPLAIN ANALYZE
149
+ SELECT id, email, password_hash, role
150
+ FROM users
151
+ WHERE email = $1 AND deleted_at IS NULL;
152
+ ```
153
+
154
+ ### 4.3 Particionamento
155
+
156
+ <!-- Se aplicável -->
157
+ | Tabela | Estratégia | Chave | Justificativa |
158
+ |--------|------------|-------|---------------|
159
+ | - | - | - | Não aplicável para MVP |
160
+
161
+ ---
162
+
163
+ ## 5. Estratégia de Migrações
164
+
165
+ ### 5.1 Ferramenta
166
+
167
+ | Aspecto | Valor |
168
+ |---------|-------|
169
+ | **Ferramenta** | Prisma Migrate |
170
+ | **Diretório** | `prisma/migrations/` |
171
+ | **Ambiente** | Via variável DATABASE_URL |
172
+
173
+ ### 5.2 Convenções
174
+
175
+ - Migrações são **imutáveis** após merge em main
176
+ - Nomenclatura: `YYYYMMDDHHMMSS_descricao_da_mudanca`
177
+ - Sempre incluir script de rollback quando possível
178
+ - Testar em staging antes de produção
179
+
180
+ ### 5.3 Processo de Deploy
181
+
182
+ ```mermaid
183
+ graph LR
184
+ A[PR com migração] --> B[Review]
185
+ B --> C[Merge em develop]
186
+ C --> D[CI aplica em staging]
187
+ D --> E{Testes OK?}
188
+ E -->|Sim| F[Merge em main]
189
+ E -->|Não| G[Rollback + Fix]
190
+ F --> H[CI aplica em prod]
191
+ ```
192
+
193
+ ---
194
+
195
+ ## 6. Segurança
196
+
197
+ ### 6.1 Roles de Banco
198
+
199
+ | Role | Permissões | Uso |
200
+ |------|------------|-----|
201
+ | `app_user` | SELECT, INSERT, UPDATE, DELETE nas tabelas de app | Conexão da aplicação |
202
+ | `app_readonly` | SELECT em todas as tabelas | Relatórios, BI |
203
+ | `app_admin` | ALL PRIVILEGES | Migrações, manutenção |
204
+
205
+ ### 6.2 Row-Level Security (RLS)
206
+
207
+ <!-- Se multi-tenant -->
208
+ ```sql
209
+ -- Habilitar RLS
210
+ ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
211
+
212
+ -- Policy: usuários só veem próprios pedidos
213
+ CREATE POLICY orders_isolation ON orders
214
+ FOR ALL
215
+ USING (user_id = current_setting('app.current_user_id')::uuid);
216
+ ```
217
+
218
+ ### 6.3 Dados Sensíveis
219
+
220
+ | Tabela | Coluna | Classificação | Proteção |
221
+ |--------|--------|---------------|----------|
222
+ | users | email | PII | Encryption at rest |
223
+ | users | password_hash | Credencial | bcrypt (no app) |
224
+
225
+ ---
226
+
227
+ ## 7. Decisões Técnicas (ADRs)
228
+
229
+ ### ADR-DB-001: UUID v7 como Primary Key
230
+
231
+ **Status**: Aceito
232
+
233
+ **Contexto**: Precisamos de IDs únicos, escaláveis e sortáveis.
234
+
235
+ **Decisão**: Usar UUID v7 (time-ordered) em vez de SERIAL/BIGSERIAL.
236
+
237
+ **Consequências**:
238
+ - ✅ IDs geráveis no app (sem round-trip ao banco)
239
+ - ✅ Ordenação temporal natural
240
+ - ✅ Merge-friendly para replicação
241
+ - ⚠️ 16 bytes vs 8 de BIGSERIAL
242
+ - ⚠️ Requer extensão ou função custom
243
+
244
+ ---
245
+
246
+ ### ADR-DB-002: Soft Delete
247
+
248
+ **Status**: Aceito
249
+
250
+ **Contexto**: Requisitos de auditoria e recuperação de dados.
251
+
252
+ **Decisão**: Usar `deleted_at` timestamp em vez de DELETE físico.
253
+
254
+ **Consequências**:
255
+ - ✅ Recuperação de dados deletados
256
+ - ✅ Auditoria simplificada
257
+ - ⚠️ Todos os queries precisam filtrar `WHERE deleted_at IS NULL`
258
+ - ⚠️ Índices parciais necessários
259
+
260
+ ---
261
+
262
+ ## Checklist de Validação
263
+
264
+ - [ ] Schema físico cobre todas as entidades do modelo de domínio
265
+ - [ ] Tipos de dados apropriados para cada campo
266
+ - [ ] Índices planejados para queries críticas
267
+ - [ ] Estratégia de migrações documentada
268
+ - [ ] Roles e permissões definidos
269
+ - [ ] Dados sensíveis identificados com proteção
270
+ - [ ] Decisões técnicas documentadas como ADRs