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:
- pega um PR do GitHub;
- calcula todas essas métricas no commit base e no commit head, em dois
git worktreesseparados; - gera o delta, comparando antes → depois;
- 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
orderspara longe da sequência principal (D 0.21 → 0.65), introduziu o cicloorders → billing → notifications → orders, eOrderProcessor.process()foi deCC 7 → 16.Perguntas para o revisor:
process()foi deCC 7 → 16— dá para quebrar?- o ciclo novo — inverter via evento?
calculateTotalPriceparece duplicarPricingService.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?