@maestro-ai/cli 1.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/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/package.json +48 -0
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Refatoração estruturada de código (Análise → Testes → Refactor → Validação)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /mcp-refactor - Refatoração MCP
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Refatorar código de forma segura e estruturada usando fluxo de 5 fases do MCP Maestro, com testes de caracterização e validação contínua.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Quando Usar
|
|
18
|
+
|
|
19
|
+
- Melhorar qualidade de código sem mudar comportamento
|
|
20
|
+
- Reduzir complexidade ou débito técnico
|
|
21
|
+
- Preparar código para nova feature
|
|
22
|
+
- Migrar para novo padrão ou arquitetura
|
|
23
|
+
|
|
24
|
+
**NÃO usar para:**
|
|
25
|
+
- Adicionar funcionalidade → Use `/mcp-feature`
|
|
26
|
+
- Corrigir bugs → Use `/mcp-debug`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Fluxo de 5 Fases
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. Análise de Código Atual
|
|
34
|
+
↓
|
|
35
|
+
2. Testes de Caracterização
|
|
36
|
+
↓
|
|
37
|
+
3. Refatoração Incremental
|
|
38
|
+
↓
|
|
39
|
+
4. Validação
|
|
40
|
+
↓
|
|
41
|
+
5. Deploy
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Princípio:** Nunca refatorar sem testes!
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Execução
|
|
49
|
+
|
|
50
|
+
### Passo 1: Coleta de Informações
|
|
51
|
+
|
|
52
|
+
**Perguntar ao usuário:**
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
🔧 **Refatoração de Código**
|
|
56
|
+
|
|
57
|
+
1. Qual área deseja refatorar?
|
|
58
|
+
[Exemplo: Serviço de autenticação, Controllers de API, etc]
|
|
59
|
+
|
|
60
|
+
2. Qual o motivo da refatoração?
|
|
61
|
+
- **complexidade**: Código difícil de entender
|
|
62
|
+
- **duplicacao**: Código repetido
|
|
63
|
+
- **performance**: Lento ou ineficiente
|
|
64
|
+
- **manutencao**: Difícil de manter/estender
|
|
65
|
+
- **migracao**: Mudança de padrão/arquitetura
|
|
66
|
+
|
|
67
|
+
Escolha: [complexidade/duplicacao/performance/manutencao/migracao]
|
|
68
|
+
|
|
69
|
+
3. (Opcional) Arquivos principais:
|
|
70
|
+
[Lista de arquivos a refatorar]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### Passo 2: Iniciar Fluxo de Refatoração
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
await mcp_maestro_refatorar({
|
|
79
|
+
area: "[área fornecida]",
|
|
80
|
+
motivo: "[motivo]"
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**MCP cria contexto e retorna:**
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"refactor_id": "REF-001",
|
|
89
|
+
"fases": [
|
|
90
|
+
"Análise",
|
|
91
|
+
"Testes de Caracterização",
|
|
92
|
+
"Refatoração",
|
|
93
|
+
"Validação",
|
|
94
|
+
"Deploy"
|
|
95
|
+
],
|
|
96
|
+
"fase_atual": 1,
|
|
97
|
+
"estrategia": "[incremental/big-bang]"
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### Passo 3: Fase 1 - Análise de Código Atual
|
|
104
|
+
|
|
105
|
+
**Apresentar:**
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
✅ **Fluxo de Refatoração Iniciado** (REF-001)
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
🎯 **Fase 1/5: Análise de Código Atual**
|
|
113
|
+
🤖 **Especialista:** Exploração de Codebase
|
|
114
|
+
|
|
115
|
+
## Mapeamento da Área
|
|
116
|
+
|
|
117
|
+
**Arquivos Identificados:**
|
|
118
|
+
- `[arquivo1.ts]` - [responsabilidade]
|
|
119
|
+
- `[arquivo2.ts]` - [responsabilidade]
|
|
120
|
+
- `[arquivo3.ts]` - [responsabilidade]
|
|
121
|
+
|
|
122
|
+
**Métricas de Código:**
|
|
123
|
+
- Complexidade Ciclomática: [valor]
|
|
124
|
+
- Linhas de código: [count]
|
|
125
|
+
- Duplicação: [percentual]%
|
|
126
|
+
- Cobertura de testes: [percentual]%
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Problemas Identificados
|
|
131
|
+
|
|
132
|
+
1. **[Problema 1]**
|
|
133
|
+
- Arquivo: `[caminho]`
|
|
134
|
+
- Evidência: [trecho de código]
|
|
135
|
+
- Impacto: [alto/médio/baixo]
|
|
136
|
+
|
|
137
|
+
2. **[Problema 2]**
|
|
138
|
+
- ...
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Estratégia Recomendada
|
|
143
|
+
|
|
144
|
+
${estrategia === 'incremental' ? `
|
|
145
|
+
✅ **Refatoração Incremental** (Recomendado)
|
|
146
|
+
|
|
147
|
+
Motivo: [área grande/crítica, fazer passo a passo]
|
|
148
|
+
|
|
149
|
+
Etapas:
|
|
150
|
+
1. [Passo 1]
|
|
151
|
+
2. [Passo 2]
|
|
152
|
+
3. [Passo 3]
|
|
153
|
+
` : `
|
|
154
|
+
⚡ **Big Bang Refactor**
|
|
155
|
+
|
|
156
|
+
Motivo: [área pequena, pode fazer de uma vez]
|
|
157
|
+
|
|
158
|
+
Refatorar tudo e validar.
|
|
159
|
+
`}
|
|
160
|
+
|
|
161
|
+
Prosseguir? (S/N)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Passo 4: Fase 2 - Testes de Caracterização
|
|
167
|
+
|
|
168
|
+
> [!IMPORTANT]
|
|
169
|
+
> **REGRA DE OURO:** Nunca refatorar sem testes!
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
🎯 **Fase 2/5: Testes de Caracterização**
|
|
173
|
+
|
|
174
|
+
## O que são Testes de Caracterização?
|
|
175
|
+
|
|
176
|
+
Testes que capturam o **comportamento atual** do código.
|
|
177
|
+
Não testam se está "correto", mas sim "preservam" o comportamento.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Testes Criados
|
|
182
|
+
|
|
183
|
+
### 1. Teste de comportamento principal
|
|
184
|
+
|
|
185
|
+
```[linguagem]
|
|
186
|
+
describe('[ComponenteAtual]', () => {
|
|
187
|
+
it('should preserve current behavior for [scenario]', () => {
|
|
188
|
+
// Arrange
|
|
189
|
+
const input = [value];
|
|
190
|
+
|
|
191
|
+
// Act
|
|
192
|
+
const result = funcaoAtual(input);
|
|
193
|
+
|
|
194
|
+
// Assert
|
|
195
|
+
expect(result).toEqual([valor_atual]);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 2. Teste de edge cases
|
|
201
|
+
|
|
202
|
+
[Mais testes...]
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Cobertura
|
|
207
|
+
|
|
208
|
+
- **Antes:** [percentual]%
|
|
209
|
+
- **Depois dos testes de caracterização:** [percentual]%
|
|
210
|
+
- **Meta:** 80%+ antes de refatorar
|
|
211
|
+
|
|
212
|
+
✅ Todos os testes passando
|
|
213
|
+
|
|
214
|
+
Pronto para refatorar com segurança!
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### Passo 5: Fase 3 - Refatoração Incremental
|
|
220
|
+
|
|
221
|
+
```markdown
|
|
222
|
+
🎯 **Fase 3/5: Refatoração Incremental**
|
|
223
|
+
|
|
224
|
+
## Estratégia: Passos Pequenos
|
|
225
|
+
|
|
226
|
+
${estrategia === 'incremental' ? `
|
|
227
|
+
### Passo 1 de 3: [Nome do passo]
|
|
228
|
+
|
|
229
|
+
**Antes:**
|
|
230
|
+
```[linguagem]
|
|
231
|
+
[código antigo]
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Depois:**
|
|
235
|
+
```[linguagem]
|
|
236
|
+
[código refatorado]
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Mudanças:**
|
|
240
|
+
- [O que mudou]
|
|
241
|
+
- [Por que melhorou]
|
|
242
|
+
|
|
243
|
+
**Validação:**
|
|
244
|
+
- ✅ Todos os testes passam
|
|
245
|
+
- ✅ Comportamento preservado
|
|
246
|
+
- ✅ Lint OK
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### Passo 2 de 3: [Nome do passo]
|
|
251
|
+
|
|
252
|
+
[...]
|
|
253
|
+
|
|
254
|
+
` : `
|
|
255
|
+
### Refatoração Completa
|
|
256
|
+
|
|
257
|
+
**Antes:**
|
|
258
|
+
[código antigo]
|
|
259
|
+
|
|
260
|
+
**Depois:**
|
|
261
|
+
[código refatorado]
|
|
262
|
+
|
|
263
|
+
**Mudanças:**
|
|
264
|
+
- [lista de mudanças]
|
|
265
|
+
`}
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Padrões Aplicados
|
|
270
|
+
|
|
271
|
+
${motivo === 'complexidade' ? `
|
|
272
|
+
- Extract Method
|
|
273
|
+
- Replace Conditional with Polymorphism
|
|
274
|
+
- Simplify Complex Expressions
|
|
275
|
+
` : motivo === 'duplicacao' ? `
|
|
276
|
+
- Extract Function
|
|
277
|
+
- Extract Class
|
|
278
|
+
- Pull Up Method
|
|
279
|
+
` : motivo === 'performance' ? `
|
|
280
|
+
- Memoization
|
|
281
|
+
- Lazy Loading
|
|
282
|
+
- Algorithm Optimization
|
|
283
|
+
` : `
|
|
284
|
+
- [Padrões específicos]
|
|
285
|
+
`}
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Validação Contínua
|
|
290
|
+
|
|
291
|
+
Após cada passo:
|
|
292
|
+
```bash
|
|
293
|
+
npm test # Testes passam?
|
|
294
|
+
npm run lint # Lint OK?
|
|
295
|
+
git commit -m "..." # Commit pequeno
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
**Status:** [X/Y] passos completados
|
|
301
|
+
|
|
302
|
+
Continuar para próximo passo? (S/N)
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
### Passo 6: Fase 4 - Validação
|
|
308
|
+
|
|
309
|
+
```markdown
|
|
310
|
+
🎯 **Fase 4/5: Validação**
|
|
311
|
+
|
|
312
|
+
## Checklist de Qualidade
|
|
313
|
+
|
|
314
|
+
### Funcional
|
|
315
|
+
- [x] Todos os testes passam ✅
|
|
316
|
+
- [x] Comportamento preservado ✅
|
|
317
|
+
- [x] Edge cases cobertos ✅
|
|
318
|
+
|
|
319
|
+
### Qualidade de Código
|
|
320
|
+
- [x] Complexidade reduzida: [antes] → [depois] ✅
|
|
321
|
+
- [x] Duplicação removida: [%antes] → [%depois] ✅
|
|
322
|
+
- [x] Lint sem warnings ✅
|
|
323
|
+
- [x] Code review aprovado ✅
|
|
324
|
+
|
|
325
|
+
### Performance (se aplicável)
|
|
326
|
+
- [x] Benchmarks: [antes] → [depois] ✅
|
|
327
|
+
- [x] Sem regressão de performance ✅
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Comparação Antes/Depois
|
|
332
|
+
|
|
333
|
+
| Métrica | Antes | Depois | Melhoria |
|
|
334
|
+
|---------|-------|--------|----------|
|
|
335
|
+
| Linhas de código | [N] | [M] | [%] |
|
|
336
|
+
| Complexidade | [N] | [M] | [%] |
|
|
337
|
+
| Duplicação | [N]% | [M]% | [%] |
|
|
338
|
+
| Cobertura | [N]% | [M]% | [%] |
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
✅ **Refatoração Validada**
|
|
343
|
+
|
|
344
|
+
Pronto para deploy!
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### Passo 7: Fase 5 - Deploy
|
|
350
|
+
|
|
351
|
+
```markdown
|
|
352
|
+
🎯 **Fase 5/5: Deploy**
|
|
353
|
+
|
|
354
|
+
## Estratégia de Deploy
|
|
355
|
+
|
|
356
|
+
${estrategia === 'incremental' ? `
|
|
357
|
+
✅ **Deploy Incremental** (Recomendado)
|
|
358
|
+
|
|
359
|
+
1. Deploy de cada passo separadamente
|
|
360
|
+
2. Monitorar métricas após cada deploy
|
|
361
|
+
3. Rollback fácil se necessário
|
|
362
|
+
|
|
363
|
+
Deploys:
|
|
364
|
+
- ✅ Passo 1 → Prod (2026-01-20)
|
|
365
|
+
- ✅ Passo 2 → Prod (2026-01-21)
|
|
366
|
+
- 🔄 Passo 3 → Staging (testando)
|
|
367
|
+
` : `
|
|
368
|
+
⚡ **Deploy Único**
|
|
369
|
+
|
|
370
|
+
Refatoração completa em um deploy.
|
|
371
|
+
|
|
372
|
+
Checklist:
|
|
373
|
+
- [ ] Testes passando em staging
|
|
374
|
+
- [ ] Performance validada
|
|
375
|
+
- [ ] Rollback plan pronto
|
|
376
|
+
`}
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## Monitoramento Pós-Deploy
|
|
381
|
+
|
|
382
|
+
Métricas a observar por 24-48h:
|
|
383
|
+
- Error rate
|
|
384
|
+
- Response time
|
|
385
|
+
- CPU/Memory usage
|
|
386
|
+
- User behavior (se frontend)
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
Use: `/deploy production`
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Exemplos de Uso
|
|
396
|
+
|
|
397
|
+
### Exemplo 1: Refatorar Serviço Complexo
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
User: /mcp-refactor
|
|
401
|
+
|
|
402
|
+
AI: Qual área deseja refatorar?
|
|
403
|
+
|
|
404
|
+
User: Serviço de autenticação
|
|
405
|
+
|
|
406
|
+
AI: Qual o motivo?
|
|
407
|
+
|
|
408
|
+
User: complexidade
|
|
409
|
+
|
|
410
|
+
AI: ✅ Fluxo iniciado (REF-001)
|
|
411
|
+
|
|
412
|
+
🎯 Fase 1: Análise
|
|
413
|
+
|
|
414
|
+
Arquivos:
|
|
415
|
+
- services/auth.service.ts (250 linhas, complexidade 15)
|
|
416
|
+
- utils/token.ts
|
|
417
|
+
|
|
418
|
+
Problemas:
|
|
419
|
+
1. Método login() com 80 linhas (muito grande)
|
|
420
|
+
2. Lógica de validação duplicada 3x
|
|
421
|
+
3. Sem separação de responsabilidades
|
|
422
|
+
|
|
423
|
+
Estratégia: Incremental (3 passos)
|
|
424
|
+
1. Extract validation logic
|
|
425
|
+
2. Split login method
|
|
426
|
+
3. Create TokenService
|
|
427
|
+
|
|
428
|
+
Continuar?
|
|
429
|
+
|
|
430
|
+
User: S
|
|
431
|
+
|
|
432
|
+
AI: [Fase 2: Cria testes de caracterização]
|
|
433
|
+
|
|
434
|
+
✅ 12 testes criados (cobertura: 85%)
|
|
435
|
+
|
|
436
|
+
Todos passando. Pronto para refatorar!
|
|
437
|
+
|
|
438
|
+
User: /mcp-next
|
|
439
|
+
|
|
440
|
+
AI: [Fase 3: Refatoração]
|
|
441
|
+
|
|
442
|
+
Passo 1/3: Extract validation logic
|
|
443
|
+
|
|
444
|
+
Antes:
|
|
445
|
+
```ts
|
|
446
|
+
if (!email || !password) { ... }
|
|
447
|
+
if (!isValidEmail(email)) { ... }
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
Depois:
|
|
451
|
+
```ts
|
|
452
|
+
const validator = new AuthValidator();
|
|
453
|
+
validator.validate({ email, password });
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
✅ Testes passam
|
|
457
|
+
|
|
458
|
+
Commit: "refactor: extract auth validation"
|
|
459
|
+
|
|
460
|
+
Continuar passo 2? (S/N)
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Exemplo 2: Migração de Padrão
|
|
464
|
+
|
|
465
|
+
```
|
|
466
|
+
User: /mcp-refactor Migrar de callback para async/await
|
|
467
|
+
|
|
468
|
+
AI: Motivo?
|
|
469
|
+
|
|
470
|
+
User: migracao
|
|
471
|
+
|
|
472
|
+
AI: ✅ Refactor initiated
|
|
473
|
+
|
|
474
|
+
Detectei 15 funções com callbacks
|
|
475
|
+
|
|
476
|
+
Estratégia:
|
|
477
|
+
- Criar versões async em paralelo
|
|
478
|
+
- Deprecar callbacks gradualmente
|
|
479
|
+
- Remover após migração completa
|
|
480
|
+
|
|
481
|
+
Fase 1: Análise
|
|
482
|
+
[lista de funções]
|
|
483
|
+
|
|
484
|
+
Fase 2: Testes
|
|
485
|
+
[testa callbacks atuais]
|
|
486
|
+
|
|
487
|
+
Fase 3: Implementação async
|
|
488
|
+
[cria novas versões]
|
|
489
|
+
|
|
490
|
+
Fase 4: Migração gradual
|
|
491
|
+
[troca chamadas uma por uma]
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
## Comandos Relacionados
|
|
497
|
+
|
|
498
|
+
```
|
|
499
|
+
/mcp-refactor [área] → Inicia refatoração
|
|
500
|
+
/mcp-next → Avança entre fases/passos
|
|
501
|
+
/mcp-status → Ver progresso da refatoração
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Estratégias de Refatoração
|
|
507
|
+
|
|
508
|
+
### Incremental (Recomendado)
|
|
509
|
+
|
|
510
|
+
**Quando:** Código crítico, área grande, equipe grande
|
|
511
|
+
|
|
512
|
+
**Vantagens:**
|
|
513
|
+
- Risco menor
|
|
514
|
+
- Rollback fácil
|
|
515
|
+
- Review mais simples
|
|
516
|
+
- Deploy contínuo
|
|
517
|
+
|
|
518
|
+
### Big Bang
|
|
519
|
+
|
|
520
|
+
**Quando:** Código isolado, área pequena, MVP
|
|
521
|
+
|
|
522
|
+
**Vantagens:**
|
|
523
|
+
- Mais rápido
|
|
524
|
+
- Contexto único
|
|
525
|
+
|
|
526
|
+
### Strangler Fig
|
|
527
|
+
|
|
528
|
+
**Quando:** Migrar sistema legado
|
|
529
|
+
|
|
530
|
+
**Passos:**
|
|
531
|
+
1. Criar interface nova ao lado da antiga
|
|
532
|
+
2. Redirecionar tráfego gradualmente
|
|
533
|
+
3. Remover código antigo quando 100% migrado
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## Padrões Comuns
|
|
538
|
+
|
|
539
|
+
### Extract Method
|
|
540
|
+
``` Função grande → Várias funções pequenas```
|
|
541
|
+
|
|
542
|
+
### Extract Class
|
|
543
|
+
```Classe god object → Várias classes especializadas```
|
|
544
|
+
|
|
545
|
+
### Replace Conditional with Polymorphism
|
|
546
|
+
```if/else gigante → Herança/interfaces```
|
|
547
|
+
|
|
548
|
+
### Introduce Parameter Object
|
|
549
|
+
```Muitos parâmetros → Objeto de configuração```
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## Regras Críticas
|
|
554
|
+
|
|
555
|
+
### ✅ SEMPRE:
|
|
556
|
+
|
|
557
|
+
1. Criar testes ANTES de refatorar
|
|
558
|
+
2. Commits pequenos e frequentes
|
|
559
|
+
3. Validar após cada passo
|
|
560
|
+
4. Preservar comportamento (sem features novas)
|
|
561
|
+
5. Code review antes de merge
|
|
562
|
+
|
|
563
|
+
### ❌ NUNCA:
|
|
564
|
+
|
|
565
|
+
1. Refatorar sem testes
|
|
566
|
+
2. Misturar refactor com nova feature
|
|
567
|
+
3. Refatorar código que não entende
|
|
568
|
+
4. Fazer mudanças grandes de uma vez
|
|
569
|
+
5. Deploy sem validação
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## Troubleshooting
|
|
574
|
+
|
|
575
|
+
### Testes Quebram Durante Refatoração
|
|
576
|
+
|
|
577
|
+
**Causa:** Comportamento mudou acidentalmente
|
|
578
|
+
|
|
579
|
+
**Solução:**
|
|
580
|
+
|
|
581
|
+
```
|
|
582
|
+
1. Reverter último commit: git reset --hard HEAD~1
|
|
583
|
+
2. Fazer mudança menor
|
|
584
|
+
3. Validar testes
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
4. Continuar
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Refatoração Muito Grande
|
|
591
|
+
|
|
592
|
+
**Causa:** Scope creep
|
|
593
|
+
|
|
594
|
+
**Solução:**
|
|
595
|
+
|
|
596
|
+
```
|
|
597
|
+
1. Parar refatoração atual
|
|
598
|
+
2. Quebrar em múltiplos REF-XXX
|
|
599
|
+
3. Fazer um por vez
|
|
600
|
+
```
|