4.5 KiB
4.5 KiB
| type | name | description | scope | updatedAt |
|---|---|---|---|---|
| workflow | refatorar-modulo | Fluxo completo de refatoração de um módulo, do diagnóstico à verificação | local | 2026-06-19 |
Workflow: Refatorar Módulo
Objetivo
Conduzir a refatoração de um módulo do ecossistema de forma segura, rastreável e fundamentada nos princípios do Refactoring.Guru.
Gatilho
- Solicitação explícita de refatoração
- Módulo identificado com 3+ code smells em diagnóstico
- Preparação para nova feature que exige código limpo como pré-requisito
Fluxo
┌─────────────┐ ┌───────────────┐ ┌──────────────┐
│ 1. DIAGNÓS- │───▶│ 2. SOLICITAR │───▶│ 3. PLANEJAR │
│ TICAR │ │ TESTES │ │ AÇÕES │
└─────────────┘ └───────────────┘ └──────────────┘
│
┌─────────────┐ ┌───────────────┐ ┌──────┴───────┐
│ 6. DOCUMEN- │◀───│ 5. VERIFICAR │◀───│ 4. EXECUTAR │
│ TAR │ │ TESTES │ │ REFAT. │
└─────────────┘ └───────────────┘ └──────────────┘
Etapa 1: Diagnosticar
Agente: @refatorar
Executar a skill diagnosticar-code-smells:
- Listar code smells encontrados
- Identificar violações SOLID
- Recomendar Design Patterns aplicáveis
- Classificar por severidade (🔴 🟡 🟢)
Saída: Relatório de diagnóstico com plano de ação priorizado.
Etapa 2: Solicitar Testes
Agente: @refatorar → @testes
Para cada trecho que será refatorado:
- Verificar se há testes cobrindo o comportamento
- Se não há: solicitar ao
@testescriação de testes - Aguardar confirmação de que testes passam
Regra: Nenhuma refatoração avança sem cobertura de testes. Sem exceções.
Etapa 3: Planejar Ações
Agente: @refatorar
Para cada item do plano de ação:
- Nomear a técnica de refatoração (ex: "Extract Method", "Replace Conditional with Strategy")
- Identificar o princípio SOLID que será atendido
- Estimar arquivos afetados
- Definir ordem de execução (itens independentes primeiro)
Formato:
| # | Técnica | Princípio | Arquivos | Dependência |
|---|---------|-----------|----------|-------------|
| 1 | Extract Method | S — SRP | servico.ts | Nenhuma |
| 2 | Strategy Pattern | O — OCP | calculador.ts, tipos.ts | Após #1 |
Etapa 4: Executar Refatoração
Agente: @refatorar
Para cada item do plano, em ordem:
- Aplicar a mudança em passos pequenos
- Verificar que testes passam após cada passo
- Não misturar refatoração com feature
Passos típicos de uma refatoração:
4.1 Extrair função/composable
4.2 Mover para arquivo adequado
4.3 Atualizar imports
4.4 Verificar testes → ✅
4.5 Próximo item
Etapa 5: Verificar Testes
Agente: @refatorar + @testes
- Executar todos os testes do módulo
- Confirmar zero regressões
- Se algum teste falha: reverter último passo e investigar
Etapa 6: Documentar
Agente: @refatorar → @documentacao
- Atualizar JSDoc se interfaces mudaram
- Registrar decisão e regras na Wiki de Desenvolvimento (
<modulo-wiki>/dev/<modulo-id>/) se a refatoração foi significativa - Informar
@documentacaosobre mudanças estruturais
Sugestão de texto do commit (para o operador humano):
refactor(<módulo>): <técnica aplicada>
- Problema: <code smell identificado>
- Solução: <padrão/técnica aplicada>
- Princípio: <princípio SOLID atendido>
Critérios de Sucesso
- Todos os code smells críticos (🔴) resolvidos
- Todos os testes passam (zero regressões)
- Nenhum arquivo acima de 250 linhas
- Nenhum
any/as anyintroduzido - Fronteiras de pacote respeitadas
- Decisões documentadas
Referências
- Skill:
agents/refatorar/skills/diagnosticar-code-smells/SKILL - Rule:
agents/refatorar/rules/refatoracao-segura - Rule:
agents/refatorar/rules/solid-compliance - Rule:
agents/refatorar/rules/design-patterns-pragmatico - Workflow global:
global/workflows/codigo-limpo(ouglobal/workflows/otimizar-codigos)