A IA escreveu o código. Quem responde pelo deploy?

Um roteiro de revisão para código gerado por IA, com atenção a concorrência, testes que detectam falhas reais e mudanças que ainda cabem na cabeça.

neste artigo

Um pull request pode chegar com implementação, testes e uma explicação convincente em poucos minutos. Quem revisa recebe um problema menos conveniente. Precisa descobrir se aquelas mudanças fazem o que o produto exige, inclusive quando alguma coisa falha.

O volume de código pronto para revisão pode crescer sem que a capacidade de entendê-lo acompanhe. Aprovar tudo porque o teste passou é uma resposta tentadora. É também uma forma de entregar a decisão a um teste que talvez tenha repetido a mesma suposição errada do código.

O próprio GitHub documenta que a revisão do Copilot pode deixar passar problemas e sugerir correções desnecessárias. A revisão humana continua fazendo parte do processo. Nossa recomendação é organizar essa revisão pelo comportamento que precisa sobreviver ao deploy.

Comece pela regra que não pode quebrar

Imagine uma integração que recebe a confirmação de uma inscrição e cria um ingresso. O provedor pode reenviar o mesmo evento. A regra do produto é que uma inscrição gere um único ingresso, mesmo com entregas repetidas.

Uma implementação pode consultar o evento, verificar que ele ainda não existe e então salvar o ingresso. Parece correto ao ler cada linha. Duas requisições simultâneas, porém, podem fazer a consulta antes de qualquer gravação.

A revisão precisa perguntar onde o sistema garante a unicidade. Uma restrição no banco pode proteger a gravação. Se o fluxo também envia um e-mail, a transação local não torna o envio externo atômico. É preciso definir como registrar o trabalho pendente e repetir o envio sem criar outro ingresso.

Esse é um exemplo hipotético. O ponto é procurar a decisão que depende do comportamento do sistema inteiro. A clareza de uma função isolada não resolve concorrência.

Leia o caminho completo da mudança

Siga o dado desde a entrada até o efeito final. No exemplo do ingresso, a leitura inclui a verificação de origem do evento, a identificação da inscrição e a gravação. Depois vem a notificação.

Confira os arquivos existentes que o código novo chama. Uma função chamada createTicket pode enviar e-mail internamente. Um tratamento de erro pode converter uma falha em resposta de sucesso. Esses detalhes mudam o que acontece quando o provedor tenta novamente.

Peça uma explicação curta para cada dependência nova. Se uma biblioteca entrou apenas para substituir uma função já disponível, retire-a. Toda dependência adicionada continuará exigindo atenção depois que o pull request fechar.

Faça os testes discordarem da implementação

Comece escrevendo resultados esperados sem copiar a estrutura do código. Para essa integração, uma revisão poderia exigir:

SituaçãoResultado esperado
O mesmo evento chega duas vezesUm único ingresso
Duas entregas chegam juntasA mesma regra de unicidade continua válida
O ingresso foi salvo e a notificação falhouA notificação pode ser retomada sem duplicar o ingresso
O evento tem origem inválidaNenhum ingresso criado

O teste de concorrência precisa exercitar a proteção usada na gravação. Um banco simulado que devolve sempre a resposta esperada pode esconder justamente o defeito que você quer encontrar.

Quando estiver corrigindo um bug, confirme que o teste falha sem a correção. Esse passo evita comemorar um teste que nunca observou o problema.

Reduza a mudança até conseguir explicá-la

Uma alteração de comportamento junto com uma reorganização de pastas e uma atualização de dependências custa mais para revisar. Peça entregas separadas quando essas mudanças forem independentes.

Antes de aprovar, a pessoa responsável deve conseguir descrever o efeito para o usuário, a falha mais provável e como perceber essa falha depois da publicação. Não precisa decorar cada linha. Precisa saber onde procurar quando chegar o primeiro relato.

Anote também o limite do rollback. Reverter código não desfaz automaticamente uma migração destrutiva nem recolhe um e-mail enviado. Essas consequências pertencem à decisão de publicar.

A IA pode ajudar a investigar o diff e propor casos esquecidos. Use essa ajuda. O critério de aprovação continua sendo uma mudança que alguém consegue explicar e sustentar quando o caminho feliz acaba.