3

Cansei de revisar código de IA linha por linha. Criei uma skill que revisa a arquitetura do PR.

Nos últimos meses eu percebi uma coisa incômoda: eu consigo gerar código muito mais rápido do que consigo revisar.

E o problema do código gerado por IA quase nunca é:

“não compila”

Ele compila. Passa nos testes.
E mesmo assim degrada a arquitetura:

  • aumenta acoplamento;
  • cria dependência cíclica;
  • espalha regra de negócio;
  • derruba a coesão de uma classe;
  • reimplementa algo que já existia.

Ler 800 linhas de diff na mão não pega nada disso.

Então eu virei a pergunta do avesso.

Em vez de perguntar:

“esse código está certo?”

O review passa a perguntar:

“esse PR piorou a estrutura do sistema?”

Peguei conceitos que já existem há décadas — complexidade ciclomática, acoplamento aferente/eferente, instabilidade, distância da sequência principal D = |A + I − 1|, coesão LCOM4, conascência, ciclos de dependência — e transformei numa skill para AI agents.

Uso no Claude Code.

Ela:

  1. pega um PR do GitHub;
  2. calcula todas essas métricas no commit base e no commit head, em dois git worktrees separados;
  3. gera o delta, comparando antes → depois;
  4. e a IA escreve um relatório com gráfico Mermaid e perguntas para o revisor — não veredictos.

O ponto central: ela informa, não bloqueia.

Não é um linter dogmático.
Não é um gate de CI.

É um radar que aponta para onde o humano deve olhar.

Um exemplo do que ela comenta no PR:

Risk: Medium — este PR moveu orders para longe da sequência principal (D 0.21 → 0.65), introduziu o ciclo orders → billing → notifications → orders, e OrderProcessor.process() foi de CC 7 → 16.

Perguntas para o revisor:

  • process() foi de CC 7 → 16 — dá para quebrar?
  • o ciclo novo — inverter via evento?
  • calculateTotalPrice parece duplicar PricingService.computeTotal — foi intencional?

O que mais me surpreendeu construindo isso foi quanto conceito “acadêmico” de arquitetura vira operacional quando você mede o delta de um PR em vez do valor absoluto.

“A classe X tem complexidade 18” não diz muita coisa.
“Este PR levou a classe X de 9 para 18” muda a conversa.

Por enquanto é TypeScript/JS, open source, licença MIT, e já rodei em um PR real — ele postou o comentário certinho.

Repo: https://github.com/jonatasfernandespimenta/arch-fitness-review

Fica a pergunta que eu queria debater com vocês:

revisar métricas estruturais em vez de linhas é o caminho para escalar code review na era da IA — ou é só mais uma métrica para a galera otimizar o número errado e ignorar o resto?

Carregando publicação patrocinada...
4
1