@maestro-ai/mcp-server 1.2.0 → 2.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 +26 -31
- package/dist/content/rules/GEMINI.md +79 -27
- package/dist/content/rules/RULES.md +6 -0
- package/dist/content/skills/specialist-acessibilidade/MCP_INTEGRATION.md +698 -0
- package/dist/content/skills/specialist-acessibilidade/README.md +292 -0
- package/dist/content/skills/specialist-acessibilidade/SKILL.md +202 -0
- package/dist/content/skills/specialist-acessibilidade/mcp_functions/init_accessibility_audit.py +675 -0
- package/dist/content/skills/specialist-acessibilidade/mcp_functions/validate_wcag_compliance.py +587 -0
- package/dist/content/skills/specialist-acessibilidade/resources/checklists/accessibility-validation.md +457 -0
- package/dist/content/skills/specialist-acessibilidade/resources/examples/accessibility-examples.md +863 -0
- package/dist/content/skills/specialist-acessibilidade/resources/reference/wcag-guide.md +359 -0
- package/dist/content/skills/specialist-acessibilidade/resources/templates/checklist-acessibilidade.md +435 -0
- package/dist/content/skills/specialist-acessibilidade/resources/templates/relatorio-acessibilidade.md +490 -0
- package/dist/content/skills/specialist-analise-testes/MCP_INTEGRATION.md +569 -0
- package/dist/content/skills/specialist-analise-testes/README.md +42 -0
- package/dist/content/skills/specialist-analise-testes/SKILL.md +258 -0
- package/dist/content/skills/specialist-analise-testes/mcp_functions/README.md +794 -0
- package/dist/content/skills/specialist-analise-testes/resources/checklists/testing-validation.md +305 -0
- package/dist/content/skills/specialist-analise-testes/resources/examples/testing-examples.md +395 -0
- package/dist/content/skills/specialist-analise-testes/resources/reference/testing-guide.md +1024 -0
- package/dist/content/skills/specialist-arquitetura-avancada/MCP_INTEGRATION.md +440 -0
- package/dist/content/skills/specialist-arquitetura-avancada/README.md +298 -0
- package/dist/content/skills/specialist-arquitetura-avancada/SKILL.md +295 -0
- package/dist/content/skills/specialist-arquitetura-avancada/mcp_functions/README.md +573 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/checklists/architecture-validation.md +385 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/examples/architecture-examples.md +743 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/reference/architecture-guide.md +680 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/bounded-context.md +333 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/cqrs-implementation.md +495 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/event-sourcing.md +571 -0
- package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/microservices-strategy.md +647 -0
- package/dist/content/skills/specialist-arquitetura-software/MCP_INTEGRATION.md +483 -0
- package/dist/content/skills/specialist-arquitetura-software/README.md +306 -0
- package/dist/content/skills/specialist-arquitetura-software/SKILL.md +194 -0
- package/dist/content/skills/specialist-arquitetura-software/mcp_functions/init_architecture.py +137 -0
- package/dist/content/skills/specialist-arquitetura-software/mcp_functions/process_architecture.py +279 -0
- package/dist/content/skills/specialist-arquitetura-software/mcp_functions/validate_architecture.py +302 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/checklists/architecture-validation.md +180 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/examples/architecture-examples.md +239 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/reference/architecture-guide.md +489 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/templates/adr.md +61 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/templates/arquitetura.md +192 -0
- package/dist/content/skills/specialist-arquitetura-software/resources/templates/slo-sli.md +153 -0
- package/dist/content/skills/specialist-banco-dados/MCP_INTEGRATION.md +390 -0
- package/dist/content/skills/specialist-banco-dados/README.md +323 -0
- package/dist/content/skills/specialist-banco-dados/SKILL.md +221 -0
- package/dist/content/skills/specialist-banco-dados/mcp_functions/init_database.py +720 -0
- package/dist/content/skills/specialist-banco-dados/mcp_functions/process_database.py +386 -0
- package/dist/content/skills/specialist-banco-dados/mcp_functions/validate_database.py +551 -0
- package/dist/content/skills/specialist-banco-dados/resources/checklists/database-validation.md +434 -0
- package/dist/content/skills/specialist-banco-dados/resources/examples/database-examples.md +857 -0
- package/dist/content/skills/specialist-banco-dados/resources/reference/database-guide.md +708 -0
- package/dist/content/skills/specialist-banco-dados/resources/templates/constraints.md +935 -0
- package/dist/content/skills/specialist-banco-dados/resources/templates/design-banco.md +509 -0
- package/dist/content/skills/specialist-banco-dados/resources/templates/indices.md +553 -0
- package/dist/content/skills/specialist-banco-dados/resources/templates/migracoes.md +777 -0
- package/dist/content/skills/specialist-contrato-api/MCP_INTEGRATION.md +152 -0
- package/dist/content/skills/specialist-contrato-api/README.md +183 -0
- package/dist/content/skills/specialist-contrato-api/SKILL.md +317 -0
- package/dist/content/skills/specialist-contrato-api/mcp_functions/README.md +17 -0
- package/dist/content/skills/specialist-contrato-api/resources/checklists/api-validation.md +44 -0
- package/dist/content/skills/specialist-contrato-api/resources/examples/api-examples.md +137 -0
- package/dist/content/skills/specialist-contrato-api/resources/reference/api-guide.md +96 -0
- package/dist/content/skills/specialist-contrato-api/resources/templates/contrato-api.md +165 -0
- package/dist/content/skills/specialist-dados-analytics-ia/MCP_INTEGRATION.md +398 -0
- package/dist/content/skills/specialist-dados-analytics-ia/README.md +224 -0
- package/dist/content/skills/specialist-dados-analytics-ia/SKILL.md +160 -0
- package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/generate_insights_dashboard.py +669 -0
- package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/init_analytics_pipeline.py +626 -0
- package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/validate_analytics_quality.py +772 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/checklists/analytics-validation.md +519 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/examples/analytics-examples.md +646 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/reference/analytics-guide.md +1111 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/feature.md +419 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/requisitos.md +384 -0
- package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/slo-sli.md +381 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/MCP_INTEGRATION.md +340 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/README.md +218 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/SKILL.md +194 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/checklists/debugging-validation.md +319 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/examples/debugging-examples.md +480 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/prompts/analise-bugs.md +527 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/reference/debugging-guide.md +392 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/bug-report.md +192 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/post-mortem.md +241 -0
- package/dist/content/skills/specialist-debugging-troubleshooting/scripts/README.md +64 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/MCP_INTEGRATION.md +98 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/README.md +167 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/SKILL.md +288 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/mcp_functions/README.md +17 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/resources/checklists/backend-validation.md +44 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/resources/examples/backend-examples.md +109 -0
- package/dist/content/skills/specialist-desenvolvimento-backend/resources/reference/backend-guide.md +86 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/MCP_INTEGRATION.md +914 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/README.md +261 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/SKILL.md +220 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/init_frontend.py +861 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/process_frontend.py +1003 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/validate_frontend.py +766 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/checklists/frontend-validation.md +365 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/examples/frontend-examples.md +1125 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/reference/frontend-guide.md +1055 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/component-story.md +530 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/historia-frontend.md +243 -0
- package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/ui-guidelines.md +725 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/MCP_INTEGRATION.md +87 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/README.md +149 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/SKILL.md +360 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/mcp_functions/README.md +17 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/checklists/mobile-validation.md +330 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/examples/mobile-examples.md +966 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/android-guide.md +546 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/flutter-guide.md +500 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/ios-guide.md +518 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/mobile-guide.md +76 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/react-native-guide.md +659 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/historia-mobile.md +284 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/mobile-checklist.md +239 -0
- package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/platform-selection.md +302 -0
- package/dist/content/skills/specialist-devops-infra/MCP_INTEGRATION.md +471 -0
- package/dist/content/skills/specialist-devops-infra/README.md +234 -0
- package/dist/content/skills/specialist-devops-infra/SKILL.md +162 -0
- package/dist/content/skills/specialist-devops-infra/mcp_functions/generate_ci_cd_pipeline.py +870 -0
- package/dist/content/skills/specialist-devops-infra/mcp_functions/init_infrastructure_structure.py +704 -0
- package/dist/content/skills/specialist-devops-infra/mcp_functions/validate_infrastructure_quality.py +745 -0
- package/dist/content/skills/specialist-devops-infra/resources/checklists/devops-validation.md +427 -0
- package/dist/content/skills/specialist-devops-infra/resources/examples/devops-examples.md +652 -0
- package/dist/content/skills/specialist-devops-infra/resources/reference/devops-guide.md +1244 -0
- package/dist/content/skills/specialist-devops-infra/resources/templates/ci-cd-pipeline.yml +40 -0
- package/dist/content/skills/specialist-documentacao-tecnica/MCP_INTEGRATION.md +797 -0
- package/dist/content/skills/specialist-documentacao-tecnica/README.md +304 -0
- package/dist/content/skills/specialist-documentacao-tecnica/SKILL.md +202 -0
- package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/init_documentation_structure.py +733 -0
- package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/process_documentation_for_publishing.py +888 -0
- package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/validate_documentation_quality.py +775 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/checklists/documentation-validation.md +296 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/examples/documentation-examples.md +515 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/reference/documentation-guide.md +798 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/api-docs.md +619 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/design-doc.md +250 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/guia-tecnico.md +383 -0
- package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/readme-template.md +462 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/MCP_INTEGRATION.md +457 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/README.md +295 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/SKILL.md +214 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/init_requirements.py +152 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/process_requirements.py +445 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/validate_requirements.py +475 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/checklists/requirements-validation.md +258 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/examples/requirements-examples.md +316 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/reference/requirements-guide.md +651 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/criterios-aceite.md +484 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/matriz-rastreabilidade.md +246 -0
- package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/requisitos.md +244 -0
- package/dist/content/skills/specialist-exploracao-codebase/MCP_INTEGRATION.md +155 -0
- package/dist/content/skills/specialist-exploracao-codebase/README.md +320 -0
- package/dist/content/skills/specialist-exploracao-codebase/SKILL.md +194 -0
- package/dist/content/skills/specialist-exploracao-codebase/mcp_functions/README.md +39 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/checklists/exploration-validation.md +51 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/examples/exploration-examples.md +106 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/reference/exploration-guide.md +111 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/templates/codebase-map.md +129 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/templates/refactoring-plan.md +96 -0
- package/dist/content/skills/specialist-exploracao-codebase/resources/templates/technical-debt-report.md +69 -0
- package/dist/content/skills/specialist-gestao-produto/MCP_INTEGRATION.md +436 -0
- package/dist/content/skills/specialist-gestao-produto/README.md +202 -0
- package/dist/content/skills/specialist-gestao-produto/SKILL.md +174 -0
- package/dist/content/skills/specialist-gestao-produto/resources/checklists/prd-validation.md +165 -0
- package/dist/content/skills/specialist-gestao-produto/resources/examples/prd-examples.md +231 -0
- package/dist/content/skills/specialist-gestao-produto/resources/reference/product-guide.md +416 -0
- package/dist/content/skills/specialist-gestao-produto/resources/templates/PRD.md +212 -0
- package/dist/content/skills/specialist-gestao-produto/scripts/init_prd.py +170 -0
- package/dist/content/skills/specialist-gestao-produto/scripts/process_prd.py +388 -0
- package/dist/content/skills/specialist-gestao-produto/scripts/validate_prd.py +406 -0
- package/dist/content/skills/specialist-migracao-modernizacao/MCP_INTEGRATION.md +17 -0
- package/dist/content/skills/specialist-migracao-modernizacao/README.md +46 -0
- package/dist/content/skills/specialist-migracao-modernizacao/SKILL.md +485 -0
- package/dist/content/skills/specialist-migracao-modernizacao/mcp_functions/README.md +10 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/checklists/migration-validation.md +23 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/examples/migration-examples.md +30 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/reference/migration-guide.md +27 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/migration-assessment.md +391 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/modernization-roadmap.md +479 -0
- package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/risk-analysis.md +527 -0
- package/dist/content/skills/specialist-mobile-design-avancado/MCP_INTEGRATION.md +17 -0
- package/dist/content/skills/specialist-mobile-design-avancado/README.md +46 -0
- package/dist/content/skills/specialist-mobile-design-avancado/SKILL.md +567 -0
- package/dist/content/skills/specialist-mobile-design-avancado/mcp_functions/README.md +10 -0
- package/dist/content/skills/specialist-mobile-design-avancado/resources/checklists/design-validation.md +23 -0
- package/dist/content/skills/specialist-mobile-design-avancado/resources/examples/design-examples.md +46 -0
- package/dist/content/skills/specialist-mobile-design-avancado/resources/reference/design-guide.md +23 -0
- package/dist/content/skills/specialist-modelagem-dominio/MCP_INTEGRATION.md +336 -0
- package/dist/content/skills/specialist-modelagem-dominio/README.md +314 -0
- package/dist/content/skills/specialist-modelagem-dominio/SKILL.md +241 -0
- package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/init_domain.py +479 -0
- package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/process_domain.py +526 -0
- package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/validate_domain.py +569 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/checklists/domain-validation.md +341 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/examples/domain-examples.md +505 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-guide.md +601 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-modeling-complete-guide.md +1126 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/templates/arquitetura-c4.md +477 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/templates/casos-uso.md +395 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/templates/entidades-relacionamentos.md +368 -0
- package/dist/content/skills/specialist-modelagem-dominio/resources/templates/modelo-dominio.md +311 -0
- package/dist/content/skills/specialist-observabilidade/SKILL.md +462 -0
- package/dist/content/skills/specialist-performance-escalabilidade/SKILL.md +329 -0
- package/dist/content/skills/specialist-plano-execucao-ia/MCP_INTEGRATION.md +371 -0
- package/dist/content/skills/specialist-plano-execucao-ia/README.md +194 -0
- package/dist/content/skills/specialist-plano-execucao-ia/SKILL.md +271 -0
- package/dist/content/skills/specialist-plano-execucao-ia/mcp_functions/README.md +38 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/checklists/planning-validation.md +144 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/examples/planning-examples.md +203 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/reference/planning-guide.md +316 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/backlog.md +146 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-backend.md +157 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-frontend.md +116 -0
- package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-usuario.md +66 -0
- package/dist/content/skills/specialist-prototipagem-stitch/MCP_INTEGRATION.md +533 -0
- package/dist/content/skills/specialist-prototipagem-stitch/README.md +321 -0
- package/dist/content/skills/specialist-prototipagem-stitch/SKILL.md +194 -0
- package/dist/content/skills/specialist-prototipagem-stitch/mcp_functions/README.md +239 -0
- package/dist/content/skills/specialist-prototipagem-stitch/resources/checklists/stitch-validation.md +357 -0
- package/dist/content/skills/specialist-prototipagem-stitch/resources/examples/stitch-examples.md +372 -0
- package/dist/content/skills/specialist-prototipagem-stitch/resources/reference/stitch-guide.md +517 -0
- package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prompt-stitch.md +429 -0
- package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prototipo-stitch.md +317 -0
- package/dist/content/skills/specialist-seguranca-informacao/MCP_INTEGRATION.md +466 -0
- package/dist/content/skills/specialist-seguranca-informacao/README.md +245 -0
- package/dist/content/skills/specialist-seguranca-informacao/SKILL.md +343 -0
- package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/init_security.py +405 -0
- package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/process_security.py +611 -0
- package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/validate_security.py +468 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/checklists/security-validation.md +368 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/examples/security-examples.md +358 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/reference/security-guide.md +757 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/templates/checklist-seguranca.md +383 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/templates/slo-sli.md +244 -0
- package/dist/content/skills/specialist-seguranca-informacao/resources/templates/threat-modeling.md +161 -0
- package/dist/content/skills/specialist-ux-design/MCP_INTEGRATION.md +294 -0
- package/dist/content/skills/specialist-ux-design/README.md +304 -0
- package/dist/content/skills/specialist-ux-design/SKILL.md +212 -0
- package/dist/content/skills/specialist-ux-design/mcp_functions/init_ux.py +126 -0
- package/dist/content/skills/specialist-ux-design/mcp_functions/process_ux.py +408 -0
- package/dist/content/skills/specialist-ux-design/mcp_functions/validate_ux.py +379 -0
- package/dist/content/skills/specialist-ux-design/resources/checklists/ux-validation.md +77 -0
- package/dist/content/skills/specialist-ux-design/resources/examples/ux-examples.md +161 -0
- package/dist/content/skills/specialist-ux-design/resources/reference/ux-guide.md +184 -0
- package/dist/content/skills/specialist-ux-design/resources/templates/design-doc.md +160 -0
- package/dist/content/skills/specialist-ux-design/resources/templates/jornada-usuario.md +126 -0
- package/dist/content/skills/specialist-ux-design/resources/templates/wireframes.md +155 -0
- package/dist/core/adr/ADRGenerator.d.ts +28 -0
- package/dist/core/adr/ADRGenerator.d.ts.map +1 -0
- package/dist/core/adr/ADRGenerator.js +63 -0
- package/dist/core/adr/ADRGenerator.js.map +1 -0
- package/dist/core/adr/index.d.ts +2 -0
- package/dist/core/adr/index.d.ts.map +1 -0
- package/dist/core/adr/index.js +2 -0
- package/dist/core/adr/index.js.map +1 -0
- package/dist/core/architecture/FitnessFunctions.d.ts +67 -0
- package/dist/core/architecture/FitnessFunctions.d.ts.map +1 -0
- package/dist/core/architecture/FitnessFunctions.js +292 -0
- package/dist/core/architecture/FitnessFunctions.js.map +1 -0
- package/dist/core/architecture/index.d.ts +3 -0
- package/dist/core/architecture/index.d.ts.map +1 -0
- package/dist/core/architecture/index.js +3 -0
- package/dist/core/architecture/index.js.map +1 -0
- package/dist/core/architecture/types.d.ts +42 -0
- package/dist/core/architecture/types.d.ts.map +1 -0
- package/dist/core/architecture/types.js +5 -0
- package/dist/core/architecture/types.js.map +1 -0
- package/dist/core/atam/ATAMAnalyzer.d.ts +19 -0
- package/dist/core/atam/ATAMAnalyzer.d.ts.map +1 -0
- package/dist/core/atam/ATAMAnalyzer.js +206 -0
- package/dist/core/atam/ATAMAnalyzer.js.map +1 -0
- package/dist/core/atam/ATAMReporter.d.ts +16 -0
- package/dist/core/atam/ATAMReporter.d.ts.map +1 -0
- package/dist/core/atam/ATAMReporter.js +175 -0
- package/dist/core/atam/ATAMReporter.js.map +1 -0
- package/dist/core/atam/QualityScenarios.d.ts +16 -0
- package/dist/core/atam/QualityScenarios.d.ts.map +1 -0
- package/dist/core/atam/QualityScenarios.js +149 -0
- package/dist/core/atam/QualityScenarios.js.map +1 -0
- package/dist/core/atam/RiskRegistry.d.ts +21 -0
- package/dist/core/atam/RiskRegistry.d.ts.map +1 -0
- package/dist/core/atam/RiskRegistry.js +83 -0
- package/dist/core/atam/RiskRegistry.js.map +1 -0
- package/dist/core/atam/index.d.ts +6 -0
- package/dist/core/atam/index.d.ts.map +1 -0
- package/dist/core/atam/index.js +6 -0
- package/dist/core/atam/index.js.map +1 -0
- package/dist/core/atam/types.d.ts +86 -0
- package/dist/core/atam/types.d.ts.map +1 -0
- package/dist/core/atam/types.js +5 -0
- package/dist/core/atam/types.js.map +1 -0
- package/dist/core/authority/AuthorityManager.d.ts +19 -0
- package/dist/core/authority/AuthorityManager.d.ts.map +1 -0
- package/dist/core/authority/AuthorityManager.js +66 -0
- package/dist/core/authority/AuthorityManager.js.map +1 -0
- package/dist/core/authority/index.d.ts +2 -0
- package/dist/core/authority/index.d.ts.map +1 -0
- package/dist/core/authority/index.js +2 -0
- package/dist/core/authority/index.js.map +1 -0
- package/dist/core/autofix/AutoFixEngine.d.ts +17 -0
- package/dist/core/autofix/AutoFixEngine.d.ts.map +1 -0
- package/dist/core/autofix/AutoFixEngine.js +46 -0
- package/dist/core/autofix/AutoFixEngine.js.map +1 -0
- package/dist/core/autofix/index.d.ts +2 -0
- package/dist/core/autofix/index.d.ts.map +1 -0
- package/dist/core/autofix/index.js +2 -0
- package/dist/core/autofix/index.js.map +1 -0
- package/dist/core/automation/AutoExecutor.d.ts +20 -0
- package/dist/core/automation/AutoExecutor.d.ts.map +1 -0
- package/dist/core/automation/AutoExecutor.js +38 -0
- package/dist/core/automation/AutoExecutor.js.map +1 -0
- package/dist/core/automation/index.d.ts +2 -0
- package/dist/core/automation/index.d.ts.map +1 -0
- package/dist/core/automation/index.js +2 -0
- package/dist/core/automation/index.js.map +1 -0
- package/dist/core/checkpoint/CheckpointManager.d.ts +43 -0
- package/dist/core/checkpoint/CheckpointManager.d.ts.map +1 -0
- package/dist/core/checkpoint/CheckpointManager.js +158 -0
- package/dist/core/checkpoint/CheckpointManager.js.map +1 -0
- package/dist/core/checkpoint/RollbackEngine.d.ts +31 -0
- package/dist/core/checkpoint/RollbackEngine.d.ts.map +1 -0
- package/dist/core/checkpoint/RollbackEngine.js +176 -0
- package/dist/core/checkpoint/RollbackEngine.js.map +1 -0
- package/dist/core/checkpoint/index.d.ts +4 -0
- package/dist/core/checkpoint/index.d.ts.map +1 -0
- package/dist/core/checkpoint/index.js +4 -0
- package/dist/core/checkpoint/index.js.map +1 -0
- package/dist/core/checkpoint/types.d.ts +33 -0
- package/dist/core/checkpoint/types.d.ts.map +1 -0
- package/dist/core/checkpoint/types.js +2 -0
- package/dist/core/checkpoint/types.js.map +1 -0
- package/dist/core/consistency/ConsistencyAnalyzer.d.ts +12 -0
- package/dist/core/consistency/ConsistencyAnalyzer.d.ts.map +1 -0
- package/dist/core/consistency/ConsistencyAnalyzer.js +79 -0
- package/dist/core/consistency/ConsistencyAnalyzer.js.map +1 -0
- package/dist/core/consistency/index.d.ts +3 -0
- package/dist/core/consistency/index.d.ts.map +1 -0
- package/dist/core/consistency/index.js +3 -0
- package/dist/core/consistency/index.js.map +1 -0
- package/dist/core/consistency/types.d.ts +43 -0
- package/dist/core/consistency/types.d.ts.map +1 -0
- package/dist/core/consistency/types.js +5 -0
- package/dist/core/consistency/types.js.map +1 -0
- package/dist/core/context/ContextDetector.d.ts +14 -0
- package/dist/core/context/ContextDetector.d.ts.map +1 -0
- package/dist/core/context/ContextDetector.js +58 -0
- package/dist/core/context/ContextDetector.js.map +1 -0
- package/dist/core/context/index.d.ts +3 -0
- package/dist/core/context/index.d.ts.map +1 -0
- package/dist/core/context/index.js +3 -0
- package/dist/core/context/index.js.map +1 -0
- package/dist/core/context/types.d.ts +41 -0
- package/dist/core/context/types.d.ts.map +1 -0
- package/dist/core/context/types.js +5 -0
- package/dist/core/context/types.js.map +1 -0
- package/dist/core/decision/AlternativeGenerator.d.ts +32 -0
- package/dist/core/decision/AlternativeGenerator.d.ts.map +1 -0
- package/dist/core/decision/AlternativeGenerator.js +155 -0
- package/dist/core/decision/AlternativeGenerator.js.map +1 -0
- package/dist/core/decision/ConfidenceCalculator.d.ts +42 -0
- package/dist/core/decision/ConfidenceCalculator.d.ts.map +1 -0
- package/dist/core/decision/ConfidenceCalculator.js +114 -0
- package/dist/core/decision/ConfidenceCalculator.js.map +1 -0
- package/dist/core/decision/DecisionEngine.d.ts +42 -0
- package/dist/core/decision/DecisionEngine.d.ts.map +1 -0
- package/dist/core/decision/DecisionEngine.js +144 -0
- package/dist/core/decision/DecisionEngine.js.map +1 -0
- package/dist/core/decision/DecisionMatrix.d.ts +29 -0
- package/dist/core/decision/DecisionMatrix.d.ts.map +1 -0
- package/dist/core/decision/DecisionMatrix.js +66 -0
- package/dist/core/decision/DecisionMatrix.js.map +1 -0
- package/dist/core/decision/index.d.ts +6 -0
- package/dist/core/decision/index.d.ts.map +1 -0
- package/dist/core/decision/index.js +6 -0
- package/dist/core/decision/index.js.map +1 -0
- package/dist/core/decision/types.d.ts +40 -0
- package/dist/core/decision/types.d.ts.map +1 -0
- package/dist/core/decision/types.js +5 -0
- package/dist/core/decision/types.js.map +1 -0
- package/dist/core/discovery/CodebaseDiscovery.d.ts +19 -0
- package/dist/core/discovery/CodebaseDiscovery.d.ts.map +1 -0
- package/dist/core/discovery/CodebaseDiscovery.js +83 -0
- package/dist/core/discovery/CodebaseDiscovery.js.map +1 -0
- package/dist/core/discovery/index.d.ts +2 -0
- package/dist/core/discovery/index.d.ts.map +1 -0
- package/dist/core/discovery/index.js +2 -0
- package/dist/core/discovery/index.js.map +1 -0
- package/dist/core/feedback/FeedbackLoop.d.ts +21 -0
- package/dist/core/feedback/FeedbackLoop.d.ts.map +1 -0
- package/dist/core/feedback/FeedbackLoop.js +45 -0
- package/dist/core/feedback/FeedbackLoop.js.map +1 -0
- package/dist/core/feedback/index.d.ts +2 -0
- package/dist/core/feedback/index.d.ts.map +1 -0
- package/dist/core/feedback/index.js +2 -0
- package/dist/core/feedback/index.js.map +1 -0
- package/dist/core/growth/GrowthProjector.d.ts +12 -0
- package/dist/core/growth/GrowthProjector.d.ts.map +1 -0
- package/dist/core/growth/GrowthProjector.js +93 -0
- package/dist/core/growth/GrowthProjector.js.map +1 -0
- package/dist/core/growth/index.d.ts +3 -0
- package/dist/core/growth/index.d.ts.map +1 -0
- package/dist/core/growth/index.js +3 -0
- package/dist/core/growth/index.js.map +1 -0
- package/dist/core/growth/types.d.ts +40 -0
- package/dist/core/growth/types.d.ts.map +1 -0
- package/dist/core/growth/types.js +5 -0
- package/dist/core/growth/types.js.map +1 -0
- package/dist/core/impact/ImpactAnalyzer.d.ts +22 -0
- package/dist/core/impact/ImpactAnalyzer.d.ts.map +1 -0
- package/dist/core/impact/ImpactAnalyzer.js +43 -0
- package/dist/core/impact/ImpactAnalyzer.js.map +1 -0
- package/dist/core/impact/index.d.ts +2 -0
- package/dist/core/impact/index.d.ts.map +1 -0
- package/dist/core/impact/index.js +2 -0
- package/dist/core/impact/index.js.map +1 -0
- package/dist/core/knowledge/ADRManager.d.ts +22 -0
- package/dist/core/knowledge/ADRManager.d.ts.map +1 -0
- package/dist/core/knowledge/ADRManager.js +82 -0
- package/dist/core/knowledge/ADRManager.js.map +1 -0
- package/dist/core/knowledge/ContextLoader.d.ts +18 -0
- package/dist/core/knowledge/ContextLoader.d.ts.map +1 -0
- package/dist/core/knowledge/ContextLoader.js +48 -0
- package/dist/core/knowledge/ContextLoader.js.map +1 -0
- package/dist/core/knowledge/KnowledgeBase.d.ts +35 -0
- package/dist/core/knowledge/KnowledgeBase.d.ts.map +1 -0
- package/dist/core/knowledge/KnowledgeBase.js +143 -0
- package/dist/core/knowledge/KnowledgeBase.js.map +1 -0
- package/dist/core/knowledge/PatternRegistry.d.ts +22 -0
- package/dist/core/knowledge/PatternRegistry.d.ts.map +1 -0
- package/dist/core/knowledge/PatternRegistry.js +56 -0
- package/dist/core/knowledge/PatternRegistry.js.map +1 -0
- package/dist/core/knowledge/index.d.ts +6 -0
- package/dist/core/knowledge/index.d.ts.map +1 -0
- package/dist/core/knowledge/index.js +6 -0
- package/dist/core/knowledge/index.js.map +1 -0
- package/dist/core/knowledge/types.d.ts +60 -0
- package/dist/core/knowledge/types.d.ts.map +1 -0
- package/dist/core/knowledge/types.js +2 -0
- package/dist/core/knowledge/types.js.map +1 -0
- package/dist/core/metrics/MetricsCollector.d.ts +21 -0
- package/dist/core/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/core/metrics/MetricsCollector.js +20 -0
- package/dist/core/metrics/MetricsCollector.js.map +1 -0
- package/dist/core/metrics/index.d.ts +2 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.js +2 -0
- package/dist/core/metrics/index.js.map +1 -0
- package/dist/core/notification/NotificationManager.d.ts +20 -0
- package/dist/core/notification/NotificationManager.d.ts.map +1 -0
- package/dist/core/notification/NotificationManager.js +16 -0
- package/dist/core/notification/NotificationManager.js.map +1 -0
- package/dist/core/notification/index.d.ts +2 -0
- package/dist/core/notification/index.d.ts.map +1 -0
- package/dist/core/notification/index.js +2 -0
- package/dist/core/notification/index.js.map +1 -0
- package/dist/core/risk/RiskEvaluator.d.ts +11 -0
- package/dist/core/risk/RiskEvaluator.d.ts.map +1 -0
- package/dist/core/risk/RiskEvaluator.js +83 -0
- package/dist/core/risk/RiskEvaluator.js.map +1 -0
- package/dist/core/risk/index.d.ts +3 -0
- package/dist/core/risk/index.d.ts.map +1 -0
- package/dist/core/risk/index.js +3 -0
- package/dist/core/risk/index.js.map +1 -0
- package/dist/core/risk/types.d.ts +19 -0
- package/dist/core/risk/types.d.ts.map +1 -0
- package/dist/core/risk/types.js +2 -0
- package/dist/core/risk/types.js.map +1 -0
- package/dist/core/roadmap/RoadmapManager.d.ts +14 -0
- package/dist/core/roadmap/RoadmapManager.d.ts.map +1 -0
- package/dist/core/roadmap/RoadmapManager.js +81 -0
- package/dist/core/roadmap/RoadmapManager.js.map +1 -0
- package/dist/core/roadmap/index.d.ts +3 -0
- package/dist/core/roadmap/index.d.ts.map +1 -0
- package/dist/core/roadmap/index.js +3 -0
- package/dist/core/roadmap/index.js.map +1 -0
- package/dist/core/roadmap/types.d.ts +64 -0
- package/dist/core/roadmap/types.d.ts.map +1 -0
- package/dist/core/roadmap/types.js +5 -0
- package/dist/core/roadmap/types.js.map +1 -0
- package/dist/core/strangler/StranglerOrchestrator.d.ts +14 -0
- package/dist/core/strangler/StranglerOrchestrator.d.ts.map +1 -0
- package/dist/core/strangler/StranglerOrchestrator.js +87 -0
- package/dist/core/strangler/StranglerOrchestrator.js.map +1 -0
- package/dist/core/strangler/index.d.ts +3 -0
- package/dist/core/strangler/index.d.ts.map +1 -0
- package/dist/core/strangler/index.js +3 -0
- package/dist/core/strangler/index.js.map +1 -0
- package/dist/core/strangler/types.d.ts +70 -0
- package/dist/core/strangler/types.d.ts.map +1 -0
- package/dist/core/strangler/types.js +5 -0
- package/dist/core/strangler/types.js.map +1 -0
- package/dist/core/testing/TestRunner.d.ts +17 -0
- package/dist/core/testing/TestRunner.d.ts.map +1 -0
- package/dist/core/testing/TestRunner.js +22 -0
- package/dist/core/testing/TestRunner.js.map +1 -0
- package/dist/core/testing/index.d.ts +2 -0
- package/dist/core/testing/index.d.ts.map +1 -0
- package/dist/core/testing/index.js +2 -0
- package/dist/core/testing/index.js.map +1 -0
- package/dist/core/tradeoff/TradeoffAnalyzer.d.ts +24 -0
- package/dist/core/tradeoff/TradeoffAnalyzer.d.ts.map +1 -0
- package/dist/core/tradeoff/TradeoffAnalyzer.js +51 -0
- package/dist/core/tradeoff/TradeoffAnalyzer.js.map +1 -0
- package/dist/core/tradeoff/index.d.ts +2 -0
- package/dist/core/tradeoff/index.d.ts.map +1 -0
- package/dist/core/tradeoff/index.js +2 -0
- package/dist/core/tradeoff/index.js.map +1 -0
- package/dist/core/validation/DependencyValidator.d.ts +28 -0
- package/dist/core/validation/DependencyValidator.d.ts.map +1 -0
- package/dist/core/validation/DependencyValidator.js +188 -0
- package/dist/core/validation/DependencyValidator.js.map +1 -0
- package/dist/core/validation/SecurityValidator.d.ts +44 -0
- package/dist/core/validation/SecurityValidator.d.ts.map +1 -0
- package/dist/core/validation/SecurityValidator.js +248 -0
- package/dist/core/validation/SecurityValidator.js.map +1 -0
- package/dist/core/validation/ValidationPipeline.d.ts +62 -0
- package/dist/core/validation/ValidationPipeline.d.ts.map +1 -0
- package/dist/core/validation/ValidationPipeline.js +216 -0
- package/dist/core/validation/ValidationPipeline.js.map +1 -0
- package/dist/core/validation/index.d.ts +4 -0
- package/dist/core/validation/index.d.ts.map +1 -0
- package/dist/core/validation/index.js +4 -0
- package/dist/core/validation/index.js.map +1 -0
- package/dist/core/validation/layers/ArchitectureValidator.d.ts +21 -0
- package/dist/core/validation/layers/ArchitectureValidator.d.ts.map +1 -0
- package/dist/core/validation/layers/ArchitectureValidator.js +226 -0
- package/dist/core/validation/layers/ArchitectureValidator.js.map +1 -0
- package/dist/core/validation/layers/QualityValidator.d.ts +23 -0
- package/dist/core/validation/layers/QualityValidator.d.ts.map +1 -0
- package/dist/core/validation/layers/QualityValidator.js +259 -0
- package/dist/core/validation/layers/QualityValidator.js.map +1 -0
- package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts +12 -0
- package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts.map +1 -0
- package/dist/core/validation/layers/SecurityValidatorWrapper.js +54 -0
- package/dist/core/validation/layers/SecurityValidatorWrapper.js.map +1 -0
- package/dist/core/validation/layers/SemanticValidator.d.ts +21 -0
- package/dist/core/validation/layers/SemanticValidator.d.ts.map +1 -0
- package/dist/core/validation/layers/SemanticValidator.js +182 -0
- package/dist/core/validation/layers/SemanticValidator.js.map +1 -0
- package/dist/core/validation/layers/SyntacticValidator.d.ts +17 -0
- package/dist/core/validation/layers/SyntacticValidator.d.ts.map +1 -0
- package/dist/core/validation/layers/SyntacticValidator.js +194 -0
- package/dist/core/validation/layers/SyntacticValidator.js.map +1 -0
- package/dist/core/validation/types.d.ts +90 -0
- package/dist/core/validation/types.d.ts.map +1 -0
- package/dist/core/validation/types.js +24 -0
- package/dist/core/validation/types.js.map +1 -0
- package/dist/frontend-first/contract-generator.d.ts +47 -0
- package/dist/frontend-first/contract-generator.d.ts.map +1 -0
- package/dist/frontend-first/contract-generator.js +312 -0
- package/dist/frontend-first/contract-generator.js.map +1 -0
- package/dist/frontend-first/mock-generator.d.ts +23 -0
- package/dist/frontend-first/mock-generator.d.ts.map +1 -0
- package/dist/frontend-first/mock-generator.js +186 -0
- package/dist/frontend-first/mock-generator.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/optimization/batch-prompts.d.ts +27 -0
- package/dist/optimization/batch-prompts.d.ts.map +1 -0
- package/dist/optimization/batch-prompts.js +178 -0
- package/dist/optimization/batch-prompts.js.map +1 -0
- package/dist/optimization/context-cache.d.ts +45 -0
- package/dist/optimization/context-cache.d.ts.map +1 -0
- package/dist/optimization/context-cache.js +149 -0
- package/dist/optimization/context-cache.js.map +1 -0
- package/dist/optimization/smart-validation.d.ts +43 -0
- package/dist/optimization/smart-validation.d.ts.map +1 -0
- package/dist/optimization/smart-validation.js +137 -0
- package/dist/optimization/smart-validation.js.map +1 -0
- package/dist/state/storage.d.ts +1 -1
- package/dist/state/storage.d.ts.map +1 -1
- package/dist/state/storage.js +2 -1
- package/dist/state/storage.js.map +1 -1
- package/dist/stdio.js +186 -0
- package/dist/stdio.js.map +1 -1
- package/dist/tasks/task-manager.d.ts +30 -0
- package/dist/tasks/task-manager.d.ts.map +1 -0
- package/dist/tasks/task-manager.js +290 -0
- package/dist/tasks/task-manager.js.map +1 -0
- package/dist/tools/atualizar-tarefa.d.ts +17 -0
- package/dist/tools/atualizar-tarefa.d.ts.map +1 -0
- package/dist/tools/atualizar-tarefa.js +200 -0
- package/dist/tools/atualizar-tarefa.js.map +1 -0
- package/dist/tools/configurar-modo.d.ts +10 -0
- package/dist/tools/configurar-modo.d.ts.map +1 -0
- package/dist/tools/configurar-modo.js +121 -0
- package/dist/tools/configurar-modo.js.map +1 -0
- package/dist/tools/contexto.d.ts.map +1 -1
- package/dist/tools/contexto.js +35 -4
- package/dist/tools/contexto.js.map +1 -1
- package/dist/tools/criar-tarefa.d.ts +17 -0
- package/dist/tools/criar-tarefa.d.ts.map +1 -0
- package/dist/tools/criar-tarefa.js +132 -0
- package/dist/tools/criar-tarefa.js.map +1 -0
- package/dist/tools/discovery.d.ts +121 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +344 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/fase1/checkpoint.tools.d.ts +150 -0
- package/dist/tools/fase1/checkpoint.tools.d.ts.map +1 -0
- package/dist/tools/fase1/checkpoint.tools.js +165 -0
- package/dist/tools/fase1/checkpoint.tools.js.map +1 -0
- package/dist/tools/fase1/knowledge.tools.d.ts +265 -0
- package/dist/tools/fase1/knowledge.tools.d.ts.map +1 -0
- package/dist/tools/fase1/knowledge.tools.js +209 -0
- package/dist/tools/fase1/knowledge.tools.js.map +1 -0
- package/dist/tools/fase1/misc.tools.d.ts +113 -0
- package/dist/tools/fase1/misc.tools.d.ts.map +1 -0
- package/dist/tools/fase1/misc.tools.js +99 -0
- package/dist/tools/fase1/misc.tools.js.map +1 -0
- package/dist/tools/fase1/validation.tools.d.ts +103 -0
- package/dist/tools/fase1/validation.tools.d.ts.map +1 -0
- package/dist/tools/fase1/validation.tools.js +174 -0
- package/dist/tools/fase1/validation.tools.js.map +1 -0
- package/dist/tools/fluxos-alternativos.js +4 -4
- package/dist/tools/fluxos-alternativos.js.map +1 -1
- package/dist/tools/gerar-contrato-api.d.ts +15 -0
- package/dist/tools/gerar-contrato-api.d.ts.map +1 -0
- package/dist/tools/gerar-contrato-api.js +216 -0
- package/dist/tools/gerar-contrato-api.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts +12 -0
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +92 -29
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/listar-tarefas.d.ts +16 -0
- package/dist/tools/listar-tarefas.d.ts.map +1 -0
- package/dist/tools/listar-tarefas.js +215 -0
- package/dist/tools/listar-tarefas.js.map +1 -0
- package/dist/tools/phase2/architecture.tools.d.ts +37 -0
- package/dist/tools/phase2/architecture.tools.d.ts.map +1 -0
- package/dist/tools/phase2/architecture.tools.js +51 -0
- package/dist/tools/phase2/architecture.tools.js.map +1 -0
- package/dist/tools/phase2/decision.tools.d.ts +61 -0
- package/dist/tools/phase2/decision.tools.d.ts.map +1 -0
- package/dist/tools/phase2/decision.tools.js +69 -0
- package/dist/tools/phase2/decision.tools.js.map +1 -0
- package/dist/tools/phase2/index.d.ts +8 -0
- package/dist/tools/phase2/index.d.ts.map +1 -0
- package/dist/tools/phase2/index.js +16 -0
- package/dist/tools/phase2/index.js.map +1 -0
- package/dist/tools/phase2/validation.tools.d.ts +40 -0
- package/dist/tools/phase2/validation.tools.d.ts.map +1 -0
- package/dist/tools/phase2/validation.tools.js +43 -0
- package/dist/tools/phase2/validation.tools.js.map +1 -0
- package/dist/tools/phase3/atam.tools.d.ts +26 -0
- package/dist/tools/phase3/atam.tools.d.ts.map +1 -0
- package/dist/tools/phase3/atam.tools.js +48 -0
- package/dist/tools/phase3/atam.tools.js.map +1 -0
- package/dist/tools/phase3/consistency.tools.d.ts +15 -0
- package/dist/tools/phase3/consistency.tools.d.ts.map +1 -0
- package/dist/tools/phase3/consistency.tools.js +20 -0
- package/dist/tools/phase3/consistency.tools.js.map +1 -0
- package/dist/tools/phase3/context.tools.d.ts +25 -0
- package/dist/tools/phase3/context.tools.d.ts.map +1 -0
- package/dist/tools/phase3/context.tools.js +32 -0
- package/dist/tools/phase3/context.tools.js.map +1 -0
- package/dist/tools/phase3/growth.tools.d.ts +28 -0
- package/dist/tools/phase3/growth.tools.d.ts.map +1 -0
- package/dist/tools/phase3/growth.tools.js +32 -0
- package/dist/tools/phase3/growth.tools.js.map +1 -0
- package/dist/tools/phase3/index.d.ts +10 -0
- package/dist/tools/phase3/index.d.ts.map +1 -0
- package/dist/tools/phase3/index.js +10 -0
- package/dist/tools/phase3/index.js.map +1 -0
- package/dist/tools/phase3/roadmap.tools.d.ts +41 -0
- package/dist/tools/phase3/roadmap.tools.d.ts.map +1 -0
- package/dist/tools/phase3/roadmap.tools.js +44 -0
- package/dist/tools/phase3/roadmap.tools.js.map +1 -0
- package/dist/tools/phase3/strangler.tools.d.ts +37 -0
- package/dist/tools/phase3/strangler.tools.d.ts.map +1 -0
- package/dist/tools/phase3/strangler.tools.js +44 -0
- package/dist/tools/phase3/strangler.tools.js.map +1 -0
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +44 -11
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +18 -5
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/validar-gate.d.ts.map +1 -1
- package/dist/tools/validar-gate.js +17 -0
- package/dist/tools/validar-gate.js.map +1 -1
- package/dist/types/config.d.ts +46 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +162 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +39 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/tasks.d.ts +100 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +2 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/utils/__tests__/prompt-mapper.test.d.ts +2 -0
- package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +1 -0
- package/dist/utils/__tests__/prompt-mapper.test.js +184 -0
- package/dist/utils/__tests__/prompt-mapper.test.js.map +1 -0
- package/dist/utils/history.d.ts +10 -0
- package/dist/utils/history.d.ts.map +1 -1
- package/dist/utils/history.js +12 -1
- package/dist/utils/history.js.map +1 -1
- package/dist/utils/ide-paths.d.ts +61 -0
- package/dist/utils/ide-paths.d.ts.map +1 -0
- package/dist/utils/ide-paths.js +110 -0
- package/dist/utils/ide-paths.js.map +1 -0
- package/dist/utils/prompt-mapper.d.ts +48 -0
- package/dist/utils/prompt-mapper.d.ts.map +1 -1
- package/dist/utils/prompt-mapper.js +104 -0
- package/dist/utils/prompt-mapper.js.map +1 -1
- package/package.json +5 -5
- package/dist/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +0 -250
- package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +0 -278
- package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +0 -261
- package/dist/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +0 -258
- package/dist/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +0 -119
- package/dist/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +0 -147
- package/dist/content/guides/Checklist Mestre de Entrega.md +0 -68
- package/dist/content/guides/Gates de Qualidade.md +0 -209
- package/dist/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +0 -355
- package/dist/content/guides/Guia de Chaos Engineering.md +0 -267
- package/dist/content/guides/Guia de Estrat/303/251gias de Cache.md" +0 -352
- package/dist/content/guides/Guia de Migrations Zero-Downtime.md +0 -311
- package/dist/content/guides/Guia de Multi-tenancy.md +0 -368
- package/dist/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +0 -195
- package/dist/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +0 -162
- package/dist/content/guides/Guia de SLOs e Error Budgets.md +0 -315
- package/dist/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +0 -93
- package/dist/content/guides/Rules base.md +0 -90
- package/dist/content/playbook/Playbook de Desenvolvimento com IA.md +0 -364
- package/dist/content/prompts/README.md +0 -203
- package/dist/content/prompts/acessibilidade/analise-acessibilidade.md +0 -257
- package/dist/content/prompts/apis/design-api-rest.md +0 -303
- package/dist/content/prompts/apis/idempotencia.md +0 -254
- package/dist/content/prompts/apis/versionamento.md +0 -313
- package/dist/content/prompts/arquitetura/arquitetura-c4-completo.md +0 -190
- package/dist/content/prompts/arquitetura/clean-architecture.md +0 -151
- package/dist/content/prompts/arquitetura/multi-tenancy.md +0 -235
- package/dist/content/prompts/database/migrations-zero-downtime.md +0 -192
- package/dist/content/prompts/database/otimizacao-queries.md +0 -296
- package/dist/content/prompts/desenvolvimento/code-review.md +0 -301
- package/dist/content/prompts/desenvolvimento/gerar-servico.md +0 -271
- package/dist/content/prompts/devops/docker-compose.md +0 -336
- package/dist/content/prompts/devops/feature-flags.md +0 -374
- package/dist/content/prompts/devops/kubernetes-deploy.md +0 -460
- package/dist/content/prompts/devops/pipeline-cicd.md +0 -358
- package/dist/content/prompts/devops/terraform-iac.md +0 -502
- package/dist/content/prompts/escalabilidade/analise-performance.md +0 -240
- package/dist/content/prompts/escalabilidade/analise-performance.txt +0 -94
- package/dist/content/prompts/escalabilidade/caching.md +0 -255
- package/dist/content/prompts/observabilidade/chaos-testing.md +0 -237
- package/dist/content/prompts/observabilidade/estrategia-observabilidade.md +0 -263
- package/dist/content/prompts/observabilidade/estrategia-observabilidade.txt +0 -134
- package/dist/content/prompts/observabilidade/slos.md +0 -215
- package/dist/content/prompts/produto/discovery-inicial.md +0 -203
- package/dist/content/prompts/produto/discovery-inicial.txt +0 -33
- package/dist/content/prompts/requisitos/refinar-requisitos.md +0 -232
- package/dist/content/prompts/requisitos/refinar-requisitos.txt +0 -40
- package/dist/content/prompts/seguranca/analise-seguranca.md +0 -243
- package/dist/content/prompts/seguranca/pentest-checklist.md +0 -333
- package/dist/content/prompts/seguranca/rate-limiting.md +0 -356
- package/dist/content/prompts/seguranca/revisao-lgpd.md +0 -227
- package/dist/content/prompts/seguranca/threat-modeling.md +0 -224
- package/dist/content/prompts/testes/contract-testing.md +0 -340
- package/dist/content/prompts/testes/gerar-testes-unitarios.md +0 -474
- package/dist/content/prompts/testes/testes-e2e.md +0 -460
- package/dist/content/prompts/testes/testes-integracao.md +0 -418
- package/dist/content/prompts/testes/testes-performance.md +0 -458
- package/dist/content/prompts/ux/gerar-ui-stitch.md +0 -151
- package/dist/content/specialists/Especialista em Acessibilidade.md +0 -266
- package/dist/content/specialists/Especialista em An/303/241lise de Testes.md" +0 -434
- package/dist/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +0 -358
- package/dist/content/specialists/Especialista em Arquitetura de Software.md +0 -177
- package/dist/content/specialists/Especialista em Banco de Dados.md +0 -260
- package/dist/content/specialists/Especialista em Contrato de API.md +0 -172
- package/dist/content/specialists/Especialista em Dados e Analytics com IA.md +0 -246
- package/dist/content/specialists/Especialista em Debugging e Troubleshooting.md +0 -191
- package/dist/content/specialists/Especialista em Desenvolvimento Frontend.md +0 -477
- package/dist/content/specialists/Especialista em Desenvolvimento Mobile.md +0 -241
- package/dist/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +0 -417
- package/dist/content/specialists/Especialista em DevOps e Infraestrutura.md +0 -294
- package/dist/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +0 -227
- package/dist/content/specialists/Especialista em Engenharia de Requisitos com IA.md +0 -299
- package/dist/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +0 -179
- package/dist/content/specialists/Especialista em Gest/303/243o de Produto.md" +0 -179
- package/dist/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +0 -410
- package/dist/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +0 -248
- package/dist/content/specialists/Especialista em Observabilidade.md +0 -415
- package/dist/content/specialists/Especialista em Performance e Escalabilidade.md +0 -373
- package/dist/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +0 -341
- package/dist/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +0 -419
- package/dist/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +0 -508
- package/dist/content/specialists/Especialista em UX Design.md +0 -453
- package/dist/content/specialists/INDEX.md +0 -43
- package/dist/content/templates/PRD.md +0 -165
- package/dist/content/templates/README.md +0 -65
- package/dist/content/templates/adr.md +0 -103
- package/dist/content/templates/arquitetura.md +0 -279
- package/dist/content/templates/backlog.md +0 -185
- package/dist/content/templates/checklist-seguranca.md +0 -180
- package/dist/content/templates/contexto.md +0 -120
- package/dist/content/templates/criterios-aceite.md +0 -99
- package/dist/content/templates/design-banco.md +0 -270
- package/dist/content/templates/design-doc.md +0 -240
- package/dist/content/templates/feature.md +0 -88
- package/dist/content/templates/historia-backend.md +0 -84
- package/dist/content/templates/historia-frontend.md +0 -75
- package/dist/content/templates/historia-usuario.md +0 -125
- package/dist/content/templates/mapa-navegacao.md +0 -133
- package/dist/content/templates/matriz-rastreabilidade.md +0 -121
- package/dist/content/templates/modelo-dominio.md +0 -219
- package/dist/content/templates/plano-testes.md +0 -199
- package/dist/content/templates/prototipo-stitch.md +0 -138
- package/dist/content/templates/requisitos.md +0 -162
- package/dist/content/templates/slo-sli.md +0 -197
- /package/dist/content/{guides/Guia de Debugging com IA.md → skills/specialist-debugging-troubleshooting/resources/reference/debugging-ai-guide.md} +0 -0
- /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-bounded-contexts.md +0 -0
- /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-cqrs.md +0 -0
- /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/modelo-dominio.md +0 -0
|
@@ -0,0 +1,935 @@
|
|
|
1
|
+
# [Nome do Projeto] - Constraints de Integridade
|
|
2
|
+
|
|
3
|
+
## Sumário Executivo
|
|
4
|
+
[ ] **Projeto:** [Nome do projeto]
|
|
5
|
+
[ ] **Versão:** [Versão atual]
|
|
6
|
+
[ ] **Data:** [Data de criação]
|
|
7
|
+
[ ] **Status:** [Em elaboração/Revisão/Aprovado]
|
|
8
|
+
[ ] **Autor:** [DBA]
|
|
9
|
+
[ ] **Aprovadores:** [Stakeholders]
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Visão Geral das Constraints
|
|
14
|
+
|
|
15
|
+
### 1.1 Tipos de Constraints
|
|
16
|
+
- **Primary Keys (PK):** Identificadores únicos
|
|
17
|
+
- **Foreign Keys (FK):** Integridade referencial
|
|
18
|
+
- **Unique Constraints:** Unicidade de valores
|
|
19
|
+
- **Check Constraints:** Validação de regras
|
|
20
|
+
- **Not Null:** Campos obrigatórios
|
|
21
|
+
- **Default Values:** Valores padrão
|
|
22
|
+
|
|
23
|
+
### 1.2 Estratégia de Implementação
|
|
24
|
+
- **Gradual:** Implementar em etapas
|
|
25
|
+
- **Backward Compatible:** Não quebrar código existente
|
|
26
|
+
- **Tested:** Validar antes de deploy
|
|
27
|
+
- **Documented:** Documentar todas as regras
|
|
28
|
+
|
|
29
|
+
### 1.3 Impacto na Performance
|
|
30
|
+
- **Write Performance:** Impacto em inserts/updates
|
|
31
|
+
- **Read Performance:** Melhoria em queries
|
|
32
|
+
- **Storage:** Espaço adicional para índices
|
|
33
|
+
- **Maintenance:** Complexidade de manutenção
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Primary Keys (PKs)
|
|
38
|
+
|
|
39
|
+
### 2.1 Padrão de PKs
|
|
40
|
+
- **Tipo:** UUID para novas tabelas
|
|
41
|
+
- **Auto-increment:** Para migrações legadas
|
|
42
|
+
- **Natural Keys:** Para dados de negócio únicos
|
|
43
|
+
- **Composite Keys:** Para PKs compostas
|
|
44
|
+
|
|
45
|
+
### 2.2 PKs por Tabela
|
|
46
|
+
#### [Nome da Tabela 1]
|
|
47
|
+
```sql
|
|
48
|
+
-- PK UUID (padrão para novas tabelas)
|
|
49
|
+
ALTER TABLE [tabela]
|
|
50
|
+
ADD CONSTRAINT pk_[tabela]
|
|
51
|
+
PRIMARY KEY (id);
|
|
52
|
+
|
|
53
|
+
-- PK auto-increment (legado)
|
|
54
|
+
ALTER TABLE [tabela]
|
|
55
|
+
ADD CONSTRAINT pk_[tabela]
|
|
56
|
+
PRIMARY KEY (id SERIAL);
|
|
57
|
+
|
|
58
|
+
-- PK composta
|
|
59
|
+
ALTER TABLE [tabela]
|
|
60
|
+
ADD CONSTRAINT pk_[tabela]
|
|
61
|
+
PRIMARY KEY (user_id, product_id);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
#### [Nome da Tabela 2]
|
|
65
|
+
```sql
|
|
66
|
+
-- PK com sequence
|
|
67
|
+
CREATE SEQUENCE [tabela]_id_seq;
|
|
68
|
+
ALTER TABLE [tabela]
|
|
69
|
+
ALTER COLUMN id SET DEFAULT nextval('[tabela]_id_seq');
|
|
70
|
+
ALTER TABLE [tabela]
|
|
71
|
+
ADD CONSTRAINT pk_[tabela]
|
|
72
|
+
PRIMARY KEY (id);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 2.3 PKs Especiais
|
|
76
|
+
#### PKs com Partição
|
|
77
|
+
```sql
|
|
78
|
+
-- PK particionada
|
|
79
|
+
CREATE TABLE [tabela] (
|
|
80
|
+
id UUID NOT NULL,
|
|
81
|
+
tenant_id UUID NOT NULL,
|
|
82
|
+
created_at TIMESTAMP NOT NULL,
|
|
83
|
+
PRIMARY KEY (tenant_id, id, created_at)
|
|
84
|
+
) PARTITION BY RANGE (created_at);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### PKs com Default
|
|
88
|
+
```sql
|
|
89
|
+
-- PK com valor padrão
|
|
90
|
+
ALTER TABLE [tabela]
|
|
91
|
+
ADD CONSTRAINT pk_[tabela]
|
|
92
|
+
PRIMARY KEY (id DEFAULT gen_random_uuid());
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 3. Foreign Keys (FKs)
|
|
98
|
+
|
|
99
|
+
### 3.1 Estratégia de FKs
|
|
100
|
+
- **Referential Integrity:** Garantir consistência
|
|
101
|
+
- **Cascade Actions:** Definir comportamento em delete/update
|
|
102
|
+
- **Performance:** Índices em colunas FK
|
|
103
|
+
- **Naming:** Convenção clara de nomes
|
|
104
|
+
|
|
105
|
+
### 3.2 FKs por Relacionamento
|
|
106
|
+
#### [Relacionamento 1:N]
|
|
107
|
+
```sql
|
|
108
|
+
-- FK simples (1:N)
|
|
109
|
+
ALTER TABLE [tabela_filha]
|
|
110
|
+
ADD CONSTRAINT fk_[tabela_filha]_[tabela_pai]
|
|
111
|
+
FOREIGN KEY ([coluna_fk])
|
|
112
|
+
REFERENCES [tabela_pai]([coluna_pk])
|
|
113
|
+
ON DELETE RESTRICT
|
|
114
|
+
ON UPDATE CASCADE;
|
|
115
|
+
|
|
116
|
+
-- FK com cascade (1:N)
|
|
117
|
+
ALTER TABLE [tabela_filha]
|
|
118
|
+
ADD CONSTRAINT fk_[tabela_filha]_[tabela_pai]
|
|
119
|
+
FOREIGN KEY ([coluna_fk])
|
|
120
|
+
REFERENCES [tabela_pai]([coluna_pk])
|
|
121
|
+
ON DELETE CASCADE
|
|
122
|
+
ON UPDATE CASCADE;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### [Relacionamento N:N]
|
|
126
|
+
```sql
|
|
127
|
+
-- FK em tabela de junção
|
|
128
|
+
ALTER TABLE [tabela_juncao]
|
|
129
|
+
ADD CONSTRAINT fk_[tabela_juncao]_[tabela1]
|
|
130
|
+
FOREIGN KEY ([tabela1_id])
|
|
131
|
+
REFERENCES [tabela1](id)
|
|
132
|
+
ON DELETE CASCADE;
|
|
133
|
+
|
|
134
|
+
ALTER TABLE [tabela_juncao]
|
|
135
|
+
ADD CONSTRAINT fk_[tabela_juncao]_[tabela2]
|
|
136
|
+
FOREIGN KEY ([tabela2_id])
|
|
137
|
+
REFERENCES [tabela2](id)
|
|
138
|
+
ON DELETE CASCADE;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### [Relacionamento 1:1]
|
|
142
|
+
```sql
|
|
143
|
+
-- FK 1:1
|
|
144
|
+
ALTER TABLE [tabela2]
|
|
145
|
+
ADD CONSTRAINT fk_[tabela2]_[tabela1]
|
|
146
|
+
FOREIGN KEY ([tabela1_id])
|
|
147
|
+
REFERENCES [tabela1](id)
|
|
148
|
+
ON DELETE CASCADE
|
|
149
|
+
ON UPDATE CASCADE
|
|
150
|
+
UNIQUE ([tabela1_id]);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 3.3 Ações em FKs
|
|
154
|
+
| Ação | Descrição | Quando Usar |
|
|
155
|
+
|-------|-----------|-------------|
|
|
156
|
+
| **RESTRICT** | Impede delete/update | Dados críticos |
|
|
157
|
+
| **CASCADE** | Propaga delete/update | Dados dependentes |
|
|
158
|
+
| **SET NULL** | Define como NULL | Dados opcionais |
|
|
159
|
+
| **SET DEFAULT** | Define valor padrão | Dados com padrão |
|
|
160
|
+
|
|
161
|
+
### 3.4 FKs com Self-Reference
|
|
162
|
+
```sql
|
|
163
|
+
-- Self-reference (hierarquia)
|
|
164
|
+
ALTER TABLE [tabela]
|
|
165
|
+
ADD CONSTRAINT fk_[tabela]_parent
|
|
166
|
+
FOREIGN KEY (parent_id)
|
|
167
|
+
REFERENCES [tabela](id)
|
|
168
|
+
ON DELETE SET NULL;
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 4. Unique Constraints
|
|
174
|
+
|
|
175
|
+
### 4.1 Estratégia de Unicidade
|
|
176
|
+
- **Business Rules:** Regras de negócio
|
|
177
|
+
- **Data Integrity:** Evitar duplicatas
|
|
178
|
+
- **Performance:** Índices únicos
|
|
179
|
+
- **Naming:** Convenção clara
|
|
180
|
+
|
|
181
|
+
### 4.2 Unique Constraints por Tabela
|
|
182
|
+
#### [Nome da Tabela 1]
|
|
183
|
+
```sql
|
|
184
|
+
-- Unique simples
|
|
185
|
+
ALTER TABLE [tabela]
|
|
186
|
+
ADD CONSTRAINT uk_[tabela]_email
|
|
187
|
+
UNIQUE (email);
|
|
188
|
+
|
|
189
|
+
-- Unique composto
|
|
190
|
+
ALTER TABLE [tabela]
|
|
191
|
+
ADD CONSTRAINT uk_[tabela]_[colunas]
|
|
192
|
+
UNIQUE ([coluna1], [coluna2]);
|
|
193
|
+
|
|
194
|
+
-- Unique parcial
|
|
195
|
+
ALTER TABLE [tabela]
|
|
196
|
+
ADD CONSTRAINT uk_[tabela]_[coluna]_active
|
|
197
|
+
UNIQUE ([coluna])
|
|
198
|
+
WHERE deleted_at IS NULL;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
#### [Nome da Tabela 2]
|
|
202
|
+
```sql
|
|
203
|
+
-- Unique com função
|
|
204
|
+
ALTER TABLE [tabela]
|
|
205
|
+
ADD CONSTRAINT uk_[tabela]_email_lower
|
|
206
|
+
UNIQUE (LOWER(email));
|
|
207
|
+
|
|
208
|
+
-- Unique com expressão
|
|
209
|
+
ALTER TABLE [tabela]
|
|
210
|
+
ADD CONSTRAINT uk_[tabela]_[coluna]_formatted
|
|
211
|
+
UNIQUE (TRIM(BOTH FROM [coluna]));
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 4.3 Unique Constraints Especiais
|
|
215
|
+
#### Unique com Condição
|
|
216
|
+
```sql
|
|
217
|
+
-- Unique para registros ativos
|
|
218
|
+
ALTER TABLE [tabela]
|
|
219
|
+
ADD CONSTRAINT uk_[tabela]_[coluna]_active
|
|
220
|
+
UNIQUE ([coluna])
|
|
221
|
+
DEFERRABLE INITIALLY DEFERRED;
|
|
222
|
+
|
|
223
|
+
-- Unique com deferrable
|
|
224
|
+
ALTER TABLE [tabela]
|
|
225
|
+
ADD CONSTRAINT uk_[tabela]_[colunas]
|
|
226
|
+
UNIQUE ([coluna1], [coluna2])
|
|
227
|
+
DEFERRABLE INITIALLY DEFERRED;
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 5. Check Constraints
|
|
233
|
+
|
|
234
|
+
### 5.1 Estratégia de Validação
|
|
235
|
+
- **Business Rules:** Regras de negócio
|
|
236
|
+
- **Data Validation:** Validação de dados
|
|
237
|
+
- **Range Validation:** Validação de intervalos
|
|
238
|
+
- **Format Validation:** Validação de formato
|
|
239
|
+
|
|
240
|
+
### 5.2 Check Constraints por Tabela
|
|
241
|
+
#### [Nome da Tabela 1]
|
|
242
|
+
```sql
|
|
243
|
+
-- Check de range
|
|
244
|
+
ALTER TABLE [tabela]
|
|
245
|
+
ADD CONSTRAINT ck_[tabela]_[coluna]_range
|
|
246
|
+
CHECK ([coluna] >= 0 AND [coluna] <= 100);
|
|
247
|
+
|
|
248
|
+
-- Check de formato
|
|
249
|
+
ALTER TABLE [tabela]
|
|
250
|
+
ADD CONSTRAINT ck_[tabela]_email_format
|
|
251
|
+
CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
|
|
252
|
+
|
|
253
|
+
-- Check de negócio
|
|
254
|
+
ALTER TABLE [tabela]
|
|
255
|
+
ADD CONSTRAINT ck_[tabela]_[regra]
|
|
256
|
+
CHECK ([coluna1] > [coluna2]);
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### [Nome da Tabela 2]
|
|
260
|
+
```sql
|
|
261
|
+
-- Check de data
|
|
262
|
+
ALTER TABLE [tabela]
|
|
263
|
+
ADD CONSTRAINT ck_[tabela]_date_range
|
|
264
|
+
CHECK (data_inicio <= data_fim);
|
|
265
|
+
|
|
266
|
+
-- Check de status
|
|
267
|
+
ALTER TABLE [tabela]
|
|
268
|
+
ADD CONSTRAINT ck_[tabela]_status_valid
|
|
269
|
+
CHECK (status IN ('active', 'inactive', 'pending'));
|
|
270
|
+
|
|
271
|
+
-- Check de valor positivo
|
|
272
|
+
ALTER TABLE [tabela]
|
|
273
|
+
ADD CONSTRAINT ck_[tabela]_[coluna]_positive
|
|
274
|
+
CHECK ([coluna] > 0);
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 5.3 Check Constraints Complexos
|
|
278
|
+
#### Múltiplas Condições
|
|
279
|
+
```sql
|
|
280
|
+
-- Check complexo
|
|
281
|
+
ALTER TABLE [tabela]
|
|
282
|
+
ADD CONSTRAINT ck_[tabela]_[complex]
|
|
283
|
+
CHECK (
|
|
284
|
+
(status = 'active' AND data_inicio IS NOT NULL) OR
|
|
285
|
+
(status = 'inactive' AND data_fim IS NOT NULL)
|
|
286
|
+
);
|
|
287
|
+
|
|
288
|
+
-- Check com CASE
|
|
289
|
+
ALTER TABLE [tabela]
|
|
290
|
+
ADD CONSTRAINT ck_[tabela]_[case]
|
|
291
|
+
CHECK (
|
|
292
|
+
CASE
|
|
293
|
+
WHEN tipo = 'premium' THEN valor > 100
|
|
294
|
+
WHEN tipo = 'basic' THEN valor <= 100
|
|
295
|
+
ELSE true
|
|
296
|
+
END
|
|
297
|
+
);
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## 6. Not Null Constraints
|
|
303
|
+
|
|
304
|
+
### 6.1 Estratégia de Obrigatoriedade
|
|
305
|
+
- **Business Rules:** Campos obrigatórios
|
|
306
|
+
- **Data Integrity:** Evitar nulos indevidos
|
|
307
|
+
- **Default Values:** Valores padrão
|
|
308
|
+
- **Migration:** Adicionar gradualmente
|
|
309
|
+
|
|
310
|
+
### 6.2 Not Null por Tabela
|
|
311
|
+
#### [Nome da Tabela 1]
|
|
312
|
+
```sql
|
|
313
|
+
-- Adicionar NOT NULL (com valor padrão)
|
|
314
|
+
ALTER TABLE [tabela]
|
|
315
|
+
ALTER COLUMN [coluna] SET NOT NULL;
|
|
316
|
+
|
|
317
|
+
-- Adicionar NOT NULL (com validação)
|
|
318
|
+
ALTER TABLE [tabela]
|
|
319
|
+
ALTER COLUMN [coluna] SET NOT NULL;
|
|
320
|
+
|
|
321
|
+
-- Adicionar NOT NULL com default
|
|
322
|
+
ALTER TABLE [tabela]
|
|
323
|
+
ALTER COLUMN [coluna] SET NOT NULL,
|
|
324
|
+
ALTER COLUMN [coluna] SET DEFAULT [valor];
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
#### [Nome da Tabela 2]
|
|
328
|
+
```sql
|
|
329
|
+
-- NOT NULL em múltiplas colunas
|
|
330
|
+
ALTER TABLE [tabela]
|
|
331
|
+
ALTER COLUMN [coluna1] SET NOT NULL,
|
|
332
|
+
ALTER COLUMN [coluna2] SET NOT NULL,
|
|
333
|
+
ALTER COLUMN [coluna3] SET NOT NULL;
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### 6.3 Not Null com Migração
|
|
337
|
+
```sql
|
|
338
|
+
-- Migração segura para NOT NULL
|
|
339
|
+
-- Passo 1: Adicionar valor padrão
|
|
340
|
+
ALTER TABLE [tabela]
|
|
341
|
+
ALTER COLUMN [coluna] SET DEFAULT [valor];
|
|
342
|
+
|
|
343
|
+
-- Passo 2: Atualizar nulos existentes
|
|
344
|
+
UPDATE [tabela]
|
|
345
|
+
SET [coluna] = [valor]
|
|
346
|
+
WHERE [coluna] IS NULL;
|
|
347
|
+
|
|
348
|
+
-- Passo 3: Adicionar NOT NULL
|
|
349
|
+
ALTER TABLE [tabela]
|
|
350
|
+
ALTER COLUMN [coluna] SET NOT NULL;
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 7. Default Values
|
|
356
|
+
|
|
357
|
+
### 7.1 Estratégia de Defaults
|
|
358
|
+
- **Business Logic:** Valores padrão de negócio
|
|
359
|
+
- **System Values:** Valores gerados pelo sistema
|
|
360
|
+
- **User Experience:** Melhorar UX
|
|
361
|
+
- **Data Integrity:** Garantir dados válidos
|
|
362
|
+
|
|
363
|
+
### 7.2 Default Values por Tipo
|
|
364
|
+
#### Valores Simples
|
|
365
|
+
```sql
|
|
366
|
+
-- Default string
|
|
367
|
+
ALTER TABLE [tabela]
|
|
368
|
+
ALTER COLUMN [coluna] SET DEFAULT '[valor]';
|
|
369
|
+
|
|
370
|
+
-- Default numérico
|
|
371
|
+
ALTER TABLE [tabela]
|
|
372
|
+
ALTER COLUMN [coluna] SET DEFAULT [valor];
|
|
373
|
+
|
|
374
|
+
-- Default boolean
|
|
375
|
+
ALTER TABLE [tabela]
|
|
376
|
+
ALTER COLUMN [coluna] SET DEFAULT [true/false];
|
|
377
|
+
|
|
378
|
+
-- Default timestamp
|
|
379
|
+
ALTER TABLE [tabela]
|
|
380
|
+
ALTER COLUMN [coluna] SET DEFAULT CURRENT_TIMESTAMP;
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
#### Valores Complexos
|
|
384
|
+
```sql
|
|
385
|
+
-- Default com função
|
|
386
|
+
ALTER TABLE [tabela]
|
|
387
|
+
ALTER COLUMN [coluna] SET DEFAULT gen_random_uuid();
|
|
388
|
+
|
|
389
|
+
-- Default com expressão
|
|
390
|
+
ALTER TABLE [tabela]
|
|
391
|
+
ALTER COLUMN [coluna] SET DEFAULT (CURRENT_DATE + INTERVAL '1 year');
|
|
392
|
+
|
|
393
|
+
-- Default com subquery
|
|
394
|
+
ALTER TABLE [tabela]
|
|
395
|
+
ALTER COLUMN [coluna] SET DEFAULT (SELECT MAX(id) FROM [outra_tabela]);
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### 7.3 Defaults Especiais
|
|
399
|
+
#### Defaults Sequenciais
|
|
400
|
+
```sql
|
|
401
|
+
-- Default com sequence
|
|
402
|
+
CREATE SEQUENCE [sequencia];
|
|
403
|
+
ALTER TABLE [tabela]
|
|
404
|
+
ALTER COLUMN [coluna] SET DEFAULT nextval('[sequencia]');
|
|
405
|
+
|
|
406
|
+
-- Default auto-increment
|
|
407
|
+
ALTER TABLE [tabela]
|
|
408
|
+
ALTER COLUMN [coluna] SET DEFAULT nextval('[tabela]_id_seq');
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
#### Defaults Condicionais
|
|
412
|
+
```sql
|
|
413
|
+
-- Default com CASE
|
|
414
|
+
ALTER TABLE [tabela]
|
|
415
|
+
ALTER COLUMN [coluna] SET DEFAULT
|
|
416
|
+
CASE
|
|
417
|
+
WHEN [condição] THEN [valor1]
|
|
418
|
+
ELSE [valor2]
|
|
419
|
+
END;
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## 8. Constraints por Domínio
|
|
425
|
+
|
|
426
|
+
### 8.1 Domínio de Usuários
|
|
427
|
+
#### Users Table
|
|
428
|
+
```sql
|
|
429
|
+
-- PK
|
|
430
|
+
ALTER TABLE users
|
|
431
|
+
ADD CONSTRAINT pk_users
|
|
432
|
+
PRIMARY KEY (id);
|
|
433
|
+
|
|
434
|
+
-- Unique constraints
|
|
435
|
+
ALTER TABLE users
|
|
436
|
+
ADD CONSTRAINT uk_users_email
|
|
437
|
+
UNIQUE (email);
|
|
438
|
+
|
|
439
|
+
ALTER TABLE users
|
|
440
|
+
ADD CONSTRAINT uk_users_username
|
|
441
|
+
UNIQUE (username);
|
|
442
|
+
|
|
443
|
+
-- Check constraints
|
|
444
|
+
ALTER TABLE users
|
|
445
|
+
ADD CONSTRAINT ck_users_email_format
|
|
446
|
+
CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
|
|
447
|
+
|
|
448
|
+
ALTER TABLE users
|
|
449
|
+
ADD CONSTRAINT ck_users_username_length
|
|
450
|
+
CHECK (LENGTH(username) >= 3 AND LENGTH(username) <= 50);
|
|
451
|
+
|
|
452
|
+
-- Not null
|
|
453
|
+
ALTER TABLE users
|
|
454
|
+
ALTER COLUMN email SET NOT NULL,
|
|
455
|
+
ALTER COLUMN username SET NOT NULL,
|
|
456
|
+
ALTER COLUMN password_hash SET NOT NULL;
|
|
457
|
+
|
|
458
|
+
-- Defaults
|
|
459
|
+
ALTER TABLE users
|
|
460
|
+
ALTER COLUMN created_at SET DEFAULT CURRENT_TIMESTAMP,
|
|
461
|
+
ALTER COLUMN updated_at SET DEFAULT CURRENT_TIMESTAMP,
|
|
462
|
+
ALTER COLUMN status SET DEFAULT 'active';
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### 8.2 Domínio de Pedidos
|
|
466
|
+
#### Orders Table
|
|
467
|
+
```sql
|
|
468
|
+
-- PK
|
|
469
|
+
ALTER TABLE orders
|
|
470
|
+
ADD CONSTRAINT pk_orders
|
|
471
|
+
PRIMARY KEY (id);
|
|
472
|
+
|
|
473
|
+
-- FKs
|
|
474
|
+
ALTER TABLE orders
|
|
475
|
+
ADD CONSTRAINT fk_orders_user
|
|
476
|
+
FOREIGN KEY (user_id)
|
|
477
|
+
REFERENCES users(id)
|
|
478
|
+
ON DELETE RESTRICT;
|
|
479
|
+
|
|
480
|
+
ALTER TABLE orders
|
|
481
|
+
ADD CONSTRAINT fk_orders_status
|
|
482
|
+
FOREIGN KEY (status_id)
|
|
483
|
+
REFERENCES order_status(id)
|
|
484
|
+
ON DELETE RESTRICT;
|
|
485
|
+
|
|
486
|
+
-- Check constraints
|
|
487
|
+
ALTER TABLE orders
|
|
488
|
+
ADD CONSTRAINT ck_orders_total_positive
|
|
489
|
+
CHECK (total_amount >= 0);
|
|
490
|
+
|
|
491
|
+
ALTER TABLE orders
|
|
492
|
+
ADD CONSTRAINT ck_orders_date_valid
|
|
493
|
+
CHECK (order_date <= shipping_date);
|
|
494
|
+
|
|
495
|
+
-- Not null
|
|
496
|
+
ALTER TABLE orders
|
|
497
|
+
ALTER COLUMN user_id SET NOT NULL,
|
|
498
|
+
ALTER COLUMN total_amount SET NOT NULL,
|
|
499
|
+
ALTER COLUMN order_date SET NOT NULL;
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
### 8.3 Domínio de Produtos
|
|
503
|
+
#### Products Table
|
|
504
|
+
```sql
|
|
505
|
+
-- PK
|
|
506
|
+
ALTER TABLE products
|
|
507
|
+
ADD CONSTRAINT pk_products
|
|
508
|
+
PRIMARY KEY (id);
|
|
509
|
+
|
|
510
|
+
-- Unique constraints
|
|
511
|
+
ALTER TABLE products
|
|
512
|
+
ADD CONSTRAINT uk_products_sku
|
|
513
|
+
UNIQUE (sku);
|
|
514
|
+
|
|
515
|
+
ALTER TABLE products
|
|
516
|
+
ADD CONSTRAINT uk_products_name_category
|
|
517
|
+
UNIQUE (name, category_id);
|
|
518
|
+
|
|
519
|
+
-- FKs
|
|
520
|
+
ALTER TABLE products
|
|
521
|
+
ADD CONSTRAINT fk_products_category
|
|
522
|
+
FOREIGN KEY (category_id)
|
|
523
|
+
REFERENCES categories(id)
|
|
524
|
+
ON DELETE RESTRICT;
|
|
525
|
+
|
|
526
|
+
-- Check constraints
|
|
527
|
+
ALTER TABLE products
|
|
528
|
+
ADD CONSTRAINT ck_products_price_positive
|
|
529
|
+
CHECK (price > 0);
|
|
530
|
+
|
|
531
|
+
ALTER TABLE products
|
|
532
|
+
ADD CONSTRAINT ck_products_stock_valid
|
|
533
|
+
CHECK (stock >= 0);
|
|
534
|
+
|
|
535
|
+
-- Not null
|
|
536
|
+
ALTER TABLE products
|
|
537
|
+
ALTER COLUMN name SET NOT NULL,
|
|
538
|
+
ALTER COLUMN price SET NOT NULL,
|
|
539
|
+
ALTER COLUMN category_id SET NOT NULL;
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## 9. Constraints de Performance
|
|
545
|
+
|
|
546
|
+
### 9.1 Índices para Constraints
|
|
547
|
+
- **PKs:** Criados automaticamente
|
|
548
|
+
- **FKs:** Índices recomendados
|
|
549
|
+
- **Unique:** Índices criados automaticamente
|
|
550
|
+
- **Check:** Sem impacto em performance
|
|
551
|
+
|
|
552
|
+
### 9.2 Índices para FKs
|
|
553
|
+
```sql
|
|
554
|
+
-- Índice para FK (recomendado)
|
|
555
|
+
CREATE INDEX idx_[tabela]_[fk_coluna] ON [tabela]([fk_coluna]);
|
|
556
|
+
|
|
557
|
+
-- Índice composto para FK
|
|
558
|
+
CREATE INDEX idx_[tabela]_[fk_colunas] ON [tabela]([fk_coluna1], [fk_coluna2]);
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### 9.3 Performance Considerations
|
|
562
|
+
- **Write Overhead:** Impacto em inserts/updates
|
|
563
|
+
- **Storage:** Espaço adicional
|
|
564
|
+
- **Maintenance:** Complexidade de manutenção
|
|
565
|
+
- **Query Optimization:** Melhoria em selects
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
## 10. Constraints de Negócio
|
|
570
|
+
|
|
571
|
+
### 10.1 Regras de Negócio
|
|
572
|
+
- **Email único:** Não permitir emails duplicados
|
|
573
|
+
- **Salário positivo:** Salário deve ser positivo
|
|
574
|
+
- **Data válida:** Data fim >= data início
|
|
575
|
+
- **Status válido:** Status em lista permitida
|
|
576
|
+
|
|
577
|
+
### 10.2 Implementação de Regras
|
|
578
|
+
```sql
|
|
579
|
+
-- Regra: email único
|
|
580
|
+
ALTER TABLE users
|
|
581
|
+
ADD CONSTRAINT uk_users_email
|
|
582
|
+
UNIQUE (email);
|
|
583
|
+
|
|
584
|
+
-- Regra: salário positivo
|
|
585
|
+
ALTER TABLE employees
|
|
586
|
+
ADD CONSTRAINT ck_employees_salary_positive
|
|
587
|
+
CHECK (salary > 0);
|
|
588
|
+
|
|
589
|
+
-- Regra: data válida
|
|
590
|
+
ALTER TABLE contracts
|
|
591
|
+
ADD CONSTRAINT ck_contracts_date_valid
|
|
592
|
+
CHECK (end_date >= start_date);
|
|
593
|
+
|
|
594
|
+
-- Regra: status válido
|
|
595
|
+
ALTER TABLE orders
|
|
596
|
+
ADD CONSTRAINT ck_orders_status_valid
|
|
597
|
+
CHECK (status IN ('pending', 'confirmed', 'shipped', 'delivered', 'cancelled'));
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### 10.3 Validação de Dados
|
|
601
|
+
```sql
|
|
602
|
+
-- Validação de CPF
|
|
603
|
+
ALTER TABLE users
|
|
604
|
+
ADD CONSTRAINT ck_users_cpf_valid
|
|
605
|
+
CHECK (
|
|
606
|
+
cpf IS NULL OR
|
|
607
|
+
(LENGTH(cpf) = 11 AND
|
|
608
|
+
cpf ~ '^[0-9]{11}$' AND
|
|
609
|
+
MOD(
|
|
610
|
+
(SUBSTRING(cpf, 1, 9)::INTEGER * 10 +
|
|
611
|
+
SUBSTRING(cpf, 10, 1)::INTEGER),
|
|
612
|
+
11
|
|
613
|
+
) = SUBSTRING(cpf, 11, 1)::INTEGER)
|
|
614
|
+
);
|
|
615
|
+
|
|
616
|
+
-- Validação de telefone
|
|
617
|
+
ALTER TABLE users
|
|
618
|
+
ADD CONSTRAINT ck_users_phone_valid
|
|
619
|
+
CHECK (
|
|
620
|
+
phone IS NULL OR
|
|
621
|
+
phone ~ '^\+?[1-9]\d{1,14}$'
|
|
622
|
+
);
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
## 11. Constraints de Segurança
|
|
628
|
+
|
|
629
|
+
### 11.1 Segurança de Dados
|
|
630
|
+
- **PII Protection:** Proteger dados pessoais
|
|
631
|
+
- **Access Control:** Controle de acesso
|
|
632
|
+
- **Audit Trail:** Registro de mudanças
|
|
633
|
+
- **Encryption:** Criptografia quando necessário
|
|
634
|
+
|
|
635
|
+
### 11.2 Constraints de Segurança
|
|
636
|
+
```sql
|
|
637
|
+
-- Hash de senha (não armazenar senha em claro)
|
|
638
|
+
ALTER TABLE users
|
|
639
|
+
ADD CONSTRAINT ck_users_password_hashed
|
|
640
|
+
CHECK (password_hash IS NOT NULL AND password_hash != '');
|
|
641
|
+
|
|
642
|
+
-- Role validation
|
|
643
|
+
ALTER TABLE users
|
|
644
|
+
ADD CONSTRAINT ck_users_role_valid
|
|
645
|
+
CHECK (role IN ('admin', 'user', 'guest'));
|
|
646
|
+
|
|
647
|
+
-- Email verification
|
|
648
|
+
ALTER TABLE users
|
|
649
|
+
ADD CONSTRAINT ck_users_email_verified
|
|
650
|
+
CHECK (email_verified_at IS NULL OR email_verified_at <= created_at);
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
### 11.3 Auditoria
|
|
654
|
+
```sql
|
|
655
|
+
-- Tabela de auditoria
|
|
656
|
+
CREATE TABLE audit_log (
|
|
657
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
658
|
+
table_name VARCHAR(255) NOT NULL,
|
|
659
|
+
operation VARCHAR(10) NOT NULL,
|
|
660
|
+
old_values JSONB,
|
|
661
|
+
new_values JSONB,
|
|
662
|
+
user_id UUID,
|
|
663
|
+
created_at TIMESTAMP WITH DEFAULT CURRENT_TIMESTAMP
|
|
664
|
+
);
|
|
665
|
+
|
|
666
|
+
-- Trigger para auditoria
|
|
667
|
+
CREATE OR REPLACE FUNCTION audit_trigger()
|
|
668
|
+
RETURNS TRIGGER AS $$
|
|
669
|
+
BEGIN
|
|
670
|
+
INSERT INTO audit_log (table_name, operation, old_values, new_values, user_id)
|
|
671
|
+
VALUES (
|
|
672
|
+
TG_TABLE_NAME,
|
|
673
|
+
TG_OP,
|
|
674
|
+
to_jsonb(OLD),
|
|
675
|
+
to_jsonb(NEW),
|
|
676
|
+
current_setting('app.current_user_id')::UUID
|
|
677
|
+
);
|
|
678
|
+
RETURN NEW;
|
|
679
|
+
END;
|
|
680
|
+
$$ LANGUAGE plpgsql;
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## 12. Constraints de Compliance
|
|
686
|
+
|
|
687
|
+
### 12.1 GDPR Compliance
|
|
688
|
+
- **Data Minimization:** Coletar apenas dados necessários
|
|
689
|
+
- **Data Protection:** Proteger dados pessoais
|
|
690
|
+
- **Right to Erasure:** Permitir exclusão
|
|
691
|
+
- **Consent Management:** Gerenciar consentimento
|
|
692
|
+
|
|
693
|
+
### 12.2 Constraints GDPR
|
|
694
|
+
```sql
|
|
695
|
+
-- Consentimento explícito
|
|
696
|
+
ALTER TABLE users
|
|
697
|
+
ADD CONSTRAINT ck_users_consent_given
|
|
698
|
+
CHECK (marketing_consent IS NOT NULL);
|
|
699
|
+
|
|
700
|
+
-- Data de consentimento
|
|
701
|
+
ALTER TABLE users
|
|
702
|
+
ADD CONSTRAINT ck_users_consent_date
|
|
703
|
+
CHECK (marketing_consent_at IS NOT NULL OR marketing_consent = false);
|
|
704
|
+
|
|
705
|
+
-- Direito ao esquecimento
|
|
706
|
+
ALTER TABLE users
|
|
707
|
+
ADD CONSTRAINT ck_users_deletion_request
|
|
708
|
+
CHECK (deletion_requested_at IS NULL OR deleted_at IS NOT NULL);
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
### 12.3 PCI DSS Compliance
|
|
712
|
+
- **Card Data:** Proteger dados de cartão
|
|
713
|
+
- **Encryption:** Criptografar dados sensíveis
|
|
714
|
+
- **Access Control:** Controle rigoroso
|
|
715
|
+
- **Audit Trail:** Registro completo
|
|
716
|
+
|
|
717
|
+
---
|
|
718
|
+
|
|
719
|
+
## 13. Constraints por Stack
|
|
720
|
+
|
|
721
|
+
### 13.1 PostgreSQL
|
|
722
|
+
```sql
|
|
723
|
+
-- Exclusion constraint (PostgreSQL 15+)
|
|
724
|
+
ALTER TABLE bookings
|
|
725
|
+
ADD CONSTRAINT ex_bookings_room_time
|
|
726
|
+
EXCLUDE USING gist (room WITH =, time_range WITH &&);
|
|
727
|
+
|
|
728
|
+
-- Generated columns
|
|
729
|
+
ALTER TABLE users
|
|
730
|
+
ADD COLUMN email_domain VARCHAR(255)
|
|
731
|
+
GENERATED ALWAYS AS (split_part(email, '@', 2)) STORED;
|
|
732
|
+
|
|
733
|
+
-- Partial unique index
|
|
734
|
+
CREATE UNIQUE INDEX CONCURRENTLY idx_users_email_active
|
|
735
|
+
ON users (email)
|
|
736
|
+
WHERE deleted_at IS NULL;
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
### 13.2 MySQL
|
|
740
|
+
```sql
|
|
741
|
+
-- Generated column (MySQL 5.7+)
|
|
742
|
+
ALTER TABLE users
|
|
743
|
+
ADD COLUMN email_domain VARCHAR(255)
|
|
744
|
+
GENERATED ALWAYS AS (SUBSTRING_INDEX(email, '@', -1)) STORED;
|
|
745
|
+
|
|
746
|
+
-- Check constraint (MySQL 8.0+)
|
|
747
|
+
ALTER TABLE users
|
|
748
|
+
ADD CONSTRAINT ck_users_email_format
|
|
749
|
+
CHECK (email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$');
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
### 13.3 MongoDB
|
|
753
|
+
```javascript
|
|
754
|
+
// Unique constraint
|
|
755
|
+
db.users.createIndex({ email: 1 }, { unique: true });
|
|
756
|
+
|
|
757
|
+
// Partial index
|
|
758
|
+
db.users.createIndex({ email: 1 }, {
|
|
759
|
+
unique: true,
|
|
760
|
+
partialFilterExpression: { deletedAt: null }
|
|
761
|
+
});
|
|
762
|
+
|
|
763
|
+
// Validation rules
|
|
764
|
+
db.createCollection("users", {
|
|
765
|
+
validator: {
|
|
766
|
+
$jsonSchema: {
|
|
767
|
+
bsonType: "object",
|
|
768
|
+
required: ["email", "username"],
|
|
769
|
+
properties: {
|
|
770
|
+
email: {
|
|
771
|
+
bsonType: "string",
|
|
772
|
+
pattern: "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
});
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
782
|
+
## 14. Manutenção de Constraints
|
|
783
|
+
|
|
784
|
+
### 14.1 Adição de Constraints
|
|
785
|
+
```sql
|
|
786
|
+
-- Adicionar constraint segura
|
|
787
|
+
-- Passo 1: Validar dados
|
|
788
|
+
SELECT COUNT(*) FROM [tabela] WHERE [condição];
|
|
789
|
+
|
|
790
|
+
-- Passo 2: Adicionar constraint
|
|
791
|
+
ALTER TABLE [tabela]
|
|
792
|
+
ADD CONSTRAINT [nome]
|
|
793
|
+
CHECK ([condição]);
|
|
794
|
+
|
|
795
|
+
-- Passo 3: Verificar
|
|
796
|
+
\d [tabela]
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
### 14.2 Remoção de Constraints
|
|
800
|
+
```sql
|
|
801
|
+
-- Remover constraint
|
|
802
|
+
ALTER TABLE [tabela]
|
|
803
|
+
DROP CONSTRAINT IF EXISTS [nome];
|
|
804
|
+
|
|
805
|
+
-- Remover constraint com cascade
|
|
806
|
+
ALTER TABLE [tabela]
|
|
807
|
+
DROP CONSTRAINT [nome] CASCADE;
|
|
808
|
+
```
|
|
809
|
+
|
|
810
|
+
### 14.3 Modificação de Constraints
|
|
811
|
+
```sql
|
|
812
|
+
-- PostgreSQL: Não é possível modificar, deve remover e recriar
|
|
813
|
+
ALTER TABLE [tabela]
|
|
814
|
+
DROP CONSTRAINT IF EXISTS [nome];
|
|
815
|
+
|
|
816
|
+
ALTER TABLE [tabela]
|
|
817
|
+
ADD CONSTRAINT [nome]
|
|
818
|
+
CHECK ([nova_condição]);
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
---
|
|
822
|
+
|
|
823
|
+
## 15. Troubleshooting
|
|
824
|
+
|
|
825
|
+
### 15.1 Common Issues
|
|
826
|
+
#### Constraint Violation
|
|
827
|
+
- **Sintoma:** ERRO: constraint violation
|
|
828
|
+
- **Causa:** Dados inconsistentes
|
|
829
|
+
- **Solução:** Limpar dados ou ajustar constraint
|
|
830
|
+
|
|
831
|
+
#### Performance Issues
|
|
832
|
+
- **Sintoma:** Queries lentas após adicionar constraints
|
|
833
|
+
- **Causa:** Índices faltando ou mal configurados
|
|
834
|
+
- **Solução:** Adicionar índices apropriados
|
|
835
|
+
|
|
836
|
+
#### Migration Issues
|
|
837
|
+
- **Sintoma:** Erro ao adicionar constraint
|
|
838
|
+
- **Causa:** Dados existentes violam constraint
|
|
839
|
+
- **Solução:** Limpar dados antes de adicionar
|
|
840
|
+
|
|
841
|
+
### 15.2 Debug Tools
|
|
842
|
+
```sql
|
|
843
|
+
-- Verificar constraints
|
|
844
|
+
SELECT conname, contype, pg_get_constraintdef(oid)
|
|
845
|
+
FROM pg_constraint
|
|
846
|
+
WHERE conrelid = '[tabela]'::regclass;
|
|
847
|
+
|
|
848
|
+
-- Verificar violações
|
|
849
|
+
SELECT * FROM [tabela]
|
|
850
|
+
WHERE NOT ([condição]);
|
|
851
|
+
|
|
852
|
+
-- Verificar dependências
|
|
853
|
+
SELECT * FROM pg_depend
|
|
854
|
+
WHERE refobjid = '[constraint]'::regclass;
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
---
|
|
858
|
+
|
|
859
|
+
## 16. Best Practices
|
|
860
|
+
|
|
861
|
+
### 16.1 Design Principles
|
|
862
|
+
- **Simplicity:** Constraints simples e claras
|
|
863
|
+
- **Consistency:** Convenções consistentes
|
|
864
|
+
- **Documentation:** Documentar regras
|
|
865
|
+
- **Testing:** Testar antes de deploy
|
|
866
|
+
|
|
867
|
+
### 16.2 Implementation Guidelines
|
|
868
|
+
- **Gradual:** Implementar gradualmente
|
|
869
|
+
- **Backward Compatible:** Não quebrar código existente
|
|
870
|
+
- **Tested:** Validar em staging
|
|
871
|
+
- **Monitored:** Monitorar impacto
|
|
872
|
+
|
|
873
|
+
### 16.3 Maintenance Guidelines
|
|
874
|
+
- **Regular Review:** Revisar periodicamente
|
|
875
|
+
- **Performance Monitoring:** Monitorar impacto
|
|
876
|
+
- **Documentation Update:** Manter docs atualizadas
|
|
877
|
+
- **Cleanup:** Remover constraints não utilizadas
|
|
878
|
+
|
|
879
|
+
---
|
|
880
|
+
|
|
881
|
+
## 17. Documentation
|
|
882
|
+
|
|
883
|
+
### 17.1 Constraint Dictionary
|
|
884
|
+
| Constraint | Table | Type | Description | SQL |
|
|
885
|
+
|------------|-------|------|-------------|-----|
|
|
886
|
+
| pk_users | users | PK | Primary key | PRIMARY KEY (id) |
|
|
887
|
+
| uk_users_email | users | Unique | Email único | UNIQUE (email) |
|
|
888
|
+
| ck_users_email_format | users | Check | Formato email | CHECK (email ~* '...') |
|
|
889
|
+
| fk_orders_user | orders | FK | Referência usuário | FOREIGN KEY (user_id) |
|
|
890
|
+
|
|
891
|
+
### 17.2 Business Rules Mapping
|
|
892
|
+
| Business Rule | Constraint | Table | Implementation |
|
|
893
|
+
|---------------|-----------|-------|----------------|
|
|
894
|
+
| Email único | uk_users_email | users | UNIQUE (email) |
|
|
895
|
+
| Salário positivo | ck_employees_salary | employees | CHECK (salary > 0) |
|
|
896
|
+
| Data válida | ck_contracts_dates | contracts | CHECK (end_date >= start_date) |
|
|
897
|
+
|
|
898
|
+
### 17.3 Change Log
|
|
899
|
+
| Date | Constraint | Action | Reason |
|
|
900
|
+
|------|------------|--------|--------|
|
|
901
|
+
| 2026-01-29 | uk_users_email | Created | Email uniqueness |
|
|
902
|
+
| 2026-01-29 | ck_users_email_format | Created | Email validation |
|
|
903
|
+
| 2026-01-30 | fk_orders_user | Created | Referential integrity |
|
|
904
|
+
|
|
905
|
+
---
|
|
906
|
+
|
|
907
|
+
## 18. Apêndice
|
|
908
|
+
|
|
909
|
+
### 18.1 Constraint Types
|
|
910
|
+
- **PRIMARY KEY:** Identificador único
|
|
911
|
+
- **FOREIGN KEY:** Integridade referencial
|
|
912
|
+
- **UNIQUE:** Unicidade de valores
|
|
913
|
+
- **CHECK:** Validação de regras
|
|
914
|
+
- **NOT NULL:** Campo obrigatório
|
|
915
|
+
- **DEFAULT:** Valor padrão
|
|
916
|
+
|
|
917
|
+
### 18.2 Naming Conventions
|
|
918
|
+
- **PK:** pk_[tabela]
|
|
919
|
+
- **FK:** fk_[tabela]_[referencia]
|
|
920
|
+
- **UK:** uk_[tabela]_[coluna]
|
|
921
|
+
- **CK:** ck_[tabela]_[regra]
|
|
922
|
+
|
|
923
|
+
### 18.3 References
|
|
924
|
+
- **PostgreSQL Constraints:** [Documentação oficial]
|
|
925
|
+
- **MySQL Constraints:** [Documentação oficial]
|
|
926
|
+
- **Database Design:** [Livro de referência]
|
|
927
|
+
- **SQL Constraints:** [Guia de referência]
|
|
928
|
+
|
|
929
|
+
---
|
|
930
|
+
|
|
931
|
+
**Status:** [Em elaboração/Revisão/Aprovado]
|
|
932
|
+
**Revisado por:** [Nome]
|
|
933
|
+
**Data da revisão:** [Data]
|
|
934
|
+
**Próxima revisão:** [Data]
|
|
935
|
+
**Versão:** [Versão]
|