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