@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
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
# Guia de Estratégias de Cache
|
|
2
|
-
|
|
3
|
-
> **Prioridade**: 🟡 MÉDIA
|
|
4
|
-
> **Aplicável a**: Projetos Nível 2 (Médio) e Nível 3 (Complexo)
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Por que Cache?
|
|
9
|
-
|
|
10
|
-
- **Latência**: Acesso a memória ~100ns vs disco ~10ms vs rede ~100ms
|
|
11
|
-
- **Throughput**: Reduz carga no banco de dados
|
|
12
|
-
- **Custo**: Menos recursos computacionais
|
|
13
|
-
- **Disponibilidade**: Continua servindo se origem falhar (stale data)
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Padrões de Cache
|
|
18
|
-
|
|
19
|
-
### 1. Cache-Aside (Lazy Loading)
|
|
20
|
-
|
|
21
|
-
O mais comum. Aplicação gerencia o cache.
|
|
22
|
-
|
|
23
|
-
```mermaid
|
|
24
|
-
sequenceDiagram
|
|
25
|
-
participant App
|
|
26
|
-
participant Cache
|
|
27
|
-
participant DB
|
|
28
|
-
|
|
29
|
-
App->>Cache: GET user:123
|
|
30
|
-
Cache-->>App: null (miss)
|
|
31
|
-
App->>DB: SELECT * FROM users WHERE id=123
|
|
32
|
-
DB-->>App: user data
|
|
33
|
-
App->>Cache: SET user:123 = data
|
|
34
|
-
App-->>Client: user data
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
async function getUser(id: string): Promise<User> {
|
|
39
|
-
const cacheKey = `user:${id}`;
|
|
40
|
-
|
|
41
|
-
// 1. Tentar cache
|
|
42
|
-
const cached = await redis.get(cacheKey);
|
|
43
|
-
if (cached) {
|
|
44
|
-
return JSON.parse(cached);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// 2. Buscar no banco
|
|
48
|
-
const user = await db.users.findById(id);
|
|
49
|
-
|
|
50
|
-
// 3. Popular cache
|
|
51
|
-
if (user) {
|
|
52
|
-
await redis.setex(cacheKey, 3600, JSON.stringify(user));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return user;
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Prós**: Simples, só cacheia o que é acessado
|
|
60
|
-
**Contras**: Cache miss inicial, dados podem ficar stale
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### 2. Write-Through
|
|
65
|
-
|
|
66
|
-
Escreve no cache E no banco simultaneamente.
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
async function updateUser(id: string, data: Partial<User>): Promise<User> {
|
|
70
|
-
// 1. Atualizar banco
|
|
71
|
-
const user = await db.users.update(id, data);
|
|
72
|
-
|
|
73
|
-
// 2. Atualizar cache imediatamente
|
|
74
|
-
await redis.setex(`user:${id}`, 3600, JSON.stringify(user));
|
|
75
|
-
|
|
76
|
-
return user;
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Prós**: Cache sempre atualizado
|
|
81
|
-
**Contras**: Latência de escrita dobra, escreve dados que talvez não sejam lidos
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
### 3. Write-Behind (Write-Back)
|
|
86
|
-
|
|
87
|
-
Escreve no cache, async para banco.
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
async function updateUser(id: string, data: Partial<User>): Promise<User> {
|
|
91
|
-
// 1. Atualizar só no cache
|
|
92
|
-
const user = { ...await getCachedUser(id), ...data };
|
|
93
|
-
await redis.setex(`user:${id}`, 3600, JSON.stringify(user));
|
|
94
|
-
|
|
95
|
-
// 2. Enfileirar escrita no banco
|
|
96
|
-
await queue.add('sync-user-to-db', { id, data });
|
|
97
|
-
|
|
98
|
-
return user;
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Prós**: Escrita super rápida, batch possível
|
|
103
|
-
**Contras**: Risco de perda de dados, complexidade
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
### 4. Read-Through
|
|
108
|
-
|
|
109
|
-
Cache é um proxy transparente.
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
// O cache gerencia a busca automaticamente
|
|
113
|
-
const user = await cache.get('user:123', {
|
|
114
|
-
fallback: () => db.users.findById('123'),
|
|
115
|
-
ttl: 3600
|
|
116
|
-
});
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**Prós**: Código limpo, abstração total
|
|
120
|
-
**Contras**: Menos controle, dependência do cache library
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Estratégias de Invalidação
|
|
125
|
-
|
|
126
|
-
> "There are only two hard things in Computer Science: cache invalidation and naming things."
|
|
127
|
-
|
|
128
|
-
### 1. TTL (Time-To-Live)
|
|
129
|
-
|
|
130
|
-
```typescript
|
|
131
|
-
// Cache expira automaticamente
|
|
132
|
-
await redis.setex('user:123', 3600, data); // 1 hora
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**Usar quando**: Dados mudam pouco, stale data aceitável
|
|
136
|
-
|
|
137
|
-
### 2. Invalidação Explícita
|
|
138
|
-
|
|
139
|
-
```typescript
|
|
140
|
-
async function updateUser(id: string, data: any) {
|
|
141
|
-
await db.users.update(id, data);
|
|
142
|
-
await redis.del(`user:${id}`);
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Usar quando**: Consistência importante
|
|
147
|
-
|
|
148
|
-
### 3. Event-Driven Invalidation
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
// Producer
|
|
152
|
-
eventBus.emit('user.updated', { userId: '123' });
|
|
153
|
-
|
|
154
|
-
// Consumer
|
|
155
|
-
eventBus.on('user.updated', async ({ userId }) => {
|
|
156
|
-
await redis.del(`user:${userId}`);
|
|
157
|
-
await redis.del(`user-profile:${userId}`);
|
|
158
|
-
});
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**Usar quando**: Múltiplos caches afetados, microserviços
|
|
162
|
-
|
|
163
|
-
### 4. Cache Tags
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
// Cachear com tags
|
|
167
|
-
await cache.set('product:123', data, {
|
|
168
|
-
tags: ['products', 'category:electronics']
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
// Invalidar por tag
|
|
172
|
-
await cache.invalidateTag('category:electronics');
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**Usar quando**: Muitos itens relacionados precisam invalidar juntos
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Padrões Avançados
|
|
180
|
-
|
|
181
|
-
### Stale-While-Revalidate
|
|
182
|
-
|
|
183
|
-
Retorna stale imediatamente, atualiza em background.
|
|
184
|
-
|
|
185
|
-
```typescript
|
|
186
|
-
async function getWithSWR(key: string, fetcher: () => Promise<any>) {
|
|
187
|
-
const cached = await redis.get(key);
|
|
188
|
-
|
|
189
|
-
if (cached) {
|
|
190
|
-
const data = JSON.parse(cached);
|
|
191
|
-
|
|
192
|
-
// Se próximo de expirar, revalidar em background
|
|
193
|
-
if (data._expiresAt < Date.now() + 60000) {
|
|
194
|
-
refreshInBackground(key, fetcher);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return data.value;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return fetchAndCache(key, fetcher);
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### Cache Stampede Prevention
|
|
205
|
-
|
|
206
|
-
Evita que muitas requisições simultâneas busquem a mesma coisa.
|
|
207
|
-
|
|
208
|
-
```typescript
|
|
209
|
-
const locks = new Map<string, Promise<any>>();
|
|
210
|
-
|
|
211
|
-
async function getWithLock(key: string, fetcher: () => Promise<any>) {
|
|
212
|
-
const cached = await redis.get(key);
|
|
213
|
-
if (cached) return JSON.parse(cached);
|
|
214
|
-
|
|
215
|
-
// Se já tem requisição em andamento, esperar ela
|
|
216
|
-
if (locks.has(key)) {
|
|
217
|
-
return locks.get(key);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// Criar lock
|
|
221
|
-
const promise = fetcher().then(async (data) => {
|
|
222
|
-
await redis.setex(key, 3600, JSON.stringify(data));
|
|
223
|
-
locks.delete(key);
|
|
224
|
-
return data;
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
locks.set(key, promise);
|
|
228
|
-
return promise;
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### Multi-Layer Cache
|
|
233
|
-
|
|
234
|
-
```
|
|
235
|
-
Browser Cache → CDN → Application Cache → Database
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
```typescript
|
|
239
|
-
async function getProduct(id: string) {
|
|
240
|
-
// L1: In-memory (LRU)
|
|
241
|
-
if (memoryCache.has(id)) {
|
|
242
|
-
return memoryCache.get(id);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// L2: Redis
|
|
246
|
-
const cached = await redis.get(`product:${id}`);
|
|
247
|
-
if (cached) {
|
|
248
|
-
const data = JSON.parse(cached);
|
|
249
|
-
memoryCache.set(id, data);
|
|
250
|
-
return data;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// L3: Database
|
|
254
|
-
const product = await db.products.findById(id);
|
|
255
|
-
|
|
256
|
-
// Populate caches
|
|
257
|
-
await redis.setex(`product:${id}`, 3600, JSON.stringify(product));
|
|
258
|
-
memoryCache.set(id, product);
|
|
259
|
-
|
|
260
|
-
return product;
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## Cache para diferentes tipos de dados
|
|
267
|
-
|
|
268
|
-
| Tipo de Dado | TTL Sugerido | Estratégia |
|
|
269
|
-
|--------------|--------------|------------|
|
|
270
|
-
| Dados de usuário | 5-15 min | Cache-aside + invalidação no update |
|
|
271
|
-
| Configurações | 1-24 horas | Read-through + event invalidation |
|
|
272
|
-
| Catálogo/produtos | 15-60 min | Cache-aside + SWR |
|
|
273
|
-
| Sessions | Até expirar | Write-through |
|
|
274
|
-
| Rate limit counters | 1-60 seg | Write-through |
|
|
275
|
-
| Agregações/reports | 5-60 min | Pre-computed, refresh periódico |
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## Redis Patterns
|
|
280
|
-
|
|
281
|
-
### Hash para objetos
|
|
282
|
-
|
|
283
|
-
```typescript
|
|
284
|
-
// Mais eficiente que JSON serializado
|
|
285
|
-
await redis.hset('user:123', {
|
|
286
|
-
name: 'John',
|
|
287
|
-
email: 'john@example.com',
|
|
288
|
-
role: 'admin'
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
// Buscar campo específico
|
|
292
|
-
const email = await redis.hget('user:123', 'email');
|
|
293
|
-
|
|
294
|
-
// Buscar tudo
|
|
295
|
-
const user = await redis.hgetall('user:123');
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### Sorted Set para rankings/feeds
|
|
299
|
-
|
|
300
|
-
```typescript
|
|
301
|
-
// Adicionar item com score (timestamp)
|
|
302
|
-
await redis.zadd('user:123:feed', Date.now(), postId);
|
|
303
|
-
|
|
304
|
-
// Buscar últimos 20
|
|
305
|
-
const recent = await redis.zrevrange('user:123:feed', 0, 19);
|
|
306
|
-
|
|
307
|
-
// Remover antigos
|
|
308
|
-
await redis.zremrangebyrank('user:123:feed', 0, -101); // Manter só 100
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
### Set para tags/relacionamentos
|
|
312
|
-
|
|
313
|
-
```typescript
|
|
314
|
-
// Adicionar tags
|
|
315
|
-
await redis.sadd('product:123:tags', 'electronics', 'sale', 'featured');
|
|
316
|
-
|
|
317
|
-
// Buscar produtos com múltiplas tags
|
|
318
|
-
const products = await redis.sinter('tag:electronics', 'tag:sale');
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Checklist de Implementação
|
|
324
|
-
|
|
325
|
-
- [ ] Padrão de cache definido por tipo de dado
|
|
326
|
-
- [ ] TTLs configurados apropriadamente
|
|
327
|
-
- [ ] Estratégia de invalidação documentada
|
|
328
|
-
- [ ] Proteção contra cache stampede
|
|
329
|
-
- [ ] Monitoramento de hit/miss ratio
|
|
330
|
-
- [ ] Alertas para Redis indisponível
|
|
331
|
-
- [ ] Fallback gracioso se cache falhar
|
|
332
|
-
- [ ] Testes com cache habilitado E desabilitado
|
|
333
|
-
|
|
334
|
-
---
|
|
335
|
-
|
|
336
|
-
## Métricas para Monitorar
|
|
337
|
-
|
|
338
|
-
| Métrica | Alerta se... |
|
|
339
|
-
|---------|--------------|
|
|
340
|
-
| Hit Rate | < 80% (depende do caso) |
|
|
341
|
-
| Latência p99 | > 10ms |
|
|
342
|
-
| Memória usada | > 80% do disponível |
|
|
343
|
-
| Evictions | Taxa alta inesperada |
|
|
344
|
-
| Conexões | Próximo do max |
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## Referências
|
|
349
|
-
|
|
350
|
-
- [Redis Best Practices](https://redis.io/docs/manual/patterns/)
|
|
351
|
-
- [Caching Strategies](https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/)
|
|
352
|
-
- [Facebook TAO](https://www.usenix.org/system/files/conference/atc13/atc13-bronson.pdf)
|
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
# Guia de Migrations Zero-Downtime
|
|
2
|
-
|
|
3
|
-
> **Prioridade**: 🟠 ALTA
|
|
4
|
-
> **Aplicável a**: Projetos Nível 2 (Médio) e Nível 3 (Complexo)
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## O Problema
|
|
9
|
-
|
|
10
|
-
Migrations tradicionais podem causar:
|
|
11
|
-
- **Downtime** durante alterações de schema
|
|
12
|
-
- **Erros** em deploys blue-green (versão antiga vs nova)
|
|
13
|
-
- **Locks** em tabelas grandes (minutos a horas)
|
|
14
|
-
- **Rollback impossível** após aplicar destructive changes
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Princípios Fundamentais
|
|
19
|
-
|
|
20
|
-
### 1. Backward Compatibility
|
|
21
|
-
|
|
22
|
-
Toda migration deve ser compatível com a versão **anterior** do código por pelo menos um ciclo de deploy.
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Deploy N: Código v1 + Schema v1
|
|
26
|
-
Deploy N+1: Código v2 + Schema v2 (compatível com v1)
|
|
27
|
-
Deploy N+2: Código v2 + Schema v3 (pode remover compatibilidade)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### 2. Expand-Contract Pattern
|
|
31
|
-
|
|
32
|
-
Nunca faça alterações destrutivas diretamente.
|
|
33
|
-
|
|
34
|
-
```mermaid
|
|
35
|
-
graph LR
|
|
36
|
-
A[Estado Inicial] -->|1. Expand| B[Adiciona novo]
|
|
37
|
-
B -->|2. Migrate| C[Transfere dados]
|
|
38
|
-
C -->|3. Contract| D[Remove antigo]
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### 3. Small, Incremental Changes
|
|
42
|
-
|
|
43
|
-
- Uma alteração por migration
|
|
44
|
-
- Migrations devem ser rápidas (< 1 segundo em tabelas grandes)
|
|
45
|
-
- Rollback sempre possível
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Padrões de Migration
|
|
50
|
-
|
|
51
|
-
### Adicionar Coluna (Seguro ✅)
|
|
52
|
-
|
|
53
|
-
```sql
|
|
54
|
-
-- Step 1: Adicionar coluna nullable ou com default
|
|
55
|
-
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
|
|
56
|
-
|
|
57
|
-
-- Step 2: (Código) Deploy versão que escreve na nova coluna
|
|
58
|
-
-- Step 3: (Job) Preencher dados antigos se necessário
|
|
59
|
-
-- Step 4: (Código) Deploy versão que lê da nova coluna
|
|
60
|
-
-- Step 5: (Se necessário) Tornar NOT NULL
|
|
61
|
-
ALTER TABLE users ALTER COLUMN phone SET NOT NULL;
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Renomear Coluna (⚠️ Requer Cuidado)
|
|
65
|
-
|
|
66
|
-
**❌ NUNCA FAÇA:**
|
|
67
|
-
```sql
|
|
68
|
-
ALTER TABLE users RENAME COLUMN name TO full_name;
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**✅ FAÇA EM 3 DEPLOYS:**
|
|
72
|
-
|
|
73
|
-
```sql
|
|
74
|
-
-- Deploy 1: Adicionar nova coluna
|
|
75
|
-
ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
|
|
76
|
-
|
|
77
|
-
-- Deploy 1: Trigger para sincronizar (opcional, ou fazer no código)
|
|
78
|
-
CREATE TRIGGER sync_name_columns
|
|
79
|
-
BEFORE INSERT OR UPDATE ON users
|
|
80
|
-
FOR EACH ROW
|
|
81
|
-
EXECUTE FUNCTION sync_name_to_full_name();
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
```python
|
|
85
|
-
# Deploy 2: Código escreve em ambas, lê da nova
|
|
86
|
-
def update_user(user_id, name):
|
|
87
|
-
db.execute("""
|
|
88
|
-
UPDATE users
|
|
89
|
-
SET name = %s, full_name = %s
|
|
90
|
-
WHERE id = %s
|
|
91
|
-
""", name, name, user_id)
|
|
92
|
-
|
|
93
|
-
def get_user(user_id):
|
|
94
|
-
# Lê da nova coluna
|
|
95
|
-
return db.query("SELECT full_name FROM users WHERE id = %s", user_id)
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
```sql
|
|
99
|
-
-- Deploy 3: Remover coluna antiga
|
|
100
|
-
ALTER TABLE users DROP COLUMN name;
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Remover Coluna (⚠️ 2 Deploys)
|
|
104
|
-
|
|
105
|
-
```python
|
|
106
|
-
# Deploy 1: Código para de usar a coluna
|
|
107
|
-
# (mas schema ainda tem a coluna)
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
```sql
|
|
111
|
-
-- Deploy 2: Remover coluna (depois que código antigo não está mais ativo)
|
|
112
|
-
ALTER TABLE users DROP COLUMN legacy_field;
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Adicionar Índice (⚠️ Pode Bloquear)
|
|
116
|
-
|
|
117
|
-
**❌ Bloqueia tabela:**
|
|
118
|
-
```sql
|
|
119
|
-
CREATE INDEX idx_users_email ON users(email);
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**✅ Não bloqueia (PostgreSQL):**
|
|
123
|
-
```sql
|
|
124
|
-
CREATE INDEX CONCURRENTLY idx_users_email ON users(email);
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**✅ Não bloqueia (MySQL 8+):**
|
|
128
|
-
```sql
|
|
129
|
-
ALTER TABLE users ADD INDEX idx_email (email), ALGORITHM=INPLACE, LOCK=NONE;
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Alterar Tipo de Coluna (⚠️ Complexo)
|
|
133
|
-
|
|
134
|
-
Use o Expand-Contract:
|
|
135
|
-
|
|
136
|
-
```sql
|
|
137
|
-
-- Step 1: Adiciona nova coluna
|
|
138
|
-
ALTER TABLE orders ADD COLUMN amount_cents BIGINT;
|
|
139
|
-
|
|
140
|
-
-- Step 2: Trigger ou código para sincronizar
|
|
141
|
-
-- Step 3: Backfill job
|
|
142
|
-
UPDATE orders SET amount_cents = amount * 100 WHERE amount_cents IS NULL;
|
|
143
|
-
|
|
144
|
-
-- Step 4: Código usa nova coluna
|
|
145
|
-
-- Step 5: Remove coluna antiga
|
|
146
|
-
ALTER TABLE orders DROP COLUMN amount;
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## Migrations em Tabelas Grandes
|
|
152
|
-
|
|
153
|
-
Para tabelas com milhões de registros:
|
|
154
|
-
|
|
155
|
-
### Técnica 1: Batch Processing
|
|
156
|
-
|
|
157
|
-
```python
|
|
158
|
-
def backfill_in_batches(batch_size=1000):
|
|
159
|
-
while True:
|
|
160
|
-
affected = db.execute("""
|
|
161
|
-
UPDATE users
|
|
162
|
-
SET new_column = compute_value(old_column)
|
|
163
|
-
WHERE new_column IS NULL
|
|
164
|
-
LIMIT %s
|
|
165
|
-
""", batch_size)
|
|
166
|
-
|
|
167
|
-
if affected == 0:
|
|
168
|
-
break
|
|
169
|
-
|
|
170
|
-
time.sleep(0.1) # Evita sobrecarga
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### Técnica 2: pt-online-schema-change (MySQL)
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
pt-online-schema-change --execute \
|
|
177
|
-
--alter "ADD COLUMN phone VARCHAR(20)" \
|
|
178
|
-
D=mydb,t=users
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### Técnica 3: gh-ost (MySQL)
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
gh-ost \
|
|
185
|
-
--database=mydb \
|
|
186
|
-
--table=users \
|
|
187
|
-
--alter="ADD COLUMN phone VARCHAR(20)" \
|
|
188
|
-
--execute
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Técnica 4: pgroll (PostgreSQL)
|
|
192
|
-
|
|
193
|
-
```yaml
|
|
194
|
-
# migration.yaml
|
|
195
|
-
operations:
|
|
196
|
-
- add_column:
|
|
197
|
-
table: users
|
|
198
|
-
column:
|
|
199
|
-
name: phone
|
|
200
|
-
type: varchar(20)
|
|
201
|
-
nullable: true
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## Feature Flags para Schema
|
|
207
|
-
|
|
208
|
-
Controle quais versões do código usam qual schema:
|
|
209
|
-
|
|
210
|
-
```python
|
|
211
|
-
# config/feature_flags.py
|
|
212
|
-
SCHEMA_V2_ENABLED = os.getenv('SCHEMA_V2_ENABLED', 'false') == 'true'
|
|
213
|
-
|
|
214
|
-
# models/user.py
|
|
215
|
-
class User:
|
|
216
|
-
def get_display_name(self):
|
|
217
|
-
if SCHEMA_V2_ENABLED:
|
|
218
|
-
return self.full_name
|
|
219
|
-
return self.name
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## Rollback Strategies
|
|
225
|
-
|
|
226
|
-
### Migrations Reversíveis
|
|
227
|
-
|
|
228
|
-
```python
|
|
229
|
-
# Django
|
|
230
|
-
class Migration(migrations.Migration):
|
|
231
|
-
operations = [
|
|
232
|
-
migrations.AddField(
|
|
233
|
-
model_name='user',
|
|
234
|
-
name='phone',
|
|
235
|
-
field=models.CharField(max_length=20, null=True),
|
|
236
|
-
),
|
|
237
|
-
]
|
|
238
|
-
|
|
239
|
-
def reverse(self):
|
|
240
|
-
# Explícito: remover o campo
|
|
241
|
-
pass
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
### Sempre Tenha Backup
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# Antes de migrations em produção
|
|
248
|
-
pg_dump -Fc mydb > backup_before_migration_$(date +%Y%m%d).dump
|
|
249
|
-
|
|
250
|
-
# Verificar que backup é restaurável
|
|
251
|
-
pg_restore --list backup.dump
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
## Checklist de Migration
|
|
257
|
-
|
|
258
|
-
### Antes da Migration
|
|
259
|
-
|
|
260
|
-
- [ ] Migration testada em ambiente de staging
|
|
261
|
-
- [ ] Tempo de execução medido em dataset similar ao prod
|
|
262
|
-
- [ ] Plano de rollback documentado
|
|
263
|
-
- [ ] Backup recente verificado
|
|
264
|
-
- [ ] Horário de baixo tráfego escolhido (se necessário)
|
|
265
|
-
|
|
266
|
-
### Durante a Migration
|
|
267
|
-
|
|
268
|
-
- [ ] Monitorar locks e tempo de execução
|
|
269
|
-
- [ ] Monitorar CPU/memória do banco
|
|
270
|
-
- [ ] Logs de aplicação para erros
|
|
271
|
-
- [ ] Comunicação com time se demorar
|
|
272
|
-
|
|
273
|
-
### Após a Migration
|
|
274
|
-
|
|
275
|
-
- [ ] Verificar integridade dos dados
|
|
276
|
-
- [ ] Remover código/colunas legadas no próximo deploy
|
|
277
|
-
- [ ] Atualizar documentação de schema
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## Ferramentas por Stack
|
|
282
|
-
|
|
283
|
-
| Stack | Ferramenta | Recursos |
|
|
284
|
-
|-------|-----------|----------|
|
|
285
|
-
| **PostgreSQL** | pgroll, Flyway | Online DDL, versioning |
|
|
286
|
-
| **MySQL** | gh-ost, pt-osc | Zero-downtime ALTERs |
|
|
287
|
-
| **Rails** | strong_migrations | Bloqueia migrations perigosas |
|
|
288
|
-
| **Django** | django-pg-zero-downtime-migrations | Checks automáticos |
|
|
289
|
-
| **Node.js** | TypeORM, Prisma | Migrations declarativas |
|
|
290
|
-
| **Java** | Flyway, Liquibase | Enterprise-ready |
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## Anti-Patterns
|
|
295
|
-
|
|
296
|
-
| ❌ Não Faça | ✅ Faça Assim |
|
|
297
|
-
|-------------|---------------|
|
|
298
|
-
| Renomear coluna diretamente | Expand-Contract em 3 deploys |
|
|
299
|
-
| Alterar tipo diretamente | Nova coluna + migrar dados |
|
|
300
|
-
| DROP COLUMN com código usando | Remover uso no código primeiro |
|
|
301
|
-
| CREATE INDEX sem CONCURRENTLY | Usar CONCURRENTLY ou online DDL |
|
|
302
|
-
| Múltiplas alterações em uma migration | Uma alteração por migration |
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## Referências
|
|
307
|
-
|
|
308
|
-
- [Stripe - Online Migrations at Scale](https://stripe.com/blog/online-migrations)
|
|
309
|
-
- [GitHub - gh-ost](https://github.com/github/gh-ost)
|
|
310
|
-
- [PostgreSQL - ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html)
|
|
311
|
-
- [Strong Migrations (Rails)](https://github.com/ankane/strong_migrations)
|