@maestro-ai/cli 1.1.0 → 1.3.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 +84 -54
- package/content/guides/fases-mapeamento.md +34 -0
- package/content/guides/guide-brainstorm.md +38 -0
- package/content/guides/guide-orquestracao.md +45 -0
- package/content/guides/guide-testes.md +51 -0
- package/content/guides/guide-troubleshooting.md +43 -0
- package/content/guides/guide-validacao.md +50 -0
- package/content/guides/internal/automated-events.md +27 -0
- package/content/guides/internal/automated-map.md +56 -0
- package/content/guides/internal/automated-stitch.md +51 -0
- package/content/guides/internal/automated-system.md +46 -0
- package/content/guides/mapa-sistema.md +86 -0
- package/content/guides/multi-ide.md +32 -0
- package/content/guides/playbook-orquestrador.md +45 -0
- package/content/guides/workflows-avancados.md +62 -0
- package/content/rules/GEMINI.md +70 -762
- package/content/rules/RULES.md +71 -761
- package/content/rules/complexity-rules.md +43 -0
- package/content/rules/quality-gates.md +55 -0
- package/content/rules/security-rules.md +40 -0
- package/content/rules/structure-rules.md +63 -0
- package/content/rules/validation-rules.md +56 -0
- package/content/templates/estado-template.json +73 -0
- package/content/workflows/00-maestro.md +78 -0
- package/content/workflows/01-iniciar-projeto.md +59 -0
- package/content/workflows/02-avancar-fase.md +72 -0
- package/content/workflows/03-continuar-fase.md +64 -0
- package/content/workflows/04-implementar-historia.md +64 -0
- package/content/workflows/05-nova-feature.md +39 -0
- package/content/workflows/06-corrigir-bug.md +34 -0
- package/content/workflows/07-refatorar-codigo.md +34 -0
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.js +89 -76
- package/dist/index.js +94 -5
- package/package.json +10 -4
- package/content/workflows/README-MCP.md +0 -363
- package/content/workflows/brainstorm.md +0 -113
- package/content/workflows/create.md +0 -59
- package/content/workflows/debug.md +0 -103
- package/content/workflows/enhance.md +0 -63
- package/content/workflows/mcp-debug.md +0 -506
- package/content/workflows/mcp-feature.md +0 -385
- package/content/workflows/mcp-gate.md +0 -413
- package/content/workflows/mcp-next.md +0 -388
- package/content/workflows/mcp-refactor.md +0 -600
- package/content/workflows/mcp-start.md +0 -304
- package/content/workflows/mcp-status.md +0 -400
- package/content/workflows/orchestrate.md +0 -237
- package/content/workflows/plan.md +0 -89
- package/content/workflows/preview.md +0 -81
- package/content/workflows/status.md +0 -86
- package/content/workflows/test.md +0 -144
- package/content/workflows/ui-ux-pro-max.md +0 -296
- /package/content/workflows/{deploy.md → 08-deploy-projeto.md} +0 -0
|
@@ -1,600 +0,0 @@
|
|
|
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
|
-
```
|