@maestro-ai/cli 1.2.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/content/guides/fases-mapeamento.md +31 -32
- 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/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 -43
- package/content/rules/security-rules.md +40 -0
- package/content/rules/structure-rules.md +63 -0
- package/content/rules/validation-rules.md +56 -97
- package/content/workflows/{maestro.md → 00-maestro.md} +7 -6
- package/content/workflows/01-iniciar-projeto.md +59 -0
- package/content/workflows/02-avancar-fase.md +72 -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.js +17 -16
- package/package.json +1 -1
- package/content/workflows/avancar-fase.md +0 -84
- package/content/workflows/brainstorm.md +0 -127
- package/content/workflows/corrigir-bug.md +0 -530
- package/content/workflows/create-app.md +0 -59
- package/content/workflows/iniciar-projeto.md +0 -59
- package/content/workflows/melhorar-feature.md +0 -63
- package/content/workflows/nova-feature.md +0 -438
- package/content/workflows/orchestrate.md +0 -237
- package/content/workflows/plan.md +0 -89
- package/content/workflows/refatorar-codigo.md +0 -623
- package/content/workflows/status-projeto.md +0 -54
- package/content/workflows/testar.md +0 -144
- package/content/workflows/ux-avancado.md +0 -296
- package/content/workflows/validar-gate.md +0 -413
- /package/content/workflows/{continuar-fase.md → 03-continuar-fase.md} +0 -0
- /package/content/workflows/{deploy.md → 08-deploy-projeto.md} +0 -0
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create project plan using project-planner agent. No code writing - only plan file generation.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /plan - Project Planning Mode
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 🔴 CRITICAL RULES
|
|
12
|
-
|
|
13
|
-
1. **NO CODE WRITING** - This command creates plan file only
|
|
14
|
-
2. **Use project-planner agent** - NOT Antigravity Agent's native Plan mode
|
|
15
|
-
3. **Socratic Gate** - Ask clarifying questions before planning
|
|
16
|
-
4. **Dynamic Naming** - Plan file named based on task
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Task
|
|
21
|
-
|
|
22
|
-
Use the `project-planner` agent with this context:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
CONTEXT:
|
|
26
|
-
- User Request: $ARGUMENTS
|
|
27
|
-
- Mode: PLANNING ONLY (no code)
|
|
28
|
-
- Output: docs/PLAN-{task-slug}.md (dynamic naming)
|
|
29
|
-
|
|
30
|
-
NAMING RULES:
|
|
31
|
-
1. Extract 2-3 key words from request
|
|
32
|
-
2. Lowercase, hyphen-separated
|
|
33
|
-
3. Max 30 characters
|
|
34
|
-
4. Example: "e-commerce cart" → PLAN-ecommerce-cart.md
|
|
35
|
-
|
|
36
|
-
RULES:
|
|
37
|
-
1. Follow project-planner.md Phase -1 (Context Check)
|
|
38
|
-
2. Follow project-planner.md Phase 0 (Socratic Gate)
|
|
39
|
-
3. Create PLAN-{slug}.md with task breakdown
|
|
40
|
-
4. DO NOT write any code files
|
|
41
|
-
5. REPORT the exact file name created
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Expected Output
|
|
47
|
-
|
|
48
|
-
| Deliverable | Location |
|
|
49
|
-
|-------------|----------|
|
|
50
|
-
| Project Plan | `docs/PLAN-{task-slug}.md` |
|
|
51
|
-
| Task Breakdown | Inside plan file |
|
|
52
|
-
| Agent Assignments | Inside plan file |
|
|
53
|
-
| Verification Checklist | Phase X in plan file |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## After Planning
|
|
58
|
-
|
|
59
|
-
Tell user:
|
|
60
|
-
```
|
|
61
|
-
[OK] Plan created: docs/PLAN-{slug}.md
|
|
62
|
-
|
|
63
|
-
Next steps:
|
|
64
|
-
- Review the plan
|
|
65
|
-
- Run `/create` to start implementation
|
|
66
|
-
- Or modify plan manually
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Naming Examples
|
|
72
|
-
|
|
73
|
-
| Request | Plan File |
|
|
74
|
-
|---------|-----------|
|
|
75
|
-
| `/plan e-commerce site with cart` | `docs/PLAN-ecommerce-cart.md` |
|
|
76
|
-
| `/plan mobile app for fitness` | `docs/PLAN-fitness-app.md` |
|
|
77
|
-
| `/plan add dark mode feature` | `docs/PLAN-dark-mode.md` |
|
|
78
|
-
| `/plan fix authentication bug` | `docs/PLAN-auth-fix.md` |
|
|
79
|
-
| `/plan SaaS dashboard` | `docs/PLAN-saas-dashboard.md` |
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Usage
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
/plan e-commerce site with cart
|
|
87
|
-
/plan mobile app for fitness tracking
|
|
88
|
-
/plan SaaS dashboard with analytics
|
|
89
|
-
```
|
|
@@ -1,623 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Refatoração estruturada de código (Análise → Testes → Refactor → Validação)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /refatorar-codigo - Refatoração Maestro
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Integração obrigatória com o Maestro
|
|
12
|
-
|
|
13
|
-
1. **Sincronize o estado** executando `/maestro` antes de começar. Garanta que não há gates bloqueados.
|
|
14
|
-
2. **Carregue o estado e defina helpers**:
|
|
15
|
-
```javascript
|
|
16
|
-
const estado = lerJson('.maestro/estado.json');
|
|
17
|
-
function salvarEstado(novoEstado) {
|
|
18
|
-
escreverJson('.maestro/estado.json', novoEstado, { spaces: 2 });
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
3. Sempre passe `estado_json` ao chamar qualquer tool MCP (`mcp_maestro_refatorar`, `mcp_maestro_avancar_refatoracao`, etc.).
|
|
22
|
-
4. Atualize `estado.historico` com eventos como `refatoracao_iniciada`, `refatoracao_passo_concluido` e `refatoracao_finalizada`, armazenando `refactor_id` e arquivos afetados.
|
|
23
|
-
5. Use `content/guides/fases-mapeamento.md` para escolher especialistas de apoio (Arquitetura, Performance, Testes) conforme o foco da refatoração.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Objetivo
|
|
28
|
-
|
|
29
|
-
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.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Quando Usar
|
|
34
|
-
|
|
35
|
-
- Melhorar qualidade de código sem mudar comportamento
|
|
36
|
-
- Reduzir complexidade ou débito técnico
|
|
37
|
-
- Preparar código para nova feature
|
|
38
|
-
- Migrar para novo padrão ou arquitetura
|
|
39
|
-
|
|
40
|
-
**NÃO usar para:**
|
|
41
|
-
- Adicionar funcionalidade → Use `/nova-feature`
|
|
42
|
-
- Corrigir bugs → Use `/corrigir-bug`
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Fluxo de 5 Fases
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
1. Análise de Código Atual
|
|
50
|
-
↓
|
|
51
|
-
2. Testes de Caracterização
|
|
52
|
-
↓
|
|
53
|
-
3. Refatoração Incremental
|
|
54
|
-
↓
|
|
55
|
-
4. Validação
|
|
56
|
-
↓
|
|
57
|
-
5. Deploy
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**Princípio:** Nunca refatorar sem testes!
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Execução
|
|
65
|
-
|
|
66
|
-
### Passo 1: Coleta de Informações
|
|
67
|
-
|
|
68
|
-
**Perguntar ao usuário:**
|
|
69
|
-
|
|
70
|
-
```markdown
|
|
71
|
-
🔧 **Refatoração de Código**
|
|
72
|
-
|
|
73
|
-
1. Qual área deseja refatorar?
|
|
74
|
-
[Exemplo: Serviço de autenticação, Controllers de API, etc]
|
|
75
|
-
|
|
76
|
-
2. Qual o motivo da refatoração?
|
|
77
|
-
- **complexidade**: Código difícil de entender
|
|
78
|
-
- **duplicacao**: Código repetido
|
|
79
|
-
- **performance**: Lento ou ineficiente
|
|
80
|
-
- **manutencao**: Difícil de manter/estender
|
|
81
|
-
- **migracao**: Mudança de padrão/arquitetura
|
|
82
|
-
|
|
83
|
-
Escolha: [complexidade/duplicacao/performance/manutencao/migracao]
|
|
84
|
-
|
|
85
|
-
3. (Opcional) Arquivos principais:
|
|
86
|
-
[Lista de arquivos a refatorar]
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
### Passo 2: Iniciar Fluxo de Refatoração
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
const estadoJson = lerArquivo('.maestro/estado.json');
|
|
95
|
-
|
|
96
|
-
await mcp_maestro_refatorar({
|
|
97
|
-
area: "[área fornecida]",
|
|
98
|
-
motivo: "[motivo]",
|
|
99
|
-
estado_json: estadoJson,
|
|
100
|
-
diretorio: process.cwd()
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
salvarEstado(registrarHistorico(estado, { acao: 'refatoracao_iniciada', area, motivo }));
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**MCP cria contexto e retorna:**
|
|
107
|
-
|
|
108
|
-
```json
|
|
109
|
-
{
|
|
110
|
-
"refactor_id": "REF-001",
|
|
111
|
-
"fases": [
|
|
112
|
-
"Análise",
|
|
113
|
-
"Testes de Caracterização",
|
|
114
|
-
"Refatoração",
|
|
115
|
-
"Validação",
|
|
116
|
-
"Deploy"
|
|
117
|
-
],
|
|
118
|
-
"fase_atual": 1,
|
|
119
|
-
"estrategia": "[incremental/big-bang]"
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
### Passo 3: Fase 1 - Análise de Código Atual
|
|
126
|
-
|
|
127
|
-
**Apresentar:**
|
|
128
|
-
|
|
129
|
-
```markdown
|
|
130
|
-
✅ **Fluxo de Refatoração Iniciado** (REF-001)
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
🎯 **Fase 1/5: Análise de Código Atual**
|
|
135
|
-
🤖 **Especialista:** Exploração de Codebase
|
|
136
|
-
|
|
137
|
-
## Mapeamento da Área
|
|
138
|
-
|
|
139
|
-
**Arquivos Identificados:**
|
|
140
|
-
- `[arquivo1.ts]` - [responsabilidade]
|
|
141
|
-
- `[arquivo2.ts]` - [responsabilidade]
|
|
142
|
-
- `[arquivo3.ts]` - [responsabilidade]
|
|
143
|
-
|
|
144
|
-
**Métricas de Código:**
|
|
145
|
-
- Complexidade Ciclomática: [valor]
|
|
146
|
-
- Linhas de código: [count]
|
|
147
|
-
- Duplicação: [percentual]%
|
|
148
|
-
- Cobertura de testes: [percentual]%
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Problemas Identificados
|
|
153
|
-
|
|
154
|
-
1. **[Problema 1]**
|
|
155
|
-
- Arquivo: `[caminho]`
|
|
156
|
-
- Evidência: [trecho de código]
|
|
157
|
-
- Impacto: [alto/médio/baixo]
|
|
158
|
-
|
|
159
|
-
2. **[Problema 2]**
|
|
160
|
-
- ...
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## Estratégia Recomendada
|
|
165
|
-
|
|
166
|
-
${estrategia === 'incremental' ? `
|
|
167
|
-
✅ **Refatoração Incremental** (Recomendado)
|
|
168
|
-
|
|
169
|
-
Motivo: [área grande/crítica, fazer passo a passo]
|
|
170
|
-
|
|
171
|
-
Etapas:
|
|
172
|
-
1. [Passo 1]
|
|
173
|
-
2. [Passo 2]
|
|
174
|
-
3. [Passo 3]
|
|
175
|
-
` : `
|
|
176
|
-
⚡ **Big Bang Refactor**
|
|
177
|
-
|
|
178
|
-
Motivo: [área pequena, pode fazer de uma vez]
|
|
179
|
-
|
|
180
|
-
Refatorar tudo e validar.
|
|
181
|
-
`}
|
|
182
|
-
|
|
183
|
-
Prosseguir? (S/N)
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
### Passo 4: Fase 2 - Testes de Caracterização
|
|
189
|
-
|
|
190
|
-
> [!IMPORTANT]
|
|
191
|
-
> **REGRA DE OURO:** Nunca refatorar sem testes!
|
|
192
|
-
|
|
193
|
-
```markdown
|
|
194
|
-
🎯 **Fase 2/5: Testes de Caracterização**
|
|
195
|
-
|
|
196
|
-
## O que são Testes de Caracterização?
|
|
197
|
-
|
|
198
|
-
Testes que capturam o **comportamento atual** do código.
|
|
199
|
-
Não testam se está "correto", mas sim "preservam" o comportamento.
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Testes Criados
|
|
204
|
-
|
|
205
|
-
### 1. Teste de comportamento principal
|
|
206
|
-
|
|
207
|
-
```[linguagem]
|
|
208
|
-
describe('[ComponenteAtual]', () => {
|
|
209
|
-
it('should preserve current behavior for [scenario]', () => {
|
|
210
|
-
// Arrange
|
|
211
|
-
const input = [value];
|
|
212
|
-
|
|
213
|
-
// Act
|
|
214
|
-
const result = funcaoAtual(input);
|
|
215
|
-
|
|
216
|
-
// Assert
|
|
217
|
-
expect(result).toEqual([valor_atual]);
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### 2. Teste de edge cases
|
|
223
|
-
|
|
224
|
-
[Mais testes...]
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Cobertura
|
|
229
|
-
|
|
230
|
-
- **Antes:** [percentual]%
|
|
231
|
-
- **Depois dos testes de caracterização:** [percentual]%
|
|
232
|
-
- **Meta:** 80%+ antes de refatorar
|
|
233
|
-
|
|
234
|
-
✅ Todos os testes passando
|
|
235
|
-
|
|
236
|
-
Pronto para refatorar com segurança!
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
### Passo 5: Fase 3 - Refatoração Incremental
|
|
242
|
-
|
|
243
|
-
```markdown
|
|
244
|
-
🎯 **Fase 3/5: Refatoração Incremental**
|
|
245
|
-
|
|
246
|
-
## Estratégia: Passos Pequenos
|
|
247
|
-
|
|
248
|
-
${estrategia === 'incremental' ? `
|
|
249
|
-
### Passo 1 de 3: [Nome do passo]
|
|
250
|
-
|
|
251
|
-
**Antes:**
|
|
252
|
-
```[linguagem]
|
|
253
|
-
[código antigo]
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
**Depois:**
|
|
257
|
-
```[linguagem]
|
|
258
|
-
[código refatorado]
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
**Mudanças:**
|
|
262
|
-
- [O que mudou]
|
|
263
|
-
- [Por que melhorou]
|
|
264
|
-
|
|
265
|
-
**Validação:**
|
|
266
|
-
- ✅ Todos os testes passam
|
|
267
|
-
- ✅ Comportamento preservado
|
|
268
|
-
- ✅ Lint OK
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
### Passo 2 de 3: [Nome do passo]
|
|
273
|
-
|
|
274
|
-
[...]
|
|
275
|
-
|
|
276
|
-
` : `
|
|
277
|
-
### Refatoração Completa
|
|
278
|
-
|
|
279
|
-
**Antes:**
|
|
280
|
-
[código antigo]
|
|
281
|
-
|
|
282
|
-
**Depois:**
|
|
283
|
-
[código refatorado]
|
|
284
|
-
|
|
285
|
-
**Mudanças:**
|
|
286
|
-
- [lista de mudanças]
|
|
287
|
-
`}
|
|
288
|
-
|
|
289
|
-
---
|
|
290
|
-
|
|
291
|
-
## Padrões Aplicados
|
|
292
|
-
|
|
293
|
-
${motivo === 'complexidade' ? `
|
|
294
|
-
- Extract Method
|
|
295
|
-
- Replace Conditional with Polymorphism
|
|
296
|
-
- Simplify Complex Expressions
|
|
297
|
-
` : motivo === 'duplicacao' ? `
|
|
298
|
-
- Extract Function
|
|
299
|
-
- Extract Class
|
|
300
|
-
- Pull Up Method
|
|
301
|
-
` : motivo === 'performance' ? `
|
|
302
|
-
- Memoization
|
|
303
|
-
- Lazy Loading
|
|
304
|
-
- Algorithm Optimization
|
|
305
|
-
` : `
|
|
306
|
-
- [Padrões específicos]
|
|
307
|
-
`}
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Validação Contínua
|
|
312
|
-
|
|
313
|
-
Após cada passo:
|
|
314
|
-
```bash
|
|
315
|
-
npm test # Testes passam?
|
|
316
|
-
npm run lint # Lint OK?
|
|
317
|
-
git commit -m "..." # Commit pequeno
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
**Status:** [X/Y] passos completados
|
|
323
|
-
|
|
324
|
-
Continuar para próximo passo? (S/N)
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
### Passo 6: Fase 4 - Validação
|
|
330
|
-
|
|
331
|
-
```markdown
|
|
332
|
-
🎯 **Fase 4/5: Validação**
|
|
333
|
-
|
|
334
|
-
## Checklist de Qualidade
|
|
335
|
-
|
|
336
|
-
### Funcional
|
|
337
|
-
- [x] Todos os testes passam ✅
|
|
338
|
-
- [x] Comportamento preservado ✅
|
|
339
|
-
- [x] Edge cases cobertos ✅
|
|
340
|
-
|
|
341
|
-
### Qualidade de Código
|
|
342
|
-
- [x] Complexidade reduzida: [antes] → [depois] ✅
|
|
343
|
-
- [x] Duplicação removida: [%antes] → [%depois] ✅
|
|
344
|
-
- [x] Lint sem warnings ✅
|
|
345
|
-
- [x] Code review aprovado ✅
|
|
346
|
-
|
|
347
|
-
### Performance (se aplicável)
|
|
348
|
-
- [x] Benchmarks: [antes] → [depois] ✅
|
|
349
|
-
- [x] Sem regressão de performance ✅
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## Comparação Antes/Depois
|
|
354
|
-
|
|
355
|
-
| Métrica | Antes | Depois | Melhoria |
|
|
356
|
-
|---------|-------|--------|----------|
|
|
357
|
-
| Linhas de código | [N] | [M] | [%] |
|
|
358
|
-
| Complexidade | [N] | [M] | [%] |
|
|
359
|
-
| Duplicação | [N]% | [M]% | [%] |
|
|
360
|
-
| Cobertura | [N]% | [M]% | [%] |
|
|
361
|
-
|
|
362
|
-
---
|
|
363
|
-
|
|
364
|
-
✅ **Refatoração Validada**
|
|
365
|
-
|
|
366
|
-
Pronto para deploy!
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
### Passo 7: Fase 5 - Deploy
|
|
372
|
-
|
|
373
|
-
```markdown
|
|
374
|
-
🎯 **Fase 5/5: Deploy**
|
|
375
|
-
|
|
376
|
-
## Estratégia de Deploy
|
|
377
|
-
|
|
378
|
-
${estrategia === 'incremental' ? `
|
|
379
|
-
✅ **Deploy Incremental** (Recomendado)
|
|
380
|
-
|
|
381
|
-
1. Deploy de cada passo separadamente
|
|
382
|
-
2. Monitorar métricas após cada deploy
|
|
383
|
-
3. Rollback fácil se necessário
|
|
384
|
-
|
|
385
|
-
Deploys:
|
|
386
|
-
- ✅ Passo 1 → Prod (2026-01-20)
|
|
387
|
-
- ✅ Passo 2 → Prod (2026-01-21)
|
|
388
|
-
- 🔄 Passo 3 → Staging (testando)
|
|
389
|
-
` : `
|
|
390
|
-
⚡ **Deploy Único**
|
|
391
|
-
|
|
392
|
-
Refatoração completa em um deploy.
|
|
393
|
-
|
|
394
|
-
Checklist:
|
|
395
|
-
- [ ] Testes passando em staging
|
|
396
|
-
- [ ] Performance validada
|
|
397
|
-
- [ ] Rollback plan pronto
|
|
398
|
-
`}
|
|
399
|
-
|
|
400
|
-
---
|
|
401
|
-
|
|
402
|
-
## Monitoramento Pós-Deploy
|
|
403
|
-
|
|
404
|
-
Métricas a observar por 24-48h:
|
|
405
|
-
- Error rate
|
|
406
|
-
- Response time
|
|
407
|
-
- CPU/Memory usage
|
|
408
|
-
- User behavior (se frontend)
|
|
409
|
-
|
|
410
|
-
---
|
|
411
|
-
|
|
412
|
-
Use: `/deploy production`
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## Exemplos de Uso
|
|
418
|
-
|
|
419
|
-
### Exemplo 1: Refatorar Serviço Complexo
|
|
420
|
-
|
|
421
|
-
```
|
|
422
|
-
User: /refatorar-codigo
|
|
423
|
-
|
|
424
|
-
AI: Qual área deseja refatorar?
|
|
425
|
-
|
|
426
|
-
User: Serviço de autenticação
|
|
427
|
-
|
|
428
|
-
AI: Qual o motivo?
|
|
429
|
-
|
|
430
|
-
User: complexidade
|
|
431
|
-
|
|
432
|
-
AI: ✅ Fluxo iniciado (REF-001)
|
|
433
|
-
|
|
434
|
-
🎯 Fase 1: Análise
|
|
435
|
-
|
|
436
|
-
Arquivos:
|
|
437
|
-
- services/auth.service.ts (250 linhas, complexidade 15)
|
|
438
|
-
- utils/token.ts
|
|
439
|
-
|
|
440
|
-
Problemas:
|
|
441
|
-
1. Método login() com 80 linhas (muito grande)
|
|
442
|
-
2. Lógica de validação duplicada 3x
|
|
443
|
-
3. Sem separação de responsabilidades
|
|
444
|
-
|
|
445
|
-
Estratégia: Incremental (3 passos)
|
|
446
|
-
1. Extract validation logic
|
|
447
|
-
2. Split login method
|
|
448
|
-
3. Create TokenService
|
|
449
|
-
|
|
450
|
-
Continuar?
|
|
451
|
-
|
|
452
|
-
User: S
|
|
453
|
-
|
|
454
|
-
AI: [Fase 2: Cria testes de caracterização]
|
|
455
|
-
|
|
456
|
-
✅ 12 testes criados (cobertura: 85%)
|
|
457
|
-
|
|
458
|
-
Todos passando. Pronto para refatorar!
|
|
459
|
-
|
|
460
|
-
User: /avancar-fase (ou `/maestro` para validar e avançar)
|
|
461
|
-
|
|
462
|
-
AI: [Fase 3: Refatoração]
|
|
463
|
-
|
|
464
|
-
Passo 1/3: Extract validation logic
|
|
465
|
-
|
|
466
|
-
Antes:
|
|
467
|
-
```ts
|
|
468
|
-
if (!email || !password) { ... }
|
|
469
|
-
if (!isValidEmail(email)) { ... }
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
Depois:
|
|
473
|
-
```ts
|
|
474
|
-
const validator = new AuthValidator();
|
|
475
|
-
validator.validate({ email, password });
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
✅ Testes passam
|
|
479
|
-
|
|
480
|
-
Commit: "refactor: extract auth validation"
|
|
481
|
-
|
|
482
|
-
Continuar passo 2? (S/N)
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
### Exemplo 2: Migração de Padrão
|
|
486
|
-
|
|
487
|
-
```
|
|
488
|
-
User: /refatorar-codigo Migrar de callback para async/await
|
|
489
|
-
|
|
490
|
-
AI: Motivo?
|
|
491
|
-
|
|
492
|
-
User: migracao
|
|
493
|
-
|
|
494
|
-
AI: ✅ Refactor initiated
|
|
495
|
-
|
|
496
|
-
Detectei 15 funções com callbacks
|
|
497
|
-
|
|
498
|
-
Estratégia:
|
|
499
|
-
- Criar versões async em paralelo
|
|
500
|
-
- Deprecar callbacks gradualmente
|
|
501
|
-
- Remover após migração completa
|
|
502
|
-
|
|
503
|
-
Fase 1: Análise
|
|
504
|
-
[lista de funções]
|
|
505
|
-
|
|
506
|
-
Fase 2: Testes
|
|
507
|
-
[testa callbacks atuais]
|
|
508
|
-
|
|
509
|
-
Fase 3: Implementação async
|
|
510
|
-
[cria novas versões]
|
|
511
|
-
|
|
512
|
-
Fase 4: Migração gradual
|
|
513
|
-
[troca chamadas uma por uma]
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
---
|
|
517
|
-
|
|
518
|
-
## Comandos Relacionados
|
|
519
|
-
|
|
520
|
-
```
|
|
521
|
-
/refatorar-codigo [área] → Inicia refatoração integrada ao estado
|
|
522
|
-
/continuar-fase → Retoma passo atual (usa análise do artefato)
|
|
523
|
-
/avancar-fase → Valida gate pós-refatoração
|
|
524
|
-
/status-projeto → Ver progresso e métricas
|
|
525
|
-
```
|
|
526
|
-
|
|
527
|
-
---
|
|
528
|
-
|
|
529
|
-
## Estratégias de Refatoração
|
|
530
|
-
|
|
531
|
-
### Incremental (Recomendado)
|
|
532
|
-
|
|
533
|
-
**Quando:** Código crítico, área grande, equipe grande
|
|
534
|
-
|
|
535
|
-
**Vantagens:**
|
|
536
|
-
- Risco menor
|
|
537
|
-
- Rollback fácil
|
|
538
|
-
- Review mais simples
|
|
539
|
-
- Deploy contínuo
|
|
540
|
-
|
|
541
|
-
### Big Bang
|
|
542
|
-
|
|
543
|
-
**Quando:** Código isolado, área pequena, MVP
|
|
544
|
-
|
|
545
|
-
**Vantagens:**
|
|
546
|
-
- Mais rápido
|
|
547
|
-
- Contexto único
|
|
548
|
-
|
|
549
|
-
### Strangler Fig
|
|
550
|
-
|
|
551
|
-
**Quando:** Migrar sistema legado
|
|
552
|
-
|
|
553
|
-
**Passos:**
|
|
554
|
-
1. Criar interface nova ao lado da antiga
|
|
555
|
-
2. Redirecionar tráfego gradualmente
|
|
556
|
-
3. Remover código antigo quando 100% migrado
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
## Padrões Comuns
|
|
561
|
-
|
|
562
|
-
### Extract Method
|
|
563
|
-
``` Função grande → Várias funções pequenas```
|
|
564
|
-
|
|
565
|
-
### Extract Class
|
|
566
|
-
```Classe god object → Várias classes especializadas```
|
|
567
|
-
|
|
568
|
-
### Replace Conditional with Polymorphism
|
|
569
|
-
```if/else gigante → Herança/interfaces```
|
|
570
|
-
|
|
571
|
-
### Introduce Parameter Object
|
|
572
|
-
```Muitos parâmetros → Objeto de configuração```
|
|
573
|
-
|
|
574
|
-
---
|
|
575
|
-
|
|
576
|
-
## Regras Críticas
|
|
577
|
-
|
|
578
|
-
### ✅ SEMPRE:
|
|
579
|
-
|
|
580
|
-
1. Criar testes ANTES de refatorar
|
|
581
|
-
2. Commits pequenos e frequentes
|
|
582
|
-
3. Validar após cada passo
|
|
583
|
-
4. Preservar comportamento (sem features novas)
|
|
584
|
-
5. Code review antes de merge
|
|
585
|
-
|
|
586
|
-
### ❌ NUNCA:
|
|
587
|
-
|
|
588
|
-
1. Refatorar sem testes
|
|
589
|
-
2. Misturar refactor com nova feature
|
|
590
|
-
3. Refatorar código que não entende
|
|
591
|
-
4. Fazer mudanças grandes de uma vez
|
|
592
|
-
5. Deploy sem validação
|
|
593
|
-
|
|
594
|
-
---
|
|
595
|
-
|
|
596
|
-
## Troubleshooting
|
|
597
|
-
|
|
598
|
-
### Testes Quebram Durante Refatoração
|
|
599
|
-
|
|
600
|
-
**Causa:** Comportamento mudou acidentalmente
|
|
601
|
-
|
|
602
|
-
**Solução:**
|
|
603
|
-
|
|
604
|
-
```
|
|
605
|
-
1. Reverter último commit: git reset --hard HEAD~1
|
|
606
|
-
2. Fazer mudança menor
|
|
607
|
-
3. Validar testes
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
4. Continuar
|
|
611
|
-
```
|
|
612
|
-
|
|
613
|
-
### Refatoração Muito Grande
|
|
614
|
-
|
|
615
|
-
**Causa:** Scope creep
|
|
616
|
-
|
|
617
|
-
**Solução:**
|
|
618
|
-
|
|
619
|
-
```
|
|
620
|
-
1. Parar refatoração atual
|
|
621
|
-
2. Quebrar em múltiplos REF-XXX
|
|
622
|
-
3. Fazer um por vez
|
|
623
|
-
```
|