6 pontos por GN⁺ 2025-11-01 | 1 comentários | Compartilhar no WhatsApp
  • Ferramenta que diferencia por cores cada linha e token dentro de alterações de código (diff) para visualizar o nível de revisão necessário
  • Projetada para destacar, em vez de simples detecção de bugs, “partes que valem a pena revisar novamente”
  • Pode ser usada imediatamente trocando github.com por 0github.com na URL de um Pull Request do GitHub
  • Internamente, clona o repositório em uma VM e executa o gpt-5-codex para gerar resultados de análise em estrutura JSON

Visão geral

  • Esta ferramenta exibe em formato de mapa de calor o quanto cada parte do código alterado deve ser revisada com atenção durante o processo de code review
  • As cores são definidas com base no nível de atenção humana necessário, adotando uma abordagem diferente da simples detecção de erros

Como funciona

  • O usuário acessa trocando o domínio da URL de um Pull Request do GitHub de github.com para 0github.com
  • O sistema clona o repositório correspondente em uma máquina virtual (VM) e executa o modelo gpt-5-codex para cada diff
  • A estrutura de dados JSON gerada pelo modelo é analisada e convertida em um mapa de calor por cores

Critérios de análise

  • Em vez de apenas “há bug ou não”, destaca segredos hardcoded, modos de criptografia anormais, lógica complexa e outros pontos
    que precisam ser verificados novamente por uma pessoa

1 comentários

 
GN⁺ 2025-11-01
Opiniões no Hacker News
  • Em uma base de código com a qual já estou familiarizado, penso: “obrigado, LLM, mas eu conheço melhor e não preciso disso”
    Por outro lado, se for um código com o qual não estou familiarizado, eu nem aprovo o review nem faço merge para começo de conversa
    Ainda assim, esse uso criativo de LLM é uma tentativa interessante

    • Testei eu mesmo. Escolhi aleatoriamente o Laravel PR #57499, e com a configuração de 60% ele destacou só o código de teste e deixou passar mudanças importantes
      O código removido também não foi exibido de forma alguma, e só linhas não alteradas foram destacadas
      Foi uma tentativa honesta, mas o resultado é decepcionante
  • Fiquei me perguntando por que ele pede até permissão para agir no GitHub em meu nome
    O cmux-agent solicita acesso à conta inteira do GitHub
    Tentei abrir uma issue, mas a função de issues estava desativada no repositório. Pareceu um pouco suspeito

    • Se for um repositório público, deveria ser acessível sem login
      Testei em modo anônimo os PRs de exemplo, stack-auth, tinygrad, datasette, e funcionou bem
      Eu não sabia que as issues estavam desativadas, e agora a página de issues está normal
    • É um problema estrutural do GitHub. Pela discussão relacionada, o modelo de permissões de OAuth App e GitHub App é diferente
      Um GitHub App pode ser instalado só em repositórios específicos, mas ainda inclui a permissão de “agir em nome do usuário”
      É por isso que aparece aquele pop-up assustador
      Meu app codeinput.com é um OAuth App, então só pede e-mail, mas depois do login surge um fluxo de autenticação complexo, porque ainda é preciso passar pelo processo de instalação
    • Na primeira execução do app, ele exige login no GitHub. Antes disso, não dá para ver nada
  • A direção é interessante, mas a relação custo-benefício é meio duvidosa
    Ainda é difícil para um LLM entender o contexto do projeto só com o diff de um único PR
    Talvez um heatmap baseado em dados, com base em bugs passados ou frequência de mudanças, seja mais confiável

    • Se usar uma chave gratuita do Gemini, a cota diária de requisições é suficiente, então para equipes pequenas (10~20 PRs/dia) o custo não é alto
      Seria ainda melhor se pudesse rodar com a chave pessoal do usuário
    • Fiquei curioso se existe alguma ferramenta parecida que analise a entropia do diff
    • Nós também já fizemos experimentos clonando o repositório em uma VM e deixando o Codex explorá-lo, mas paramos por causa de problemas de latência e custo
      Parece que dá para reduzir custos com distillation, mas ainda estamos experimentando
      Também estamos pensando se existe alguma forma de calcular a correlação com bugs passados sem usar LLM
    • Ao fazer code review, eu frequentemente menciono linhas que não estão no diff
      No fim, essas ferramentas só conseguem resolver uma parte do problema
    • Partes do código que mudam com frequência não necessariamente são as que têm mais bugs
      Pode ser justamente uma área à qual as pessoas prestam mais atenção
      Seria interessante validar isso com dados de open source
  • Fiquei feliz de ver meu PR aparecer no HN
    Seria bom poder deixar o limiar em 0% e ajustar melhor a graduação de cores
    Também fiquei curioso se daria para usar essa ferramenta para revisar previamente código gerado por IA antes de criar o PR

    • As cores e o gradiente devem se tornar configuráveis
      Também gostaria de ouvir opiniões sobre se faria sentido oferecer um comando para renderizar o diff via CLI ou HTML
    • No fim, usar uma ferramenta dessas pode acabar levando mais tempo do que codar diretamente
  • O nome de domínio 0github.com parece difícil de manter por muito tempo. Seria melhor encontrar outro domínio logo

    • Fiquei curioso para saber o motivo
  • Parece especialmente útil em PRs enormes
    Em vez de um slider, seria bom poder clicar por cor para ver o significado imediatamente
    Agora é um pouco difícil entender de primeira, mas parece algo com que a pessoa se acostuma se usar com frequência

    • No momento, ao passar o mouse sobre a palavra destacada, aparece um tooltip
      Pretendemos melhorar isso para aparecer também no mobile. Fiquei curioso se haveria uma forma melhor de exibir
  • Apliquei em um PR simples de Rust e funcionou bem
    Mas seria bom poder ajustar com mais precisão a posição do destaque
    Foi impressionante ver que ele encontrou um typo quase invisível no PR de um colega
    Link do PR testado
    Parte do código removido aparece, mas muita coisa é ignorada
    Fiquei curioso se isso funciona calculando a distância entre tokens

    • A implementação está neste arquivo
      Por enquanto, é algo simples baseado em prompt de LLM
      No futuro, talvez possa evoluir para um método de detecção de tokens alucinados. Vou procurar artigos relacionados
  • Com o aumento recente de PRs grandes gerados por IA, senti a necessidade de uma ferramenta assim
    Seria bom se ela pudesse aprender o estilo do revisor e oferecer revisões personalizadas
    Estou verificando se é este commit

    • A lógica principal está neste arquivo
      Estamos experimentando um sistema DSPy para revisões automatizadas ajustadas às preferências do revisor
  • Na verdade, mais importante do que isso é fazer PRs de tamanho adequado, a ponto de uma ferramenta dessas nem ser necessária
    Hoje em dia, revisamos PRs escritos por IA, e a IA chega até a responder aos meus comentários
    Parece que no fim vamos entrar numa era em que até o revisor será substituído por IA

  • Cliquei em um PR de exemplo e ele ficou só carregando. Parece que precisa de cache

    • Já deveria haver cache, então estou verificando
    • Correção concluída. Agora está funcionando normalmente