SkillProgramaçãoDiagnostica

Auditoria de Complexidade Ciclomática

Analisa complexidade ciclomática, tamanho de funções, acoplamento e hotspots para quantificar a dívida técnica de um módulo.

Ações
PerfilDev
ProfundidadeAlta
IdiomaPortuguês
Objetivo

Em uma frase.

Quantificar a complexidade de um módulo através de métricas objetivas — complexidade ciclomática, tamanho de unidades, acoplamento afferente/efferente e churn rate — produzindo um mapa de hotspots que indica onde a dívida técnica está mais concentrada e mais arriscada.

Aplicação

Quando
faz sentido.

Usar
  • Como Etapa 3 do workflow de Diagnóstico de Dívida Técnica Crítica, após mapear dependências.
  • Quando o time precisa de evidências quantitativas para justificar investimento em refatoração.
  • Quando há disputa sobre quais partes do código são realmente complexas vs. apenas "antigas".
  • Antes de decidir entre refatorar e reescrever — métricas ajudam a calibrar a decisão.
Não usar
Prompt

Instruções
para a IA.

Passo 1 — Calcular complexidade ciclomática por função

Para cada função ou método relevante do módulo, calcular a complexidade ciclomática (número de caminhos independentes de execução):

Classificação de severidade:

- 1–10: Simples, baixo risco. Sem ação necessária. - 11–20: Moderado. Candidato a simplificação. - 21–50: Alto. Refatoração recomendada — difícil de testar e manter. - >50: Crítico. Refatoração urgente — praticamente impossível de entender e testar completamente.

Listar todas as funções com complexidade ≥ 11, ordenadas por severidade decrescente.

Passo 2 — Identificar unidades de código excessivamente grandes

Métricas de tamanho que indicam problemas:

- Funções com mais de 50 linhas: Quase sempre fazem mais de uma coisa.

- Arquivos com mais de 300 linhas: Provavelmente misturam responsabilidades. - Classes com mais de 10 métodos públicos: Interface muito ampla, difícil de usar e testar. - Funções com mais de 5 parâmetros: Sinal de God Function ou abstração inadequada. - Blocos condicionais aninhados além de 3 níveis: Fluxo de controle difícil de seguir.

Para cada violação, documentar: arquivo, nome da unidade, métrica violada e valor.

Passo 3 — Calcular métricas de acoplamento

Para os componentes já mapeados na skill anterior, quantificar:

- Acoplamento afferente (Ca): Quantos outros componentes dependem deste? (Alta Ca = mudança arriscada)

- Acoplamento efferente (Ce): De quantos outros componentes este depende? (Alto Ce = frágil e instável) - Instabilidade (I = Ce / (Ca + Ce)): Próximo de 1 = muito instável. Próximo de 0 = muito estável mas difícil de mudar.

Componentes com Ca alto E Ce alto são os mais problemáticos — são centrais e frágeis ao mesmo tempo.

Passo 4 — Identificar hotspots por cruzamento de métricas

Hotspots são os pontos onde complexidade alta se cruza com outra dimensão de risco:

- Complexidade × Churn: Funções complexas que mudam frequentemente. São onde bugs mais aparecem.

- Complexidade × Acoplamento: Funções complexas com muitos consumidores. Mudá-las é arriscado. - Tamanho × Falta de testes: Arquivos grandes sem cobertura de testes. Refatorar sem rede de segurança.

Produzir uma lista de hotspots ordenada por risco combinado.

Passo 5 — Produzir relatório de complexidade

Consolidar em um documento estruturado:

``

## Relatório de Complexidade — [Nome do Módulo]

Sumário Executivo

- Total de funções analisadas: N - Funções com complexidade ≥ 11: N (X%) - Funções com complexidade ≥ 21: N (X%) - Arquivos com mais de 300 linhas: N - Componentes com instabilidade > 0.8: N

Top 10 Funções por Complexidade

| Arquivo | Função | CC | Linhas | Parâmetros | Churn (6m) | |---------|--------|----|--------|------------|------------| | ... | ... | ...| ... | ... | ... |

Top 5 Hotspots

| Arquivo/Função | Complexidade | Churn | Acoplamento | Testes | Risco | |----------------|-------------|-------|-------------|--------|-------| | ... | ... | ... | ... | ... | ... |

Métricas de Acoplamento por Componente

| Componente | Ca | Ce | Instabilidade | |------------|----|----|---------------| | ... | ...| ...| ... |

Recomendação Inicial

- Refatorar: [componentes onde o esforço vale a pena] - Isolar: [componentes que devem ser encapsulados antes de mudar] - Não tocar agora: [componentes estáveis apesar de complexos]
``

---
Constelação

Onde
ela vive.

Execução

Como usar
com IA.

  1. 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
  2. 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
  3. 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o SKILL.md em .claude/skills/ (Claude Code) ou anexe o arquivo no Claude (claude.ai).