Uma IA escreveu uma função que parece razoável, mas você ainda não consegue explicar seus valores padrão ou suas falhas. Selecione o código no Yenpo, consulte um modelo escolhido por você e confira cada afirmação junto ao código-fonte.
Você precisa do Yenpo, de um projeto local e de acesso a um provedor com API compatível. Pode usar um modelo diferente daquele que escreveu o código.
1. Conecte seu modelo
Nas configurações, abra “Modelos”, adicione um provedor pelo botão mais e selecione-o como “Provedor atual”. Preencha tipo de API, “URL base”, “Método de login” e o ID exato do modelo disponível.
O Yenpo oferece três tipos de API: “OpenAI Compatible” (OpenAI Chat Completions), “OpenAI Responses” e “Anthropic Messages”. Escolha o protocolo usado pelo serviço; o nome do modelo não basta para identificá-lo. “Obter lista” é opcional: digite o ID diretamente se o serviço não publicar uma lista.
Coloque chaves apenas nas configurações. Comece com um código que você tenha permissão de enviar ao provedor. A requisição pode incluir código relevante encontrado além da seleção; consulte dados e permissões. O guia de conexão explica caminhos e erros.
2. Anexe o trecho que quer entender
Abra o arquivo e selecione uma função ou bloco pequeno. Inicie uma nova conversa no AI Reader e escolha “Explicar seleção”. Confira arquivo e linhas no anexo, ajuste o rascunho e envie. Deixe “Permitir edições” desligado.
Peça detalhes verificáveis:
Explique esta seleção na ordem de execução. Para cada ramificação, informe a entrada ou estado que chega até ela, o retorno e os efeitos colaterais. Cite as linhas exatas para cada afirmação. Leia chamadores ou testes se necessário e diferencie fatos do código de suposições sobre entradas em execução. Não edite arquivos.
A seleção é um ponto de partida. Para entender uma alteração antiga, abra a comparação Git correspondente e pergunte sobre ela, pois o arquivo atual pode ter mudado.
3. Confira cada referência ao código
Clique na referência para abrir as linhas em “Visualização rápida”. Use “Abrir arquivo” quando precisar da condição ao redor ou do chamador.
- Confira caminho, intervalo de linhas e versão.
- Leia a condição anterior à operação citada.
- Siga o valor até o chamador se a resposta afirmar algo sobre o que o usuário vê.
- Deixe em aberto afirmações sem código ou informação de execução suficientes.
Para sustentar que “esse resultado sempre prevalece”, verifique quais caminhos chegam à atribuição citada e se algo pode escrever o valor depois.
4. Experimente um exemplo linha por linha
Suponha que uma IA escreveu esta função JavaScript em um projeto didático:
function displayName(user) {
if (!user) return 'Guest';
const name = user.name?.trim();
return name || 'Guest';
}
A numeração abaixo começa na primeira linha do bloco. No projeto, use as linhas reais do arquivo.
| Afirmação | Linhas | O que o código sustenta |
|---|---|---|
| Usuário ausente recebe o valor padrão | 2 | null, undefined ou outro valor falsy retorna "Guest" antes de acessar o nome |
| Nome só com espaços recebe o valor padrão | 3–4 | O resultado de trim é "", então o padrão é retornado |
| Toda entrada malformada é segura | 3 | Um nome como 42 lança TypeError porque não tem método trim |
A última afirmação precisa de correção. O encadeamento opcional trata nome null ou undefined, mas não valida todos os tipos. Leia o chamador ou o validador para saber se um número pode chegar à função.
5. Questione a explicação e execute uma verificação
Se a resposta exagerar o que o trecho garante, pergunte:
Reveja a afirmação de que toda entrada malformada é segura. O que acontece quando o nome é um número? Cite a operação que falharia e procure se um chamador ou validador impede essa entrada. Se não conseguir confirmar, deixe a questão em aberto.
Verifique usuário ausente, nome só com espaços, nome normal com espaços nas pontas e nome numérico. Execute o menor teste pertinente no sistema de testes do projeto e confira o resultado.
Mantenha o arquivo estável ao conferir referências. Se mudar, selecione o código atualizado e pergunte novamente para não associar explicações antigas a linhas novas.
6. Guarde o que você entendeu
Anote premissas de entrada, comportamento das ramificações, locais conferidos e testes executados. Inclua dúvidas pendentes, como onde a entrada é validada, para retomá-las depois.
Use o mesmo método em uma rodada do Claude Code ou uma revisão de branch do Codex quando um bloco precisar de leitura mais atenta.