Pegamos um repositório legado cabeludo — um app de 14 mil linhas em Express + React, sem testes, com estado emaranhado e uma camada de banco de dados com três abstrações de profundidade — e entregamos o mesmo briefing de refatoração a cinco agentes de IA de programação diferentes. Depois comparamos os resultados.
Aviso: o Build Lab é publicado pela Y Build. Este experimento é sobre os próprios agentes de programação; os números são nossos, o método está abaixo.
Os cinco, e por que são diferentes
O mercado se divide em três formatos, e escolhemos entre todos eles:
- Claude Code — agente que vive no terminal. Lidera o ranking público do SWE-bench Verified.
- OpenAI Codex (CLI) — também voltado ao terminal, notavelmente mais econômico em tokens.
- Cursor — nativo de IDE, agora com um modo multiagente em mosaico.
- Aider — terminal, nativo de git, diffs cirúrgicos.
- Windsurf — nativo de IDE, fluxos agênticos.
O briefing
Idêntico para os cinco: “Extraia a camada de dados por trás de uma interface de repositório, adicione um teste para cada método do repositório e não altere a API pública.” Depois medimos: testes passando ao final, linhas alteradas, se a API pública realmente se manteve, tokens gastos, tempo de relógio e uma nota de qualidade avaliada à mão.
O que aconteceu
| Agente | Tempo | Testes passam | API pública mantida | Abordagem |
|---|---|---|---|---|
| Claude Code | 23 min | ✓ | ✓ | Refatoração metódica em vários arquivos, qualidade 9.0/10 |
| Cursor | 47 min | ✓ | ✓ | Mais lento, guiado por IDE, 8.5/10 |
| Codex | 26 min | ✓ | ✓ | Menos tokens (~3–4× menos que o Claude Code) |
| Aider | 19 min | parcial | ✓ | Cirúrgico, menor diff — deixou passar dois métodos |
| Windsurf | 38 min | ✓ | ✗ | Reescreveu metade da camada; quebrou uma assinatura |
A diferença na abordagem foi a grande história. O Aider fez uma mudança cirúrgica de dez linhas e parou; o Windsurf reescreveu metade do app e silenciosamente alterou uma assinatura de função. O Claude Code manteve o plano através do maior número de arquivos sem perder o fio da meada — com um custo de tokens 3–4× maior que o do Codex para o mesmo trabalho.
O gargalo que ninguém te avisa
Aqui está o que nos surpreendeu: assim que você roda mais de um agente, o agente deixa de ser o gargalo. Tudo ao redor dele vira o trabalho — qual sessão está fazendo o quê, o diff de quem está pronto, qual branch é qual, o que quebrou desde ontem. A visão multiagente em mosaico do Cursor existe justamente porque a revisão em série não escala. Rodar cinco agentes não nos deixou 5× mais rápidos; transformou a revisão no novo trabalho de tempo integral.
Metodologia
Mesmo repositório no mesmo commit, mesmo briefing, contexto novo por agente, modelos padrão. Rodamos cada um duas vezes e ficamos com a melhor execução. A qualidade foi avaliada à mão com uma rubrica fixa (legibilidade, relevância dos testes, disciplina de escopo do diff). Diffs e logs completos: github.com/ybuild/lab-04.
Conclusão
Não existe um “melhor agente de refatoração” — existe um temperamento que combina com o trabalho. Quer um diff enxuto e fácil de revisar? Aider ou Codex. Uma grande refatoração em vários arquivos que precisa permanecer coerente? Claude Code. Mas qualquer que seja a sua escolha, reserve orçamento para a parte que as demos pulam: revisar o que o agente fez é agora o trabalho de verdade.