@maestro-ai/mcp-server 1.0.0 → 1.1.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 +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.d.ts.map +1 -1
- package/dist/tools/carregar-projeto.js +91 -116
- package/dist/tools/carregar-projeto.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +139 -224
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +224 -252
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/salvar.js +59 -59
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +64 -93
- package/dist/tools/status.js.map +1 -1
- 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,235 +1,235 @@
|
|
|
1
|
-
# Prompt: Multi-tenancy
|
|
2
|
-
|
|
3
|
-
> **Prioridade**: 🟡 MÉDIA
|
|
4
|
-
> **Aplicável a**: SaaS, plataformas white-label, sistemas B2B
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Prompt Base: Projetar Multi-tenancy
|
|
9
|
-
|
|
10
|
-
```text
|
|
11
|
-
Atue como arquiteto de software especialista em SaaS.
|
|
12
|
-
|
|
13
|
-
Preciso implementar multi-tenancy para:
|
|
14
|
-
- Tipo de produto: [ex. CRM SaaS, e-commerce white-label]
|
|
15
|
-
- Número esperado de tenants: [ex. 100 / 10.000 / 1M]
|
|
16
|
-
- Isolamento necessário: [ex. dados apenas / compliance rígido]
|
|
17
|
-
- Customização por tenant: [ex. branding / features / workflows]
|
|
18
|
-
|
|
19
|
-
Constraints:
|
|
20
|
-
- Stack: [DESCREVA]
|
|
21
|
-
- Orçamento de infra: [DESCREVA]
|
|
22
|
-
- Time: [DESCREVA]
|
|
23
|
-
|
|
24
|
-
Projete:
|
|
25
|
-
|
|
26
|
-
1. **Modelo de Isolamento**
|
|
27
|
-
- Database per tenant, schema per tenant, ou row-level?
|
|
28
|
-
- Justificativa para o contexto
|
|
29
|
-
- Estratégia para tenants com necessidades especiais
|
|
30
|
-
|
|
31
|
-
2. **Identificação de Tenant**
|
|
32
|
-
- Como identificar o tenant em cada request
|
|
33
|
-
- Subdomain, header, JWT, ou combinação
|
|
34
|
-
- Fallback se não identificado
|
|
35
|
-
|
|
36
|
-
3. **Implementação de Dados**
|
|
37
|
-
- Schema das tabelas (com tenant_id)
|
|
38
|
-
- Middleware/interceptor para filtrar
|
|
39
|
-
- Como garantir que queries não vazem dados
|
|
40
|
-
|
|
41
|
-
4. **Customização**
|
|
42
|
-
- Configurações por tenant
|
|
43
|
-
- Feature flags por plano
|
|
44
|
-
- Branding (logo, cores)
|
|
45
|
-
|
|
46
|
-
5. **Operacional**
|
|
47
|
-
- Provisioning de novo tenant
|
|
48
|
-
- Migrations multi-tenant
|
|
49
|
-
- Backup/restore por tenant
|
|
50
|
-
- Monitoramento por tenant
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Prompt: Migrar para Multi-tenant
|
|
56
|
-
|
|
57
|
-
```text
|
|
58
|
-
Tenho um sistema single-tenant que precisa virar multi-tenant:
|
|
59
|
-
[DESCREVA ESTRUTURA ATUAL]
|
|
60
|
-
|
|
61
|
-
Requisitos:
|
|
62
|
-
- Manter dados do tenant atual
|
|
63
|
-
- Adicionar suporte a novos tenants
|
|
64
|
-
- Mínimo de breaking changes
|
|
65
|
-
- Timeline: [PRAZO]
|
|
66
|
-
|
|
67
|
-
Gere um plano de migração com:
|
|
68
|
-
1. Alterações de schema (adicionar tenant_id)
|
|
69
|
-
2. Migrations de dados existentes
|
|
70
|
-
3. Mudanças de código (queries, middlewares)
|
|
71
|
-
4. Testes de validação
|
|
72
|
-
5. Rollout gradual
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Prompt: Implementar Row-Level Security
|
|
78
|
-
|
|
79
|
-
```text
|
|
80
|
-
Preciso implementar isolamento por row-level security.
|
|
81
|
-
|
|
82
|
-
Stack: [ex. PostgreSQL + Prisma + Node.js]
|
|
83
|
-
|
|
84
|
-
Tabelas principais:
|
|
85
|
-
[LISTE TABELAS]
|
|
86
|
-
|
|
87
|
-
Gere:
|
|
88
|
-
1. Migrations para adicionar tenant_id
|
|
89
|
-
2. Policies RLS no PostgreSQL
|
|
90
|
-
3. Middleware para setar current_tenant
|
|
91
|
-
4. Repository base com tenant scope
|
|
92
|
-
5. Testes de isolamento
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Prompt: Tenant Provisioning
|
|
98
|
-
|
|
99
|
-
```text
|
|
100
|
-
Preciso automatizar o onboarding de novos tenants.
|
|
101
|
-
|
|
102
|
-
Quando um novo tenant é criado, preciso:
|
|
103
|
-
- [ex. Criar registro no banco]
|
|
104
|
-
- [ex. Configurar subdomain no DNS]
|
|
105
|
-
- [ex. Criar usuário admin]
|
|
106
|
-
- [ex. Popular dados iniciais]
|
|
107
|
-
- [ex. Enviar email de boas-vindas]
|
|
108
|
-
|
|
109
|
-
Stack: [DESCREVA]
|
|
110
|
-
|
|
111
|
-
Gere:
|
|
112
|
-
1. Endpoint/workflow de provisioning
|
|
113
|
-
2. Jobs assíncronos necessários
|
|
114
|
-
3. Rollback se algum step falhar
|
|
115
|
-
4. Notificações de progresso
|
|
116
|
-
5. Documentação do processo
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Prompt: Limites e Quotas por Tenant
|
|
122
|
-
|
|
123
|
-
```text
|
|
124
|
-
Preciso implementar limites por plano:
|
|
125
|
-
|
|
126
|
-
| Recurso | Free | Pro | Enterprise |
|
|
127
|
-
|---------|------|-----|------------|
|
|
128
|
-
| Usuários | 5 | 50 | Ilimitado |
|
|
129
|
-
| Storage | 1GB | 10GB | 100GB |
|
|
130
|
-
| API calls/dia | 1000 | 10000 | Ilimitado |
|
|
131
|
-
| Features | [X,Y] | [X,Y,Z] | Todas |
|
|
132
|
-
|
|
133
|
-
Stack: [DESCREVA]
|
|
134
|
-
|
|
135
|
-
Gere:
|
|
136
|
-
1. Schema para quotas e usage tracking
|
|
137
|
-
2. Service para verificar limites
|
|
138
|
-
3. Middleware para bloquear quando excede
|
|
139
|
-
4. Dashboard de usage para tenant admin
|
|
140
|
-
5. Alerts quando próximo do limite
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Exemplo: Tenant Context Completo
|
|
146
|
-
|
|
147
|
-
```typescript
|
|
148
|
-
// src/tenancy/TenantContext.ts
|
|
149
|
-
import { AsyncLocalStorage } from 'async_hooks';
|
|
150
|
-
import { PrismaClient } from '@prisma/client';
|
|
151
|
-
|
|
152
|
-
interface TenantContext {
|
|
153
|
-
tenantId: string;
|
|
154
|
-
config: TenantConfig;
|
|
155
|
-
user?: User;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
interface TenantConfig {
|
|
159
|
-
id: string;
|
|
160
|
-
subdomain: string;
|
|
161
|
-
plan: 'free' | 'pro' | 'enterprise';
|
|
162
|
-
quotas: {
|
|
163
|
-
maxUsers: number;
|
|
164
|
-
maxStorage: number;
|
|
165
|
-
maxApiCalls: number;
|
|
166
|
-
};
|
|
167
|
-
features: string[];
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const storage = new AsyncLocalStorage<TenantContext>();
|
|
171
|
-
|
|
172
|
-
// Middleware
|
|
173
|
-
export async function tenantMiddleware(req, res, next) {
|
|
174
|
-
const tenantId = extractTenantIdFromRequest(req);
|
|
175
|
-
|
|
176
|
-
if (!tenantId) {
|
|
177
|
-
return res.status(400).json({ error: 'Tenant not found' });
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
const config = await loadTenantConfig(tenantId);
|
|
181
|
-
|
|
182
|
-
storage.run({ tenantId, config }, next);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Getters
|
|
186
|
-
export function getTenant(): TenantContext {
|
|
187
|
-
const ctx = storage.getStore();
|
|
188
|
-
if (!ctx) throw new Error('No tenant context');
|
|
189
|
-
return ctx;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export function getTenantId(): string {
|
|
193
|
-
return getTenant().tenantId;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export function hasFeature(feature: string): boolean {
|
|
197
|
-
return getTenant().config.features.includes(feature);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Prisma extension para injetar tenant automaticamente
|
|
201
|
-
export const prisma = new PrismaClient().$extends({
|
|
202
|
-
query: {
|
|
203
|
-
$allModels: {
|
|
204
|
-
async findMany({ args, query }) {
|
|
205
|
-
args.where = { ...args.where, tenantId: getTenantId() };
|
|
206
|
-
return query(args);
|
|
207
|
-
},
|
|
208
|
-
async create({ args, query }) {
|
|
209
|
-
args.data = { ...args.data, tenantId: getTenantId() };
|
|
210
|
-
return query(args);
|
|
211
|
-
},
|
|
212
|
-
// ... outras operações
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## Checklist
|
|
221
|
-
|
|
222
|
-
- [ ] Modelo de isolamento definido
|
|
223
|
-
- [ ] Identificação de tenant implementada
|
|
224
|
-
- [ ] Todas as queries filtram por tenant
|
|
225
|
-
- [ ] Testes de isolamento automatizados
|
|
226
|
-
- [ ] Provisioning automatizado
|
|
227
|
-
- [ ] Limites e quotas por plano
|
|
228
|
-
- [ ] Monitoramento por tenant
|
|
229
|
-
- [ ] Documentação de onboarding
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
## Referências
|
|
234
|
-
|
|
235
|
-
Consulte: [Guia de Multi-tenancy](../03-guias/Guia%20de%20Multi-tenancy.md)
|
|
1
|
+
# Prompt: Multi-tenancy
|
|
2
|
+
|
|
3
|
+
> **Prioridade**: 🟡 MÉDIA
|
|
4
|
+
> **Aplicável a**: SaaS, plataformas white-label, sistemas B2B
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Prompt Base: Projetar Multi-tenancy
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
Atue como arquiteto de software especialista em SaaS.
|
|
12
|
+
|
|
13
|
+
Preciso implementar multi-tenancy para:
|
|
14
|
+
- Tipo de produto: [ex. CRM SaaS, e-commerce white-label]
|
|
15
|
+
- Número esperado de tenants: [ex. 100 / 10.000 / 1M]
|
|
16
|
+
- Isolamento necessário: [ex. dados apenas / compliance rígido]
|
|
17
|
+
- Customização por tenant: [ex. branding / features / workflows]
|
|
18
|
+
|
|
19
|
+
Constraints:
|
|
20
|
+
- Stack: [DESCREVA]
|
|
21
|
+
- Orçamento de infra: [DESCREVA]
|
|
22
|
+
- Time: [DESCREVA]
|
|
23
|
+
|
|
24
|
+
Projete:
|
|
25
|
+
|
|
26
|
+
1. **Modelo de Isolamento**
|
|
27
|
+
- Database per tenant, schema per tenant, ou row-level?
|
|
28
|
+
- Justificativa para o contexto
|
|
29
|
+
- Estratégia para tenants com necessidades especiais
|
|
30
|
+
|
|
31
|
+
2. **Identificação de Tenant**
|
|
32
|
+
- Como identificar o tenant em cada request
|
|
33
|
+
- Subdomain, header, JWT, ou combinação
|
|
34
|
+
- Fallback se não identificado
|
|
35
|
+
|
|
36
|
+
3. **Implementação de Dados**
|
|
37
|
+
- Schema das tabelas (com tenant_id)
|
|
38
|
+
- Middleware/interceptor para filtrar
|
|
39
|
+
- Como garantir que queries não vazem dados
|
|
40
|
+
|
|
41
|
+
4. **Customização**
|
|
42
|
+
- Configurações por tenant
|
|
43
|
+
- Feature flags por plano
|
|
44
|
+
- Branding (logo, cores)
|
|
45
|
+
|
|
46
|
+
5. **Operacional**
|
|
47
|
+
- Provisioning de novo tenant
|
|
48
|
+
- Migrations multi-tenant
|
|
49
|
+
- Backup/restore por tenant
|
|
50
|
+
- Monitoramento por tenant
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Prompt: Migrar para Multi-tenant
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
Tenho um sistema single-tenant que precisa virar multi-tenant:
|
|
59
|
+
[DESCREVA ESTRUTURA ATUAL]
|
|
60
|
+
|
|
61
|
+
Requisitos:
|
|
62
|
+
- Manter dados do tenant atual
|
|
63
|
+
- Adicionar suporte a novos tenants
|
|
64
|
+
- Mínimo de breaking changes
|
|
65
|
+
- Timeline: [PRAZO]
|
|
66
|
+
|
|
67
|
+
Gere um plano de migração com:
|
|
68
|
+
1. Alterações de schema (adicionar tenant_id)
|
|
69
|
+
2. Migrations de dados existentes
|
|
70
|
+
3. Mudanças de código (queries, middlewares)
|
|
71
|
+
4. Testes de validação
|
|
72
|
+
5. Rollout gradual
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Prompt: Implementar Row-Level Security
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
Preciso implementar isolamento por row-level security.
|
|
81
|
+
|
|
82
|
+
Stack: [ex. PostgreSQL + Prisma + Node.js]
|
|
83
|
+
|
|
84
|
+
Tabelas principais:
|
|
85
|
+
[LISTE TABELAS]
|
|
86
|
+
|
|
87
|
+
Gere:
|
|
88
|
+
1. Migrations para adicionar tenant_id
|
|
89
|
+
2. Policies RLS no PostgreSQL
|
|
90
|
+
3. Middleware para setar current_tenant
|
|
91
|
+
4. Repository base com tenant scope
|
|
92
|
+
5. Testes de isolamento
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Prompt: Tenant Provisioning
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
Preciso automatizar o onboarding de novos tenants.
|
|
101
|
+
|
|
102
|
+
Quando um novo tenant é criado, preciso:
|
|
103
|
+
- [ex. Criar registro no banco]
|
|
104
|
+
- [ex. Configurar subdomain no DNS]
|
|
105
|
+
- [ex. Criar usuário admin]
|
|
106
|
+
- [ex. Popular dados iniciais]
|
|
107
|
+
- [ex. Enviar email de boas-vindas]
|
|
108
|
+
|
|
109
|
+
Stack: [DESCREVA]
|
|
110
|
+
|
|
111
|
+
Gere:
|
|
112
|
+
1. Endpoint/workflow de provisioning
|
|
113
|
+
2. Jobs assíncronos necessários
|
|
114
|
+
3. Rollback se algum step falhar
|
|
115
|
+
4. Notificações de progresso
|
|
116
|
+
5. Documentação do processo
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Prompt: Limites e Quotas por Tenant
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
Preciso implementar limites por plano:
|
|
125
|
+
|
|
126
|
+
| Recurso | Free | Pro | Enterprise |
|
|
127
|
+
|---------|------|-----|------------|
|
|
128
|
+
| Usuários | 5 | 50 | Ilimitado |
|
|
129
|
+
| Storage | 1GB | 10GB | 100GB |
|
|
130
|
+
| API calls/dia | 1000 | 10000 | Ilimitado |
|
|
131
|
+
| Features | [X,Y] | [X,Y,Z] | Todas |
|
|
132
|
+
|
|
133
|
+
Stack: [DESCREVA]
|
|
134
|
+
|
|
135
|
+
Gere:
|
|
136
|
+
1. Schema para quotas e usage tracking
|
|
137
|
+
2. Service para verificar limites
|
|
138
|
+
3. Middleware para bloquear quando excede
|
|
139
|
+
4. Dashboard de usage para tenant admin
|
|
140
|
+
5. Alerts quando próximo do limite
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Exemplo: Tenant Context Completo
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
// src/tenancy/TenantContext.ts
|
|
149
|
+
import { AsyncLocalStorage } from 'async_hooks';
|
|
150
|
+
import { PrismaClient } from '@prisma/client';
|
|
151
|
+
|
|
152
|
+
interface TenantContext {
|
|
153
|
+
tenantId: string;
|
|
154
|
+
config: TenantConfig;
|
|
155
|
+
user?: User;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface TenantConfig {
|
|
159
|
+
id: string;
|
|
160
|
+
subdomain: string;
|
|
161
|
+
plan: 'free' | 'pro' | 'enterprise';
|
|
162
|
+
quotas: {
|
|
163
|
+
maxUsers: number;
|
|
164
|
+
maxStorage: number;
|
|
165
|
+
maxApiCalls: number;
|
|
166
|
+
};
|
|
167
|
+
features: string[];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const storage = new AsyncLocalStorage<TenantContext>();
|
|
171
|
+
|
|
172
|
+
// Middleware
|
|
173
|
+
export async function tenantMiddleware(req, res, next) {
|
|
174
|
+
const tenantId = extractTenantIdFromRequest(req);
|
|
175
|
+
|
|
176
|
+
if (!tenantId) {
|
|
177
|
+
return res.status(400).json({ error: 'Tenant not found' });
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const config = await loadTenantConfig(tenantId);
|
|
181
|
+
|
|
182
|
+
storage.run({ tenantId, config }, next);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Getters
|
|
186
|
+
export function getTenant(): TenantContext {
|
|
187
|
+
const ctx = storage.getStore();
|
|
188
|
+
if (!ctx) throw new Error('No tenant context');
|
|
189
|
+
return ctx;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export function getTenantId(): string {
|
|
193
|
+
return getTenant().tenantId;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export function hasFeature(feature: string): boolean {
|
|
197
|
+
return getTenant().config.features.includes(feature);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Prisma extension para injetar tenant automaticamente
|
|
201
|
+
export const prisma = new PrismaClient().$extends({
|
|
202
|
+
query: {
|
|
203
|
+
$allModels: {
|
|
204
|
+
async findMany({ args, query }) {
|
|
205
|
+
args.where = { ...args.where, tenantId: getTenantId() };
|
|
206
|
+
return query(args);
|
|
207
|
+
},
|
|
208
|
+
async create({ args, query }) {
|
|
209
|
+
args.data = { ...args.data, tenantId: getTenantId() };
|
|
210
|
+
return query(args);
|
|
211
|
+
},
|
|
212
|
+
// ... outras operações
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Checklist
|
|
221
|
+
|
|
222
|
+
- [ ] Modelo de isolamento definido
|
|
223
|
+
- [ ] Identificação de tenant implementada
|
|
224
|
+
- [ ] Todas as queries filtram por tenant
|
|
225
|
+
- [ ] Testes de isolamento automatizados
|
|
226
|
+
- [ ] Provisioning automatizado
|
|
227
|
+
- [ ] Limites e quotas por plano
|
|
228
|
+
- [ ] Monitoramento por tenant
|
|
229
|
+
- [ ] Documentação de onboarding
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Referências
|
|
234
|
+
|
|
235
|
+
Consulte: [Guia de Multi-tenancy](../03-guias/Guia%20de%20Multi-tenancy.md)
|