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
- Para avaliar qualidade de um PR individual — use reviewing-logic-and-correctness.
- Para analisar fluxos de dados e dependências entre módulos — use dependency-mapping-and-decomposition.
- Quando o módulo tem menos de 500 linhas e poucas funções — a skill é projetada para módulos de complexidade significativa.
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: NTop 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.
Workflows que usam
Bundles que incluem
Execução
Como usar
com IA.
- 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
- 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
- 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o
SKILL.mdem.claude/skills/(Claude Code) ou anexe o arquivo no Claude (claude.ai).