Fluxo de pré-revisão com Claude Code para checar legibilidade, correção e casos de borda antes do PR; gera checklist de revisor e perguntas para fazer.

Revisões de PR raramente demoram por causa do código ser “difícil”. Elas demoram porque o revisor precisa reconstruir intenção, risco e impacto a partir de um diff que mostra mudanças, não a história completa.
Uma pequena edição pode atingir dependências ocultas: renomear um campo e um relatório quebra, mudar um valor padrão e o comportamento se altera, ajustar um condicional e o tratamento de erro muda. O tempo de revisão aumenta quando o revisor precisa clicar em vários lugares para entender o contexto, rodar a aplicação localmente e fazer perguntas de acompanhamento só para entender o que o PR pretende fazer.
Há também um problema de padrão humano. As pessoas folheiam diffs de maneiras previsíveis: focamos na mudança “principal” e perdemos as linhas chatas onde bugs se escondem (cheques de limite, tratamento de null, logging, limpeza). Também tendemos a ler o que esperamos ver, então erros de copiar/colar e condições invertidas podem passar despercebidos.
Uma boa pré-revisão não é um veredicto. É um segundo par de olhos rápido e estruturado que aponta onde um humano deve desacelerar. O melhor resultado é:
O que não deve fazer: “aprovar” o PR, inventar requisitos ou adivinhar comportamento em tempo de execução sem evidência. Se o diff não incluir contexto suficiente (entradas esperadas, restrições, contratos de chamadores), a pré-revisão deve dizer isso e listar exatamente o que falta.
A ajuda de IA é mais forte em PRs de tamanho médio que tocam lógica de negócio ou refatorações onde o significado pode se perder. É mais fraca quando a resposta certa depende de conhecimento organizacional profundo (comportamento legado, peculiaridades de performance em produção, regras internas de segurança).
Exemplo: um PR que “só atualiza a paginação” frequentemente esconde páginas off-by-one, resultados vazios e ordenação incompatível entre API e UI. Uma pré-revisão deve trazer essas perguntas antes que um humano gaste 30 minutos redescobrindo-as.
Trate Claude como um revisor de primeira passada rápido e exigente, não como a pessoa que decide se o PR deve ser enviado. O objetivo é surfacing de problemas cedo: código confuso, mudanças de comportamento ocultas, testes ausentes e casos de borda que você esquece quando está próximo da mudança.
Dê a ele o que um revisor humano justo precisaria:
Se o PR toca uma área conhecida de alto risco, diga isso desde o início (auth, billing, migrations, concorrência).
Depois peça saídas acionáveis. Um pedido forte fica assim:
Mantenha o humano no comando forçando clareza sobre incertezas. Peça ao Claude para rotular achados como “certo a partir do diff” vs “precisa de confirmação”, e para citar as linhas exatas que geraram cada preocupação.
Claude é tão bom quanto o que você mostra. Se você colar um diff gigante sem objetivo ou restrições, receberá conselhos genéricos e perderá os riscos reais.
Comece com um objetivo concreto e critérios de sucesso. Por exemplo: “Este PR adiciona rate limiting ao endpoint de login para reduzir abuso. Não deve alterar o formato da resposta. Deve manter latência média abaixo de 50 ms.”
Em seguida, inclua apenas o que importa. Se 20 arquivos mudaram mas só 3 contêm a lógica, foque nesses. Inclua contexto ao redor quando um trecho isolado seria enganoso, como assinaturas de função, tipos chave ou configuração que altera o comportamento.
Por fim, seja explícito sobre expectativas de teste. Se você quer testes unitários para casos de borda, um teste de integração para um caminho crítico ou uma execução manual na UI, diga isso. Se testes estão ausentes de propósito, explique o porquê.
Um “pacote de contexto” simples que funciona bem:
Uma boa revisão Claude Code para PR funciona como um loop curto: forneça contexto suficiente, receba notas estruturadas e transforme-as em ações. Não substitui humanos. Captura deslizes fáceis antes que um colega gaste muito tempo lendo.
Use as mesmas passadas cada vez para que os resultados sejam previsíveis:
Depois de receber as notas, transforme-as em um pequeno gate de merge:
Checklist de merge (mantenha curto):
Termine pedindo 3 a 5 perguntas que forcem clareza, como “O que acontece se a API retornar uma lista vazia?” ou “Isso é seguro sob requisições concorrentes?”.
Claude é mais útil quando você dá uma lente fixa. Sem rubrica, tende a comentar o que aparecer primeiro (frequentemente nits de estilo) e pode perder o caso limite arriscado.
Uma rubrica prática:
Ao pedir, solicite um parágrafo curto por categoria e peça “maior risco primeiro.” Essa ordem mantém os humanos focados.
Use um prompt-base reutilizável para que os resultados sejam uniformes entre PRs. Cole a descrição do PR e depois o diff. Se o comportamento for voltado ao usuário, adicione o comportamento esperado em 1–2 frases.
You are doing a pre-review of a pull request.
Context
- Repo/service: <name>
- Goal of change: <1-2 sentences>
- Constraints: <perf, security, backward compatibility, etc>
Input
- PR description:
<...>
- Diff (unified diff):
<...>
Output format
1) Summary (max 4 bullets)
2) Readability notes (nits + suggested rewrites)
3) Correctness risks (what could break, and why)
4) Edge cases to test (specific scenarios)
5) Reviewer checklist (5-10 checkboxes)
6) Questions to ask the author before merge (3-7)
Rules
- Cite evidence by quoting the relevant diff lines and naming file + function/class.
- If unsure, say what info you need.
Para mudanças de alto risco (auth, pagamentos, permissões, migrações), acrescente pensamento explícito sobre falha e rollback:
Extra focus for this review:
- Security/privacy risks, permission bypass, data leaks
- Money/credits/accounting correctness (double-charge, idempotency)
- Migration safety (locks, backfill, down path, runtime compatibility)
- Monitoring/alerts and rollback plan
Return a “stop-ship” section listing issues that should block merge.
Para refactors, torne “sem mudança de comportamento” uma regra rígida:
This PR is a refactor. Assume behavior must be identical.
- Flag any behavior change, even if minor.
- List invariants that must remain true.
- Point to the exact diff hunks that could change behavior.
- Suggest a minimal test plan to confirm equivalence.
Se quiser uma revisão rápida, acrescente um limite como “Responda em menos de 200 palavras.” Se quiser profundidade, peça “até 10 achados com justificativa.”
As notas do Claude viram úteis quando você as converte num checklist curto que um humano pode fechar. Não repita o diff. Capture riscos e decisões.
Separe itens em dois grupos para a thread não virar debate de preferência:
Must-fix (bloqueia merge)
Nice-to-have (seguimento)
Também capture prontidão para rollout: ordem de deploy mais segura, o que monitorar após o lançamento e como desfazer a mudança.
Uma pré-revisão só ajuda se terminar com um pequeno conjunto de perguntas que forcem clareza.
Se você não consegue responder isso em palavras simples, pause o merge e enxugue o escopo ou adicione provas.
A maioria das falhas são problemas de processo, não do modelo.
Se um PR adiciona um endpoint de checkout novo, não cole todo o serviço. Cole o handler, validação, escrita no DB e qualquer mudança de schema. Depois diga: “Objetivo: prevenir cobranças duplas. Não é objetivo: refatorar nomes.” Você receberá menos comentários e os que vierem serão mais fáceis de verificar.
Um PR pequeno: adicionar um campo “display name” a uma tela de configurações. Toca validação (server) e texto na UI (client). É pequeno, mas ainda cheio de lugares onde bugs se escondem.
Aqui estão os trechos de diff que você colaria (mais 2–3 frases de contexto como comportamento esperado e tickets relacionados):
- if len(name) == 0 { return error("name required") }
+ if len(displayName) < 3 { return error("display name too short") }
+ if len(displayName) > 30 { return error("display name too long") }
- <TextInput label="Name" value={name} />
+ <TextInput label="Display name" value={displayName} helperText="Shown on your profile" />
Exemplos de achados que você quer receber:
len(displayName) mas ainda parecem vazias. Faça trim antes da validação.Transforme isso num checklist:
Uma revisão Claude Code funciona melhor quando termina com algumas checagens rápidas:
Para ver se está funcionando, acompanhe duas métricas simples por 2–4 semanas: tempo de revisão (aberto até primeira revisão significativa e aberto até merge) e retrabalho (commits de follow-up após revisão, ou quantos comentários exigiram mudanças de código).
Padronização vence prompts perfeitos. Escolha um template, exija um bloco de contexto curto (o que mudou, por que, como testar) e combine o que significa “pronto”.
Se seu time desenvolve por chat, pode aplicar o mesmo fluxo no Koder.ai: gere mudanças, exporte o código-fonte e anexe o checklist de pré-revisão ao PR para que a revisão humana foque nas partes de maior risco.