@maestro-ai/mcp-server 1.2.0 → 2.0.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/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/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/stdio.js +184 -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/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/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/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +27 -1
- 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 +45 -8
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +28 -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 +14 -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 +38 -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/prompt-mapper.d.ts +46 -0
- package/dist/utils/prompt-mapper.d.ts.map +1 -1
- package/dist/utils/prompt-mapper.js +100 -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,794 @@
|
|
|
1
|
+
# MCP Functions - Análise de Testes
|
|
2
|
+
|
|
3
|
+
## Visão Geral
|
|
4
|
+
|
|
5
|
+
Funções de referência para implementação MCP externa. Estas funções fornecem a lógica para automação, validação e processamento da estratégia de testes.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Inicialização da Estratégia de Testes
|
|
10
|
+
|
|
11
|
+
### `init_testing_strategy(project_path: str) -> Dict`
|
|
12
|
+
|
|
13
|
+
**Descrição:** Inicializa a estratégia de testes para um novo projeto, criando estrutura base e configurações iniciais.
|
|
14
|
+
|
|
15
|
+
**Parâmetros:**
|
|
16
|
+
- `project_path`: Caminho do projeto a ser configurado
|
|
17
|
+
|
|
18
|
+
**Retorno:** Dict com status e informações da inicialização
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
async def init_testing_strategy(project_path: str) -> Dict:
|
|
22
|
+
"""
|
|
23
|
+
Inicializa estratégia completa de testes para o projeto
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
project_path: Caminho absoluto do projeto
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
Dict com resultado da inicialização
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
# 1. Detectar stack tecnológica
|
|
33
|
+
tech_stack = await detect_tech_stack(project_path)
|
|
34
|
+
|
|
35
|
+
# 2. Criar estrutura de diretórios
|
|
36
|
+
await create_testing_structure(project_path)
|
|
37
|
+
|
|
38
|
+
# 3. Gerar configurações baseadas na stack
|
|
39
|
+
await generate_test_configs(project_path, tech_stack)
|
|
40
|
+
|
|
41
|
+
# 4. Criar templates iniciais
|
|
42
|
+
await create_initial_templates(project_path)
|
|
43
|
+
|
|
44
|
+
# 5. Configurar pipeline CI/CD
|
|
45
|
+
await setup_ci_pipeline(project_path, tech_stack)
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
"status": "success",
|
|
49
|
+
"tech_stack": tech_stack,
|
|
50
|
+
"structure_created": True,
|
|
51
|
+
"configs_generated": True,
|
|
52
|
+
"next_steps": [
|
|
53
|
+
"Revisar configurações geradas",
|
|
54
|
+
"Executar testes iniciais",
|
|
55
|
+
"Configurar ambiente de testes",
|
|
56
|
+
"Treinar equipe nos padrões"
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async def detect_tech_stack(project_path: str) -> Dict:
|
|
61
|
+
"""Detecta stack tecnológica do projeto"""
|
|
62
|
+
|
|
63
|
+
stack = {
|
|
64
|
+
"frontend": None,
|
|
65
|
+
"backend": None,
|
|
66
|
+
"database": None,
|
|
67
|
+
"testing_frameworks": []
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# Detectar frontend
|
|
71
|
+
if os.path.exists(f"{project_path}/package.json"):
|
|
72
|
+
with open(f"{project_path}/package.json") as f:
|
|
73
|
+
package_json = json.load(f)
|
|
74
|
+
deps = {**package_json.get("dependencies", {}),
|
|
75
|
+
**package_json.get("devDependencies", {})}
|
|
76
|
+
|
|
77
|
+
if "react" in deps:
|
|
78
|
+
stack["frontend"] = "react"
|
|
79
|
+
elif "vue" in deps:
|
|
80
|
+
stack["frontend"] = "vue"
|
|
81
|
+
elif "angular" in deps:
|
|
82
|
+
stack["frontend"] = "angular"
|
|
83
|
+
|
|
84
|
+
if "jest" in deps:
|
|
85
|
+
stack["testing_frameworks"].append("jest")
|
|
86
|
+
if "playwright" in deps:
|
|
87
|
+
stack["testing_frameworks"].append("playwright")
|
|
88
|
+
|
|
89
|
+
# Detectar backend
|
|
90
|
+
if os.path.exists(f"{project_path}/requirements.txt"):
|
|
91
|
+
stack["backend"] = "python"
|
|
92
|
+
elif os.path.exists(f"{project_path}/pom.xml"):
|
|
93
|
+
stack["backend"] = "java"
|
|
94
|
+
elif os.path.exists(f"{project_path}/composer.json"):
|
|
95
|
+
stack["backend"] = "php"
|
|
96
|
+
|
|
97
|
+
# Detectar database
|
|
98
|
+
if os.path.exists(f"{project_path}/docker-compose.yml"):
|
|
99
|
+
with open(f"{project_path}/docker-compose.yml") as f:
|
|
100
|
+
docker_compose = yaml.safe_load(f)
|
|
101
|
+
services = docker_compose.get("services", {})
|
|
102
|
+
|
|
103
|
+
if "postgres" in services or "postgresql" in services:
|
|
104
|
+
stack["database"] = "postgresql"
|
|
105
|
+
elif "mysql" in services:
|
|
106
|
+
stack["database"] = "mysql"
|
|
107
|
+
elif "mongodb" in services:
|
|
108
|
+
stack["database"] = "mongodb"
|
|
109
|
+
|
|
110
|
+
return stack
|
|
111
|
+
|
|
112
|
+
async def create_testing_structure(project_path: str) -> None:
|
|
113
|
+
"""Cria estrutura de diretórios de testes"""
|
|
114
|
+
|
|
115
|
+
directories = [
|
|
116
|
+
"tests/unit",
|
|
117
|
+
"tests/integration",
|
|
118
|
+
"tests/e2e",
|
|
119
|
+
"tests/performance",
|
|
120
|
+
"tests/security",
|
|
121
|
+
"tests/fixtures",
|
|
122
|
+
"tests/helpers",
|
|
123
|
+
"tests/config",
|
|
124
|
+
"docs/09-testes"
|
|
125
|
+
]
|
|
126
|
+
|
|
127
|
+
for directory in directories:
|
|
128
|
+
os.makedirs(f"{project_path}/{directory}", exist_ok=True)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 2. Validação de Qualidade
|
|
134
|
+
|
|
135
|
+
### `validate_testing_quality(project_path: str) -> Dict`
|
|
136
|
+
|
|
137
|
+
**Descrição:** Valida a qualidade da estratégia de testes atual, calculando score e identificando gaps.
|
|
138
|
+
|
|
139
|
+
**Parâmetros:**
|
|
140
|
+
- `project_path`: Caminho do projeto para análise
|
|
141
|
+
|
|
142
|
+
**Retorno:** Dict com métricas, score e recomendações
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
async def validate_testing_quality(project_path: str) -> Dict:
|
|
146
|
+
"""
|
|
147
|
+
Valida qualidade completa da estratégia de testes
|
|
148
|
+
|
|
149
|
+
Args:
|
|
150
|
+
project_path: Caminho do projeto
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
Dict com métricas detalhadas e recomendações
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
# 1. Analisar estrutura de testes
|
|
157
|
+
structure_analysis = await analyze_test_structure(project_path)
|
|
158
|
+
|
|
159
|
+
# 2. Calcular cobertura de código
|
|
160
|
+
coverage_analysis = await analyze_code_coverage(project_path)
|
|
161
|
+
|
|
162
|
+
# 3. Avaliar qualidade dos testes
|
|
163
|
+
quality_analysis = await analyze_test_quality(project_path)
|
|
164
|
+
|
|
165
|
+
# 4. Verificar automação
|
|
166
|
+
automation_analysis = await analyze_automation(project_path)
|
|
167
|
+
|
|
168
|
+
# 5. Analisar segurança
|
|
169
|
+
security_analysis = await analyze_security_tests(project_path)
|
|
170
|
+
|
|
171
|
+
# 6. Calcular score geral
|
|
172
|
+
overall_score = calculate_overall_score([
|
|
173
|
+
structure_analysis,
|
|
174
|
+
coverage_analysis,
|
|
175
|
+
quality_analysis,
|
|
176
|
+
automation_analysis,
|
|
177
|
+
security_analysis
|
|
178
|
+
])
|
|
179
|
+
|
|
180
|
+
return {
|
|
181
|
+
"overall_score": overall_score,
|
|
182
|
+
"status": get_quality_status(overall_score),
|
|
183
|
+
"analyses": {
|
|
184
|
+
"structure": structure_analysis,
|
|
185
|
+
"coverage": coverage_analysis,
|
|
186
|
+
"quality": quality_analysis,
|
|
187
|
+
"automation": automation_analysis,
|
|
188
|
+
"security": security_analysis
|
|
189
|
+
},
|
|
190
|
+
"recommendations": generate_recommendations(overall_score),
|
|
191
|
+
"gaps": identify_gaps(overall_score),
|
|
192
|
+
"next_steps": generate_action_plan(overall_score)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async def analyze_test_structure(project_path: str) -> Dict:
|
|
196
|
+
"""Analisa estrutura organizacional dos testes"""
|
|
197
|
+
|
|
198
|
+
structure_score = 0
|
|
199
|
+
max_score = 100
|
|
200
|
+
findings = []
|
|
201
|
+
|
|
202
|
+
# Verificar diretórios obrigatórios
|
|
203
|
+
required_dirs = [
|
|
204
|
+
"tests/unit",
|
|
205
|
+
"tests/integration",
|
|
206
|
+
"tests/e2e",
|
|
207
|
+
"tests/fixtures"
|
|
208
|
+
]
|
|
209
|
+
|
|
210
|
+
existing_dirs = 0
|
|
211
|
+
for dir_path in required_dirs:
|
|
212
|
+
if os.path.exists(f"{project_path}/{dir_path}"):
|
|
213
|
+
existing_dirs += 1
|
|
214
|
+
else:
|
|
215
|
+
findings.append(f"Diretório ausente: {dir_path}")
|
|
216
|
+
|
|
217
|
+
structure_score += (existing_dirs / len(required_dirs)) * 30
|
|
218
|
+
|
|
219
|
+
# Verificar arquivos de configuração
|
|
220
|
+
config_files = [
|
|
221
|
+
"jest.config.js",
|
|
222
|
+
"playwright.config.ts",
|
|
223
|
+
"pytest.ini",
|
|
224
|
+
"docker-compose.test.yml"
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
existing_configs = 0
|
|
228
|
+
for config_file in config_files:
|
|
229
|
+
if os.path.exists(f"{project_path}/{config_file}"):
|
|
230
|
+
existing_configs += 1
|
|
231
|
+
|
|
232
|
+
structure_score += (existing_configs / len(config_files)) * 20
|
|
233
|
+
|
|
234
|
+
# Verificar documentação
|
|
235
|
+
doc_files = [
|
|
236
|
+
"docs/09-testes/plano-testes.md",
|
|
237
|
+
"docs/09-testes/matriz-rastreabilidade.md"
|
|
238
|
+
]
|
|
239
|
+
|
|
240
|
+
existing_docs = 0
|
|
241
|
+
for doc_file in doc_files:
|
|
242
|
+
if os.path.exists(f"{project_path}/{doc_file}"):
|
|
243
|
+
existing_docs += 1
|
|
244
|
+
else:
|
|
245
|
+
findings.append(f"Documentação ausente: {doc_file}")
|
|
246
|
+
|
|
247
|
+
structure_score += (existing_docs / len(doc_files)) * 20
|
|
248
|
+
|
|
249
|
+
# Verificar organização dos testes
|
|
250
|
+
test_files = glob.glob(f"{project_path}/tests/**/*.test.*", recursive=True)
|
|
251
|
+
if len(test_files) > 0:
|
|
252
|
+
structure_score += 20
|
|
253
|
+
|
|
254
|
+
# Verificar nomenclatura
|
|
255
|
+
well_named = sum(1 for f in test_files if ".test." in f or ".spec." in f)
|
|
256
|
+
structure_score += (well_named / len(test_files)) * 10
|
|
257
|
+
|
|
258
|
+
return {
|
|
259
|
+
"score": min(structure_score, max_score),
|
|
260
|
+
"findings": findings,
|
|
261
|
+
"test_files_count": len(test_files),
|
|
262
|
+
"directories_found": existing_dirs,
|
|
263
|
+
"configs_found": existing_configs,
|
|
264
|
+
"docs_found": existing_docs
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
async def analyze_code_coverage(project_path: str) -> Dict:
|
|
268
|
+
"""Analisa cobertura de código"""
|
|
269
|
+
|
|
270
|
+
coverage_score = 0
|
|
271
|
+
coverage_data = {}
|
|
272
|
+
|
|
273
|
+
# Tentar ler relatório de cobertura
|
|
274
|
+
coverage_files = [
|
|
275
|
+
"coverage/coverage-summary.json",
|
|
276
|
+
"coverage/lcov.info",
|
|
277
|
+
"coverage.xml"
|
|
278
|
+
]
|
|
279
|
+
|
|
280
|
+
for coverage_file in coverage_files:
|
|
281
|
+
if os.path.exists(f"{project_path}/{coverage_file}"):
|
|
282
|
+
coverage_data = await parse_coverage_report(
|
|
283
|
+
f"{project_path}/{coverage_file}"
|
|
284
|
+
)
|
|
285
|
+
break
|
|
286
|
+
|
|
287
|
+
if coverage_data:
|
|
288
|
+
# Calcular score baseado na cobertura
|
|
289
|
+
overall_coverage = coverage_data.get("total", {}).get("lines", {}).get("pct", 0)
|
|
290
|
+
|
|
291
|
+
if overall_coverage >= 80:
|
|
292
|
+
coverage_score = 100
|
|
293
|
+
elif overall_coverage >= 70:
|
|
294
|
+
coverage_score = 80
|
|
295
|
+
elif overall_coverage >= 60:
|
|
296
|
+
coverage_score = 60
|
|
297
|
+
else:
|
|
298
|
+
coverage_score = 40
|
|
299
|
+
|
|
300
|
+
else:
|
|
301
|
+
# Executar testes com cobertura se não existir
|
|
302
|
+
try:
|
|
303
|
+
result = subprocess.run(
|
|
304
|
+
["npm", "run", "test:coverage"],
|
|
305
|
+
cwd=project_path,
|
|
306
|
+
capture_output=True,
|
|
307
|
+
text=True,
|
|
308
|
+
timeout=300
|
|
309
|
+
)
|
|
310
|
+
|
|
311
|
+
if result.returncode == 0:
|
|
312
|
+
coverage_score = 70 # Assume cobertura razoável
|
|
313
|
+
else:
|
|
314
|
+
coverage_score = 30
|
|
315
|
+
|
|
316
|
+
except Exception:
|
|
317
|
+
coverage_score = 20
|
|
318
|
+
|
|
319
|
+
return {
|
|
320
|
+
"score": coverage_score,
|
|
321
|
+
"coverage_data": coverage_data,
|
|
322
|
+
"recommendations": generate_coverage_recommendations(coverage_data)
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## 3. Geração de Relatórios
|
|
329
|
+
|
|
330
|
+
### `generate_quality_report(project_path: str, format: str = "markdown") -> str`
|
|
331
|
+
|
|
332
|
+
**Descrição:** Gera relatório detalhado da qualidade de testes no formato especificado.
|
|
333
|
+
|
|
334
|
+
**Parâmetros:**
|
|
335
|
+
- `project_path`: Caminho do projeto
|
|
336
|
+
- `format`: Formato do relatório ("markdown", "html", "json")
|
|
337
|
+
|
|
338
|
+
**Retorno:** String com o relatório gerado
|
|
339
|
+
|
|
340
|
+
```python
|
|
341
|
+
async def generate_quality_report(project_path: str, format: str = "markdown") -> str:
|
|
342
|
+
"""
|
|
343
|
+
Gera relatório detalhado de qualidade de testes
|
|
344
|
+
|
|
345
|
+
Args:
|
|
346
|
+
project_path: Caminho do projeto
|
|
347
|
+
format: Formato de saída (markdown, html, json)
|
|
348
|
+
|
|
349
|
+
Returns:
|
|
350
|
+
String com relatório formatado
|
|
351
|
+
"""
|
|
352
|
+
|
|
353
|
+
# Obter dados de validação
|
|
354
|
+
validation_data = await validate_testing_quality(project_path)
|
|
355
|
+
|
|
356
|
+
if format == "markdown":
|
|
357
|
+
return await generate_markdown_report(validation_data)
|
|
358
|
+
elif format == "html":
|
|
359
|
+
return await generate_html_report(validation_data)
|
|
360
|
+
elif format == "json":
|
|
361
|
+
return json.dumps(validation_data, indent=2)
|
|
362
|
+
else:
|
|
363
|
+
raise ValueError(f"Formato não suportado: {format}")
|
|
364
|
+
|
|
365
|
+
async def generate_markdown_report(data: Dict) -> str:
|
|
366
|
+
"""Gera relatório em formato Markdown"""
|
|
367
|
+
|
|
368
|
+
score = data["overall_score"]
|
|
369
|
+
status = data["status"]
|
|
370
|
+
|
|
371
|
+
report = f"""
|
|
372
|
+
# Relatório de Qualidade de Testes
|
|
373
|
+
|
|
374
|
+
## Resumo Executivo
|
|
375
|
+
|
|
376
|
+
**Score Geral:** {score}/100 ({status})
|
|
377
|
+
**Data:** {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
|
|
378
|
+
|
|
379
|
+
## Métricas por Categoria
|
|
380
|
+
|
|
381
|
+
### Estrutura de Testes
|
|
382
|
+
**Score:** {data['analyses']['structure']['score']}/100
|
|
383
|
+
- Arquivos de teste: {data['analyses']['structure']['test_files_count']}
|
|
384
|
+
- Diretórios encontrados: {data['analyses']['structure']['directories_found']}/4
|
|
385
|
+
- Configurações: {data['analyses']['structure']['configs_found']}/4
|
|
386
|
+
- Documentação: {data['analyses']['structure']['docs_found']}/2
|
|
387
|
+
|
|
388
|
+
### Cobertura de Código
|
|
389
|
+
**Score:** {data['analyses']['coverage']['score']}/100
|
|
390
|
+
{format_coverage_data(data['analyses']['coverage']['coverage_data'])}
|
|
391
|
+
|
|
392
|
+
### Qualidade dos Testes
|
|
393
|
+
**Score:** {data['analyses']['quality']['score']}/100
|
|
394
|
+
- Taxa de pass: {data['analyses']['quality'].get('pass_rate', 'N/A')}%
|
|
395
|
+
- Testes flaky: {data['analyses']['quality'].get('flaky_rate', 'N/A')}%
|
|
396
|
+
- Tempo médio: {data['analyses']['quality'].get('avg_duration', 'N/A')}ms
|
|
397
|
+
|
|
398
|
+
### Automação
|
|
399
|
+
**Score:** {data['analyses']['automation']['score']}/100
|
|
400
|
+
- Pipeline configurado: {'✅' if data['analyses']['automation'].get('pipeline_configured') else '❌'}
|
|
401
|
+
- Taxa de automação: {data['analyses']['automation'].get('automation_rate', 'N/A')}%
|
|
402
|
+
|
|
403
|
+
### Segurança
|
|
404
|
+
**Score:** {data['analyses']['security']['score']}/100
|
|
405
|
+
- Vulnerabilidades críticas: {data['analyses']['security'].get('critical_vulns', 0)}
|
|
406
|
+
- Testes de segurança: {data['analyses']['security'].get('security_tests', 0)}
|
|
407
|
+
|
|
408
|
+
## Recomendações
|
|
409
|
+
|
|
410
|
+
{chr(10).join(f"- {rec}" for rec in data['recommendations'])}
|
|
411
|
+
|
|
412
|
+
## Gaps Identificados
|
|
413
|
+
|
|
414
|
+
{chr(10).join(f"- {gap}" for gap in data['gaps'])}
|
|
415
|
+
|
|
416
|
+
## Plano de Ação
|
|
417
|
+
|
|
418
|
+
{chr(10).join(f"1. {step}" for step in data['next_steps'])}
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
*Relatório gerado automaticamente pelo MCP Maestro Testing Assistant*
|
|
423
|
+
"""
|
|
424
|
+
|
|
425
|
+
return report
|
|
426
|
+
|
|
427
|
+
def format_coverage_data(coverage_data: Dict) -> str:
|
|
428
|
+
"""Formata dados de cobertura para exibição"""
|
|
429
|
+
|
|
430
|
+
if not coverage_data:
|
|
431
|
+
return "- Dados de cobertura não disponíveis"
|
|
432
|
+
|
|
433
|
+
total = coverage_data.get("total", {})
|
|
434
|
+
lines = total.get("lines", {})
|
|
435
|
+
|
|
436
|
+
return f"""
|
|
437
|
+
- Linhas: {lines.get('pct', 0)}%
|
|
438
|
+
- Branches: {total.get('branches', {}).get('pct', 0)}%
|
|
439
|
+
- Funções: {total.get('functions', {}).get('pct', 0)}%
|
|
440
|
+
- Statements: {total.get('statements', {}).get('pct', 0)}%
|
|
441
|
+
"""
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## 4. Processamento de Matriz de Rastreabilidade
|
|
447
|
+
|
|
448
|
+
### `update_traceability_matrix(project_path: str, requirements: List[Dict]) -> Dict`
|
|
449
|
+
|
|
450
|
+
**Descrição:** Atualiza matriz de rastreabilidade com novos requisitos e casos de teste.
|
|
451
|
+
|
|
452
|
+
**Parâmetros:**
|
|
453
|
+
- `project_path`: Caminho do projeto
|
|
454
|
+
- `requirements`: Lista de requisitos para mapear
|
|
455
|
+
|
|
456
|
+
**Retorno:** Dict com status da atualização
|
|
457
|
+
|
|
458
|
+
```python
|
|
459
|
+
async def update_traceability_matrix(project_path: str, requirements: List[Dict]) -> Dict:
|
|
460
|
+
"""
|
|
461
|
+
Atualiza matriz de rastreabilidade de testes
|
|
462
|
+
|
|
463
|
+
Args:
|
|
464
|
+
project_path: Caminho do projeto
|
|
465
|
+
requirements: Lista de requisitos para mapear
|
|
466
|
+
|
|
467
|
+
Returns:
|
|
468
|
+
Dict com resultado da atualização
|
|
469
|
+
"""
|
|
470
|
+
|
|
471
|
+
matrix_path = f"{project_path}/docs/09-testes/matriz-rastreabilidade.md"
|
|
472
|
+
|
|
473
|
+
# Ler matriz existente ou criar nova
|
|
474
|
+
if os.path.exists(matrix_path):
|
|
475
|
+
with open(matrix_path, 'r', encoding='utf-8') as f:
|
|
476
|
+
matrix_content = f.read()
|
|
477
|
+
else:
|
|
478
|
+
matrix_content = await generate_initial_matrix()
|
|
479
|
+
|
|
480
|
+
# Analisar casos de teste existentes
|
|
481
|
+
test_cases = await discover_test_cases(project_path)
|
|
482
|
+
|
|
483
|
+
# Mapear requisitos para testes
|
|
484
|
+
updated_matrix = await map_requirements_to_tests(
|
|
485
|
+
requirements,
|
|
486
|
+
test_cases,
|
|
487
|
+
matrix_content
|
|
488
|
+
)
|
|
489
|
+
|
|
490
|
+
# Calcular métricas de cobertura
|
|
491
|
+
coverage_metrics = calculate_coverage_metrics(updated_matrix)
|
|
492
|
+
|
|
493
|
+
# Salvar matriz atualizada
|
|
494
|
+
with open(matrix_path, 'w', encoding='utf-8') as f:
|
|
495
|
+
f.write(updated_matrix)
|
|
496
|
+
|
|
497
|
+
return {
|
|
498
|
+
"status": "success",
|
|
499
|
+
"requirements_mapped": len(requirements),
|
|
500
|
+
"test_cases_found": len(test_cases),
|
|
501
|
+
"coverage_metrics": coverage_metrics,
|
|
502
|
+
"matrix_updated": True
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
async def discover_test_cases(project_path: str) -> List[Dict]:
|
|
506
|
+
"""Descobre todos os casos de teste no projeto"""
|
|
507
|
+
|
|
508
|
+
test_cases = []
|
|
509
|
+
|
|
510
|
+
# Encontrar arquivos de teste
|
|
511
|
+
test_patterns = [
|
|
512
|
+
"**/*.test.js",
|
|
513
|
+
"**/*.test.ts",
|
|
514
|
+
"**/*.spec.js",
|
|
515
|
+
"**/*.spec.ts",
|
|
516
|
+
"**/*_test.py",
|
|
517
|
+
"**/test_*.py"
|
|
518
|
+
]
|
|
519
|
+
|
|
520
|
+
for pattern in test_patterns:
|
|
521
|
+
for file_path in glob.glob(f"{project_path}/{pattern}", recursive=True):
|
|
522
|
+
test_cases.extend(await parse_test_file(file_path))
|
|
523
|
+
|
|
524
|
+
return test_cases
|
|
525
|
+
|
|
526
|
+
async def parse_test_file(file_path: str) -> List[Dict]:
|
|
527
|
+
"""Analisa arquivo de teste e extrai casos de teste"""
|
|
528
|
+
|
|
529
|
+
test_cases = []
|
|
530
|
+
|
|
531
|
+
try:
|
|
532
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
533
|
+
content = f.read()
|
|
534
|
+
|
|
535
|
+
# Extrair testes baseado na linguagem
|
|
536
|
+
if file_path.endswith(('.js', '.ts')):
|
|
537
|
+
test_cases.extend(await parse_javascript_tests(content, file_path))
|
|
538
|
+
elif file_path.endswith('.py'):
|
|
539
|
+
test_cases.extend(await parse_python_tests(content, file_path))
|
|
540
|
+
|
|
541
|
+
except Exception as e:
|
|
542
|
+
print(f"Erro ao analisar arquivo {file_path}: {e}")
|
|
543
|
+
|
|
544
|
+
return test_cases
|
|
545
|
+
|
|
546
|
+
async def parse_javascript_tests(content: str, file_path: str) -> List[Dict]:
|
|
547
|
+
"""Extrai testes de arquivos JavaScript/TypeScript"""
|
|
548
|
+
|
|
549
|
+
test_cases = []
|
|
550
|
+
|
|
551
|
+
# Regex para encontrar testes
|
|
552
|
+
patterns = [
|
|
553
|
+
r'(?:it|test)\s*\(\s*[\'"]([^\'"]+)[\'"]',
|
|
554
|
+
r'(?:describe|context)\s*\(\s*[\'"]([^\'"]+)[\'"]'
|
|
555
|
+
]
|
|
556
|
+
|
|
557
|
+
for pattern in patterns:
|
|
558
|
+
matches = re.findall(pattern, content)
|
|
559
|
+
for match in matches:
|
|
560
|
+
test_cases.append({
|
|
561
|
+
"name": match,
|
|
562
|
+
"file": file_path,
|
|
563
|
+
"type": "unit" if "unit" in file_path else "integration" if "integration" in file_path else "e2e",
|
|
564
|
+
"status": "pending" # Será atualizado após execução
|
|
565
|
+
})
|
|
566
|
+
|
|
567
|
+
return test_cases
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
## 5. Configuração de Pipeline
|
|
573
|
+
|
|
574
|
+
### `setup_ci_pipeline(project_path: str, platform: str = "github") -> Dict`
|
|
575
|
+
|
|
576
|
+
**Descrição:** Configura pipeline CI/CD para testes automatizados.
|
|
577
|
+
|
|
578
|
+
**Parâmetros:**
|
|
579
|
+
- `project_path`: Caminho do projeto
|
|
580
|
+
- `platform`: Plataforma CI ("github", "gitlab", "azure")
|
|
581
|
+
|
|
582
|
+
**Retorno:** Dict com status da configuração
|
|
583
|
+
|
|
584
|
+
```python
|
|
585
|
+
async def setup_ci_pipeline(project_path: str, platform: str = "github") -> Dict:
|
|
586
|
+
"""
|
|
587
|
+
Configura pipeline CI/CD para testes automatizados
|
|
588
|
+
|
|
589
|
+
Args:
|
|
590
|
+
project_path: Caminho do projeto
|
|
591
|
+
platform: Plataforma de CI/CD
|
|
592
|
+
|
|
593
|
+
Returns:
|
|
594
|
+
Dict com resultado da configuração
|
|
595
|
+
"""
|
|
596
|
+
|
|
597
|
+
if platform == "github":
|
|
598
|
+
await setup_github_actions(project_path)
|
|
599
|
+
elif platform == "gitlab":
|
|
600
|
+
await setup_gitlab_ci(project_path)
|
|
601
|
+
elif platform == "azure":
|
|
602
|
+
await setup_azure_pipelines(project_path)
|
|
603
|
+
else:
|
|
604
|
+
raise ValueError(f"Plataforma não suportada: {platform}")
|
|
605
|
+
|
|
606
|
+
return {
|
|
607
|
+
"status": "success",
|
|
608
|
+
"platform": platform,
|
|
609
|
+
"pipeline_configured": True,
|
|
610
|
+
"next_steps": [
|
|
611
|
+
"Commitar arquivos de configuração",
|
|
612
|
+
"Testar pipeline com um PR",
|
|
613
|
+
"Configurar notificações",
|
|
614
|
+
"Ajustar thresholds de qualidade"
|
|
615
|
+
]
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
async def setup_github_actions(project_path: str) -> None:
|
|
619
|
+
"""Configura GitHub Actions para testes"""
|
|
620
|
+
|
|
621
|
+
workflows_dir = f"{project_path}/.github/workflows"
|
|
622
|
+
os.makedirs(workflows_dir, exist_ok=True)
|
|
623
|
+
|
|
624
|
+
# Detectar stack para gerar workflow apropriado
|
|
625
|
+
tech_stack = await detect_tech_stack(project_path)
|
|
626
|
+
|
|
627
|
+
if tech_stack.get("frontend") or tech_stack.get("backend") == "node":
|
|
628
|
+
workflow_content = await generate_nodejs_workflow(tech_stack)
|
|
629
|
+
elif tech_stack.get("backend") == "python":
|
|
630
|
+
workflow_content = await generate_python_workflow(tech_stack)
|
|
631
|
+
elif tech_stack.get("backend") == "java":
|
|
632
|
+
workflow_content = await generate_java_workflow(tech_stack)
|
|
633
|
+
else:
|
|
634
|
+
workflow_content = await generate_generic_workflow()
|
|
635
|
+
|
|
636
|
+
# Salvar workflow
|
|
637
|
+
workflow_path = f"{workflows_dir}/testing.yml"
|
|
638
|
+
with open(workflow_path, 'w', encoding='utf-8') as f:
|
|
639
|
+
f.write(workflow_content)
|
|
640
|
+
|
|
641
|
+
async def generate_nodejs_workflow(tech_stack: Dict) -> str:
|
|
642
|
+
"""Gera workflow para projetos Node.js"""
|
|
643
|
+
|
|
644
|
+
workflow = f"""
|
|
645
|
+
name: Testing Pipeline
|
|
646
|
+
|
|
647
|
+
on:
|
|
648
|
+
push:
|
|
649
|
+
branches: [ main, develop ]
|
|
650
|
+
pull_request:
|
|
651
|
+
branches: [ main ]
|
|
652
|
+
|
|
653
|
+
jobs:
|
|
654
|
+
unit-tests:
|
|
655
|
+
runs-on: ubuntu-latest
|
|
656
|
+
strategy:
|
|
657
|
+
matrix:
|
|
658
|
+
node-version: [16.x, 18.x]
|
|
659
|
+
|
|
660
|
+
steps:
|
|
661
|
+
- uses: actions/checkout@v3
|
|
662
|
+
|
|
663
|
+
- name: Setup Node.js ${{{{ matrix.node-version }}}}
|
|
664
|
+
uses: actions/setup-node@v3
|
|
665
|
+
with:
|
|
666
|
+
node-version: ${{{{ matrix.node-version }}}}
|
|
667
|
+
cache: 'npm'
|
|
668
|
+
|
|
669
|
+
- name: Install dependencies
|
|
670
|
+
run: npm ci
|
|
671
|
+
|
|
672
|
+
- name: Run unit tests
|
|
673
|
+
run: npm run test:unit -- --coverage --watchAll=false
|
|
674
|
+
|
|
675
|
+
- name: Upload coverage to Codecov
|
|
676
|
+
uses: codecov/codecov-action@v3
|
|
677
|
+
|
|
678
|
+
integration-tests:
|
|
679
|
+
runs-on: ubuntu-latest
|
|
680
|
+
services:
|
|
681
|
+
postgres:
|
|
682
|
+
image: postgres:13
|
|
683
|
+
env:
|
|
684
|
+
POSTGRES_PASSWORD: test
|
|
685
|
+
POSTGRES_DB: testdb
|
|
686
|
+
options: >-
|
|
687
|
+
--health-cmd pg_isready
|
|
688
|
+
--health-interval 10s
|
|
689
|
+
--health-timeout 5s
|
|
690
|
+
--health-retries 5
|
|
691
|
+
|
|
692
|
+
steps:
|
|
693
|
+
- uses: actions/checkout@v3
|
|
694
|
+
- name: Setup Node.js
|
|
695
|
+
uses: actions/setup-node@v3
|
|
696
|
+
with:
|
|
697
|
+
node-version: 18.x
|
|
698
|
+
cache: 'npm'
|
|
699
|
+
|
|
700
|
+
- name: Install dependencies
|
|
701
|
+
run: npm ci
|
|
702
|
+
|
|
703
|
+
- name: Run integration tests
|
|
704
|
+
run: npm run test:integration
|
|
705
|
+
env:
|
|
706
|
+
DATABASE_URL: postgresql://postgres:test@localhost:5432/testdb
|
|
707
|
+
|
|
708
|
+
e2e-tests:
|
|
709
|
+
runs-on: ubuntu-latest
|
|
710
|
+
steps:
|
|
711
|
+
- uses: actions/checkout@v3
|
|
712
|
+
- name: Setup Node.js
|
|
713
|
+
uses: actions/setup-node@v3
|
|
714
|
+
with:
|
|
715
|
+
node-version: 18.x
|
|
716
|
+
cache: 'npm'
|
|
717
|
+
|
|
718
|
+
- name: Install dependencies
|
|
719
|
+
run: npm ci
|
|
720
|
+
|
|
721
|
+
- name: Install Playwright
|
|
722
|
+
run: npx playwright install --with-deps
|
|
723
|
+
|
|
724
|
+
- name: Build application
|
|
725
|
+
run: npm run build
|
|
726
|
+
|
|
727
|
+
- name: Run E2E tests
|
|
728
|
+
run: npx playwright test
|
|
729
|
+
|
|
730
|
+
- name: Upload test results
|
|
731
|
+
uses: actions/upload-artifact@v3
|
|
732
|
+
if: always()
|
|
733
|
+
with:
|
|
734
|
+
name: playwright-report
|
|
735
|
+
path: playwright-report/
|
|
736
|
+
"""
|
|
737
|
+
|
|
738
|
+
return workflow
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
---
|
|
742
|
+
|
|
743
|
+
## Uso das Funções MCP
|
|
744
|
+
|
|
745
|
+
### Exemplo de Integração
|
|
746
|
+
|
|
747
|
+
```python
|
|
748
|
+
# Exemplo de uso completo das funções MCP
|
|
749
|
+
async def main():
|
|
750
|
+
project_path = "/path/to/project"
|
|
751
|
+
|
|
752
|
+
# 1. Inicializar estratégia
|
|
753
|
+
init_result = await init_testing_strategy(project_path)
|
|
754
|
+
print(f"Estratégia inicializada: {init_result['status']}")
|
|
755
|
+
|
|
756
|
+
# 2. Validar qualidade
|
|
757
|
+
validation = await validate_testing_quality(project_path)
|
|
758
|
+
print(f"Score de qualidade: {validation['overall_score']}")
|
|
759
|
+
|
|
760
|
+
# 3. Gerar relatório
|
|
761
|
+
report = await generate_quality_report(project_path, "markdown")
|
|
762
|
+
with open("quality-report.md", "w") as f:
|
|
763
|
+
f.write(report)
|
|
764
|
+
|
|
765
|
+
# 4. Configurar pipeline
|
|
766
|
+
pipeline_result = await setup_ci_pipeline(project_path, "github")
|
|
767
|
+
print(f"Pipeline configurado: {pipeline_result['status']}")
|
|
768
|
+
|
|
769
|
+
if __name__ == "__main__":
|
|
770
|
+
asyncio.run(main())
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
---
|
|
774
|
+
|
|
775
|
+
## Notas de Implementação
|
|
776
|
+
|
|
777
|
+
### Performance Considerations
|
|
778
|
+
- Usar cache para análises repetidas
|
|
779
|
+
- Paralelizar descoberta de testes
|
|
780
|
+
- Implementar lazy loading para grandes projetos
|
|
781
|
+
|
|
782
|
+
### Error Handling
|
|
783
|
+
- Tratar gracefully arquivos corrompidos
|
|
784
|
+
- Fallback para análise quando ferramentas não disponíveis
|
|
785
|
+
- Logging detalhado para debugging
|
|
786
|
+
|
|
787
|
+
### Extensibilidade
|
|
788
|
+
- Plugin system para novas linguagens
|
|
789
|
+
- Configuração customizável de thresholds
|
|
790
|
+
- Integração com ferramentas externas
|
|
791
|
+
|
|
792
|
+
---
|
|
793
|
+
|
|
794
|
+
**Importante:** Estas funções são referência para implementação MCP. A execução real deve ser feita pelo servidor MCP externo, não diretamente pela skill.
|