.agent/global/skills/diagnosticar-code-smells/SKILL.md
2026-09-28 22:18:39 -03:00

4 KiB

name description scope
diagnosticar-code-smells Análise sistemática de código para identificar code smells, violações SOLID e oportunidades de aplicação de Design Patterns GoF. local

Skill: Diagnosticar Code Smells

Objetivo

Analisar um arquivo, módulo ou pacote para produzir um relatório de saúde estrutural com:

  • Code smells identificados
  • Violações SOLID detectadas
  • Design Patterns recomendados
  • Prioridade de cada refatoração

Pré-condições

  • Código existente para analisar (arquivo, pasta ou pacote)
  • Acesso de leitura ao código e seus testes

Etapas

1. Coletar Contexto

# Identificar tamanho e estrutura
wc -l <arquivo_ou_pasta>/**/*.ts
wc -l <arquivo_ou_pasta>/**/*.vue

# Verificar cobertura de testes
find <pasta_testes> -name "*.spec.ts" -o -name "*.test.ts"

2. Verificar Smells de Volume

Para cada arquivo, verificar:

Verificação Comando/Ação
Linhas > 250 wc -l <arquivo>
Funções > 30 linhas Ler e contar manualmente
Parâmetros > 3 por função grep_search por assinaturas
Imports excessivos (> 10) Contar linhas de import

3. Verificar Smells de Acoplamento

Verificação Indicador
Feature Envy Função usa outro. mais que this. ou dados locais
Intimidade Inapropriada Acesso a internos de outro módulo (não-exportados)
Cadeia de Mensagens a.b.c.d com 3+ níveis
Import circular Módulo A importa B que importa A

4. Verificar Conformidade SOLID

Para cada princípio, aplicar o checklist:

□ S — Este arquivo tem apenas 1 razão para mudar?
□ O — Posso adicionar nova variação sem editar este arquivo?
□ L — Subtipos são substituíveis pelo tipo base?
□ I — Interfaces são específicas para cada consumidor?
□ D — Lógica de negócio depende de abstrações, não de implementações?

5. Mapear Oportunidades de Padrão

Cruzar smells detectados com o guia de decisão:

switch crescente        → Strategy
criação condicional     → Factory Method
construção complexa     → Builder
comportamento por estado → State
pipeline de validações  → Chain of Responsibility
comportamento adicional → Decorator
interface incompatível  → Adapter
subsistema complexo     → Facade
notificação de mudanças → Observer

6. Gerar Relatório

Produzir relatório no formato:

# Diagnóstico de Code Smells — [nome do módulo]

## Resumo
- **Arquivos analisados:** N
- **Smells encontrados:** N
- **Violações SOLID:** N
- **Padrões recomendados:** N

## Smells Detectados

### 🔴 Crítico
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|---------|-------|----------|-----------------|

### 🟡 Moderado
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|---------|-------|----------|-----------------|

### 🟢 Baixo
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|---------|-------|----------|-----------------|

## Violações SOLID
| Princípio | Arquivo | Descrição | Severidade |
|-----------|---------|-----------|------------|

## Design Patterns Recomendados
| Problema | Padrão | Justificativa | Esforço |
|----------|--------|---------------|---------|

## Plano de Ação (priorizado)
1. [Crítico] ...
2. [Crítico] ...
3. [Moderado] ...

Critérios de Severidade

Severidade Critério
🔴 Crítico Violação SOLID + acoplamento alto + afeta 3+ arquivos
🟡 Moderado Code smell isolado + afeta 1-2 arquivos
🟢 Baixo Melhoria estética + sem impacto funcional

Pós-condições

  • Relatório registrado na Memória Azteca (./memory/) ou entregue diretamente
  • Plano de ação priorizado gerado
  • @testes notificado sobre trechos sem cobertura

Referências