@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,271 +1,271 @@
|
|
|
1
|
-
# Prompt: Gerar Serviço de Aplicação
|
|
2
|
-
|
|
3
|
-
> **Quando usar**: Durante implementação, para gerar services/use cases
|
|
4
|
-
> **Especialista**: [Desenvolvimento Backend](../../02-especialistas/Especialista%20em%20Desenvolvimento%20e%20Vibe%20Coding%20Estruturado.md)
|
|
5
|
-
> **Nível**: Médio
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Fluxo de Contexto
|
|
10
|
-
|
|
11
|
-
Antes de usar este prompt, tenha em mãos:
|
|
12
|
-
- `docs/CONTEXTO.md` - Entendimento atual do projeto
|
|
13
|
-
- `docs/05-arquitetura/arquitetura.md` - Arquitetura definida
|
|
14
|
-
- `docs/04-modelo/modelo-dominio.md` - Entidades e regras
|
|
15
|
-
|
|
16
|
-
Após gerar, salve o código em:
|
|
17
|
-
- `src/application/services/` ou equivalente na sua estrutura
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Prompt Completo
|
|
22
|
-
|
|
23
|
-
```text
|
|
24
|
-
Atue como desenvolvedor sênior especializado em Clean Architecture.
|
|
25
|
-
|
|
26
|
-
## Contexto do Projeto
|
|
27
|
-
|
|
28
|
-
[COLE O CONTEÚDO DE docs/CONTEXTO.md]
|
|
29
|
-
|
|
30
|
-
## Arquitetura
|
|
31
|
-
|
|
32
|
-
[COLE RESUMO DA ARQUITETURA - Padrão usado, camadas]
|
|
33
|
-
|
|
34
|
-
## Entidade Alvo
|
|
35
|
-
|
|
36
|
-
Nome: [NOME DA ENTIDADE]
|
|
37
|
-
Campos: [LISTE OS CAMPOS]
|
|
38
|
-
|
|
39
|
-
## Regras de Negócio
|
|
40
|
-
|
|
41
|
-
[DESCREVA AS VALIDAÇÕES E REGRAS]
|
|
42
|
-
|
|
43
|
-
## Stack
|
|
44
|
-
|
|
45
|
-
Linguagem: [TypeScript/Python/Java/Go/etc]
|
|
46
|
-
Framework: [NestJS/FastAPI/Spring/etc]
|
|
47
|
-
ORM/Database: [Prisma/TypeORM/SQLAlchemy/etc]
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Sua Missão
|
|
52
|
-
|
|
53
|
-
Gere o código do serviço/classe de aplicação com:
|
|
54
|
-
|
|
55
|
-
### 1. Estrutura do Serviço
|
|
56
|
-
- Injeção de dependências (Repository, outros Services)
|
|
57
|
-
- Tipagem correta de DTOs de entrada e saída
|
|
58
|
-
|
|
59
|
-
### 2. Métodos Principais
|
|
60
|
-
Para cada operação CRUD + regras específicas:
|
|
61
|
-
- Assinatura com tipos
|
|
62
|
-
- Documentação JSDoc/Docstring
|
|
63
|
-
- Lógica do happy path
|
|
64
|
-
- Tratamento de erros com exceções específicas
|
|
65
|
-
- Validações de negócio
|
|
66
|
-
|
|
67
|
-
### 3. Padrões a Seguir
|
|
68
|
-
- Separação entre Application Service e Domain Service (se aplicável)
|
|
69
|
-
- DTOs para entrada/saída (nunca expor entidade diretamente)
|
|
70
|
-
- Repository interface (não implementação)
|
|
71
|
-
- Unit of Work pattern para transações (se aplicável)
|
|
72
|
-
|
|
73
|
-
### 4. Não Gere
|
|
74
|
-
- Controllers/Rotas
|
|
75
|
-
- Implementação de Repository
|
|
76
|
-
- Migrations
|
|
77
|
-
- Configurações de framework
|
|
78
|
-
|
|
79
|
-
### 5. Formato
|
|
80
|
-
Retorne código pronto para uso com:
|
|
81
|
-
- Imports necessários
|
|
82
|
-
- Types/Interfaces auxiliares
|
|
83
|
-
- Comentários explicando decisões
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Exemplo de Uso
|
|
89
|
-
|
|
90
|
-
```text
|
|
91
|
-
Atue como desenvolvedor sênior especializado em Clean Architecture.
|
|
92
|
-
|
|
93
|
-
## Contexto do Projeto
|
|
94
|
-
|
|
95
|
-
Sistema de agendamento para salões de beleza.
|
|
96
|
-
|
|
97
|
-
## Arquitetura
|
|
98
|
-
|
|
99
|
-
Clean Architecture com camadas: Domain, Application, Infrastructure, Interface.
|
|
100
|
-
Services na camada Application orquestram casos de uso.
|
|
101
|
-
|
|
102
|
-
## Entidade Alvo
|
|
103
|
-
|
|
104
|
-
Nome: Agendamento
|
|
105
|
-
Campos:
|
|
106
|
-
- id: UUID
|
|
107
|
-
- clienteId: UUID
|
|
108
|
-
- servicoId: UUID
|
|
109
|
-
- dataHora: DateTime
|
|
110
|
-
- status: enum (PENDENTE, CONFIRMADO, CANCELADO, CONCLUIDO)
|
|
111
|
-
|
|
112
|
-
## Regras de Negócio
|
|
113
|
-
|
|
114
|
-
1. Não pode agendar no passado
|
|
115
|
-
2. Não pode haver conflito de horário para o mesmo prestador
|
|
116
|
-
3. Cancelamento só até 2h antes
|
|
117
|
-
4. Após criar, enviar notificação ao cliente
|
|
118
|
-
|
|
119
|
-
## Stack
|
|
120
|
-
|
|
121
|
-
Linguagem: TypeScript
|
|
122
|
-
Framework: NestJS
|
|
123
|
-
ORM: Prisma
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Resposta Esperada
|
|
129
|
-
|
|
130
|
-
```typescript
|
|
131
|
-
import { Injectable, ConflictException, BadRequestException } from '@nestjs/common';
|
|
132
|
-
import { AgendamentoRepository } from '../ports/agendamento.repository';
|
|
133
|
-
import { NotificacaoService } from './notificacao.service';
|
|
134
|
-
import { CriarAgendamentoDto, AgendamentoResponseDto } from '../dtos/agendamento.dto';
|
|
135
|
-
import { StatusAgendamento } from '../../domain/enums/status-agendamento.enum';
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Service responsável por orquestrar casos de uso de Agendamento.
|
|
139
|
-
* Não contém regras de domínio, apenas coordena operações.
|
|
140
|
-
*/
|
|
141
|
-
@Injectable()
|
|
142
|
-
export class AgendamentoService {
|
|
143
|
-
constructor(
|
|
144
|
-
private readonly agendamentoRepository: AgendamentoRepository,
|
|
145
|
-
private readonly notificacaoService: NotificacaoService,
|
|
146
|
-
) {}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Cria um novo agendamento validando regras de negócio.
|
|
150
|
-
* @throws BadRequestException - Data no passado
|
|
151
|
-
* @throws ConflictException - Horário já ocupado
|
|
152
|
-
*/
|
|
153
|
-
async criar(dto: CriarAgendamentoDto): Promise<AgendamentoResponseDto> {
|
|
154
|
-
// Validar: não pode ser no passado
|
|
155
|
-
if (dto.dataHora < new Date()) {
|
|
156
|
-
throw new BadRequestException('Não é possível agendar no passado');
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Validar: horário disponível
|
|
160
|
-
const conflito = await this.agendamentoRepository.findByHorarioEPrestador(
|
|
161
|
-
dto.dataHora,
|
|
162
|
-
dto.prestadorId,
|
|
163
|
-
);
|
|
164
|
-
if (conflito) {
|
|
165
|
-
throw new ConflictException('Horário já ocupado para este prestador');
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Criar agendamento
|
|
169
|
-
const agendamento = await this.agendamentoRepository.create({
|
|
170
|
-
...dto,
|
|
171
|
-
status: StatusAgendamento.PENDENTE,
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
// Side effect: notificar cliente
|
|
175
|
-
await this.notificacaoService.enviarConfirmacaoAgendamento(agendamento);
|
|
176
|
-
|
|
177
|
-
return AgendamentoResponseDto.fromEntity(agendamento);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Cancela um agendamento respeitando a regra de 2h.
|
|
182
|
-
* @throws BadRequestException - Menos de 2h para o horário
|
|
183
|
-
*/
|
|
184
|
-
async cancelar(id: string, motivo: string): Promise<void> {
|
|
185
|
-
const agendamento = await this.agendamentoRepository.findById(id);
|
|
186
|
-
|
|
187
|
-
// Validar: limite de 2h
|
|
188
|
-
const duasHorasAntes = new Date(agendamento.dataHora);
|
|
189
|
-
duasHorasAntes.setHours(duasHorasAntes.getHours() - 2);
|
|
190
|
-
|
|
191
|
-
if (new Date() > duasHorasAntes) {
|
|
192
|
-
throw new BadRequestException(
|
|
193
|
-
'Cancelamento só é permitido até 2 horas antes do horário',
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
await this.agendamentoRepository.updateStatus(id, StatusAgendamento.CANCELADO);
|
|
198
|
-
await this.notificacaoService.enviarCancelamento(agendamento, motivo);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## Variações por Stack
|
|
206
|
-
|
|
207
|
-
### Python + FastAPI
|
|
208
|
-
|
|
209
|
-
```python
|
|
210
|
-
from fastapi import HTTPException, status
|
|
211
|
-
from app.repositories.agendamento_repository import AgendamentoRepository
|
|
212
|
-
from app.services.notificacao_service import NotificacaoService
|
|
213
|
-
from app.schemas.agendamento import CriarAgendamentoDto, AgendamentoResponse
|
|
214
|
-
|
|
215
|
-
class AgendamentoService:
|
|
216
|
-
def __init__(
|
|
217
|
-
self,
|
|
218
|
-
repository: AgendamentoRepository,
|
|
219
|
-
notificacao: NotificacaoService,
|
|
220
|
-
):
|
|
221
|
-
self._repository = repository
|
|
222
|
-
self._notificacao = notificacao
|
|
223
|
-
|
|
224
|
-
async def criar(self, dto: CriarAgendamentoDto) -> AgendamentoResponse:
|
|
225
|
-
if dto.data_hora < datetime.now():
|
|
226
|
-
raise HTTPException(
|
|
227
|
-
status_code=status.HTTP_400_BAD_REQUEST,
|
|
228
|
-
detail="Não é possível agendar no passado"
|
|
229
|
-
)
|
|
230
|
-
# ... resto da lógica
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Java + Spring
|
|
234
|
-
|
|
235
|
-
```java
|
|
236
|
-
@Service
|
|
237
|
-
@Transactional
|
|
238
|
-
public class AgendamentoService {
|
|
239
|
-
|
|
240
|
-
private final AgendamentoRepository repository;
|
|
241
|
-
private final NotificacaoService notificacao;
|
|
242
|
-
|
|
243
|
-
public AgendamentoService(
|
|
244
|
-
AgendamentoRepository repository,
|
|
245
|
-
NotificacaoService notificacao
|
|
246
|
-
) {
|
|
247
|
-
this.repository = repository;
|
|
248
|
-
this.notificacao = notificacao;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
public AgendamentoResponse criar(CriarAgendamentoDto dto) {
|
|
252
|
-
if (dto.getDataHora().isBefore(LocalDateTime.now())) {
|
|
253
|
-
throw new BadRequestException("Não é possível agendar no passado");
|
|
254
|
-
}
|
|
255
|
-
// ... resto da lógica
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
## Checklist Pós-Geração
|
|
263
|
-
|
|
264
|
-
- [ ] Service não contém lógica de domínio complexa (mover para Domain Service se necessário)
|
|
265
|
-
- [ ] Todas as dependências são injetadas (não há `new` de repositórios)
|
|
266
|
-
- [ ] DTOs separados para entrada e saída
|
|
267
|
-
- [ ] Exceções são específicas (não genéricas)
|
|
268
|
-
- [ ] Validações de negócio estão presentes
|
|
269
|
-
- [ ] Side effects (notificações, eventos) estão isolados
|
|
270
|
-
- [ ] Código está tipado corretamente
|
|
271
|
-
- [ ] Comentários explicam o "porquê", não o "como"
|
|
1
|
+
# Prompt: Gerar Serviço de Aplicação
|
|
2
|
+
|
|
3
|
+
> **Quando usar**: Durante implementação, para gerar services/use cases
|
|
4
|
+
> **Especialista**: [Desenvolvimento Backend](../../02-especialistas/Especialista%20em%20Desenvolvimento%20e%20Vibe%20Coding%20Estruturado.md)
|
|
5
|
+
> **Nível**: Médio
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Fluxo de Contexto
|
|
10
|
+
|
|
11
|
+
Antes de usar este prompt, tenha em mãos:
|
|
12
|
+
- `docs/CONTEXTO.md` - Entendimento atual do projeto
|
|
13
|
+
- `docs/05-arquitetura/arquitetura.md` - Arquitetura definida
|
|
14
|
+
- `docs/04-modelo/modelo-dominio.md` - Entidades e regras
|
|
15
|
+
|
|
16
|
+
Após gerar, salve o código em:
|
|
17
|
+
- `src/application/services/` ou equivalente na sua estrutura
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Prompt Completo
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Atue como desenvolvedor sênior especializado em Clean Architecture.
|
|
25
|
+
|
|
26
|
+
## Contexto do Projeto
|
|
27
|
+
|
|
28
|
+
[COLE O CONTEÚDO DE docs/CONTEXTO.md]
|
|
29
|
+
|
|
30
|
+
## Arquitetura
|
|
31
|
+
|
|
32
|
+
[COLE RESUMO DA ARQUITETURA - Padrão usado, camadas]
|
|
33
|
+
|
|
34
|
+
## Entidade Alvo
|
|
35
|
+
|
|
36
|
+
Nome: [NOME DA ENTIDADE]
|
|
37
|
+
Campos: [LISTE OS CAMPOS]
|
|
38
|
+
|
|
39
|
+
## Regras de Negócio
|
|
40
|
+
|
|
41
|
+
[DESCREVA AS VALIDAÇÕES E REGRAS]
|
|
42
|
+
|
|
43
|
+
## Stack
|
|
44
|
+
|
|
45
|
+
Linguagem: [TypeScript/Python/Java/Go/etc]
|
|
46
|
+
Framework: [NestJS/FastAPI/Spring/etc]
|
|
47
|
+
ORM/Database: [Prisma/TypeORM/SQLAlchemy/etc]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Sua Missão
|
|
52
|
+
|
|
53
|
+
Gere o código do serviço/classe de aplicação com:
|
|
54
|
+
|
|
55
|
+
### 1. Estrutura do Serviço
|
|
56
|
+
- Injeção de dependências (Repository, outros Services)
|
|
57
|
+
- Tipagem correta de DTOs de entrada e saída
|
|
58
|
+
|
|
59
|
+
### 2. Métodos Principais
|
|
60
|
+
Para cada operação CRUD + regras específicas:
|
|
61
|
+
- Assinatura com tipos
|
|
62
|
+
- Documentação JSDoc/Docstring
|
|
63
|
+
- Lógica do happy path
|
|
64
|
+
- Tratamento de erros com exceções específicas
|
|
65
|
+
- Validações de negócio
|
|
66
|
+
|
|
67
|
+
### 3. Padrões a Seguir
|
|
68
|
+
- Separação entre Application Service e Domain Service (se aplicável)
|
|
69
|
+
- DTOs para entrada/saída (nunca expor entidade diretamente)
|
|
70
|
+
- Repository interface (não implementação)
|
|
71
|
+
- Unit of Work pattern para transações (se aplicável)
|
|
72
|
+
|
|
73
|
+
### 4. Não Gere
|
|
74
|
+
- Controllers/Rotas
|
|
75
|
+
- Implementação de Repository
|
|
76
|
+
- Migrations
|
|
77
|
+
- Configurações de framework
|
|
78
|
+
|
|
79
|
+
### 5. Formato
|
|
80
|
+
Retorne código pronto para uso com:
|
|
81
|
+
- Imports necessários
|
|
82
|
+
- Types/Interfaces auxiliares
|
|
83
|
+
- Comentários explicando decisões
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Exemplo de Uso
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
Atue como desenvolvedor sênior especializado em Clean Architecture.
|
|
92
|
+
|
|
93
|
+
## Contexto do Projeto
|
|
94
|
+
|
|
95
|
+
Sistema de agendamento para salões de beleza.
|
|
96
|
+
|
|
97
|
+
## Arquitetura
|
|
98
|
+
|
|
99
|
+
Clean Architecture com camadas: Domain, Application, Infrastructure, Interface.
|
|
100
|
+
Services na camada Application orquestram casos de uso.
|
|
101
|
+
|
|
102
|
+
## Entidade Alvo
|
|
103
|
+
|
|
104
|
+
Nome: Agendamento
|
|
105
|
+
Campos:
|
|
106
|
+
- id: UUID
|
|
107
|
+
- clienteId: UUID
|
|
108
|
+
- servicoId: UUID
|
|
109
|
+
- dataHora: DateTime
|
|
110
|
+
- status: enum (PENDENTE, CONFIRMADO, CANCELADO, CONCLUIDO)
|
|
111
|
+
|
|
112
|
+
## Regras de Negócio
|
|
113
|
+
|
|
114
|
+
1. Não pode agendar no passado
|
|
115
|
+
2. Não pode haver conflito de horário para o mesmo prestador
|
|
116
|
+
3. Cancelamento só até 2h antes
|
|
117
|
+
4. Após criar, enviar notificação ao cliente
|
|
118
|
+
|
|
119
|
+
## Stack
|
|
120
|
+
|
|
121
|
+
Linguagem: TypeScript
|
|
122
|
+
Framework: NestJS
|
|
123
|
+
ORM: Prisma
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Resposta Esperada
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
import { Injectable, ConflictException, BadRequestException } from '@nestjs/common';
|
|
132
|
+
import { AgendamentoRepository } from '../ports/agendamento.repository';
|
|
133
|
+
import { NotificacaoService } from './notificacao.service';
|
|
134
|
+
import { CriarAgendamentoDto, AgendamentoResponseDto } from '../dtos/agendamento.dto';
|
|
135
|
+
import { StatusAgendamento } from '../../domain/enums/status-agendamento.enum';
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Service responsável por orquestrar casos de uso de Agendamento.
|
|
139
|
+
* Não contém regras de domínio, apenas coordena operações.
|
|
140
|
+
*/
|
|
141
|
+
@Injectable()
|
|
142
|
+
export class AgendamentoService {
|
|
143
|
+
constructor(
|
|
144
|
+
private readonly agendamentoRepository: AgendamentoRepository,
|
|
145
|
+
private readonly notificacaoService: NotificacaoService,
|
|
146
|
+
) {}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Cria um novo agendamento validando regras de negócio.
|
|
150
|
+
* @throws BadRequestException - Data no passado
|
|
151
|
+
* @throws ConflictException - Horário já ocupado
|
|
152
|
+
*/
|
|
153
|
+
async criar(dto: CriarAgendamentoDto): Promise<AgendamentoResponseDto> {
|
|
154
|
+
// Validar: não pode ser no passado
|
|
155
|
+
if (dto.dataHora < new Date()) {
|
|
156
|
+
throw new BadRequestException('Não é possível agendar no passado');
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Validar: horário disponível
|
|
160
|
+
const conflito = await this.agendamentoRepository.findByHorarioEPrestador(
|
|
161
|
+
dto.dataHora,
|
|
162
|
+
dto.prestadorId,
|
|
163
|
+
);
|
|
164
|
+
if (conflito) {
|
|
165
|
+
throw new ConflictException('Horário já ocupado para este prestador');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Criar agendamento
|
|
169
|
+
const agendamento = await this.agendamentoRepository.create({
|
|
170
|
+
...dto,
|
|
171
|
+
status: StatusAgendamento.PENDENTE,
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// Side effect: notificar cliente
|
|
175
|
+
await this.notificacaoService.enviarConfirmacaoAgendamento(agendamento);
|
|
176
|
+
|
|
177
|
+
return AgendamentoResponseDto.fromEntity(agendamento);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Cancela um agendamento respeitando a regra de 2h.
|
|
182
|
+
* @throws BadRequestException - Menos de 2h para o horário
|
|
183
|
+
*/
|
|
184
|
+
async cancelar(id: string, motivo: string): Promise<void> {
|
|
185
|
+
const agendamento = await this.agendamentoRepository.findById(id);
|
|
186
|
+
|
|
187
|
+
// Validar: limite de 2h
|
|
188
|
+
const duasHorasAntes = new Date(agendamento.dataHora);
|
|
189
|
+
duasHorasAntes.setHours(duasHorasAntes.getHours() - 2);
|
|
190
|
+
|
|
191
|
+
if (new Date() > duasHorasAntes) {
|
|
192
|
+
throw new BadRequestException(
|
|
193
|
+
'Cancelamento só é permitido até 2 horas antes do horário',
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
await this.agendamentoRepository.updateStatus(id, StatusAgendamento.CANCELADO);
|
|
198
|
+
await this.notificacaoService.enviarCancelamento(agendamento, motivo);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Variações por Stack
|
|
206
|
+
|
|
207
|
+
### Python + FastAPI
|
|
208
|
+
|
|
209
|
+
```python
|
|
210
|
+
from fastapi import HTTPException, status
|
|
211
|
+
from app.repositories.agendamento_repository import AgendamentoRepository
|
|
212
|
+
from app.services.notificacao_service import NotificacaoService
|
|
213
|
+
from app.schemas.agendamento import CriarAgendamentoDto, AgendamentoResponse
|
|
214
|
+
|
|
215
|
+
class AgendamentoService:
|
|
216
|
+
def __init__(
|
|
217
|
+
self,
|
|
218
|
+
repository: AgendamentoRepository,
|
|
219
|
+
notificacao: NotificacaoService,
|
|
220
|
+
):
|
|
221
|
+
self._repository = repository
|
|
222
|
+
self._notificacao = notificacao
|
|
223
|
+
|
|
224
|
+
async def criar(self, dto: CriarAgendamentoDto) -> AgendamentoResponse:
|
|
225
|
+
if dto.data_hora < datetime.now():
|
|
226
|
+
raise HTTPException(
|
|
227
|
+
status_code=status.HTTP_400_BAD_REQUEST,
|
|
228
|
+
detail="Não é possível agendar no passado"
|
|
229
|
+
)
|
|
230
|
+
# ... resto da lógica
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Java + Spring
|
|
234
|
+
|
|
235
|
+
```java
|
|
236
|
+
@Service
|
|
237
|
+
@Transactional
|
|
238
|
+
public class AgendamentoService {
|
|
239
|
+
|
|
240
|
+
private final AgendamentoRepository repository;
|
|
241
|
+
private final NotificacaoService notificacao;
|
|
242
|
+
|
|
243
|
+
public AgendamentoService(
|
|
244
|
+
AgendamentoRepository repository,
|
|
245
|
+
NotificacaoService notificacao
|
|
246
|
+
) {
|
|
247
|
+
this.repository = repository;
|
|
248
|
+
this.notificacao = notificacao;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
public AgendamentoResponse criar(CriarAgendamentoDto dto) {
|
|
252
|
+
if (dto.getDataHora().isBefore(LocalDateTime.now())) {
|
|
253
|
+
throw new BadRequestException("Não é possível agendar no passado");
|
|
254
|
+
}
|
|
255
|
+
// ... resto da lógica
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Checklist Pós-Geração
|
|
263
|
+
|
|
264
|
+
- [ ] Service não contém lógica de domínio complexa (mover para Domain Service se necessário)
|
|
265
|
+
- [ ] Todas as dependências são injetadas (não há `new` de repositórios)
|
|
266
|
+
- [ ] DTOs separados para entrada e saída
|
|
267
|
+
- [ ] Exceções são específicas (não genéricas)
|
|
268
|
+
- [ ] Validações de negócio estão presentes
|
|
269
|
+
- [ ] Side effects (notificações, eventos) estão isolados
|
|
270
|
+
- [ ] Código está tipado corretamente
|
|
271
|
+
- [ ] Comentários explicam o "porquê", não o "como"
|