Resumo

Este verificador de código IA escaneia uma função ou arquivo colado em relação a quatro sinais reais baseados em regras: funções com mais de 40 linhas, aninhamento além de 4 níveis de profundidade, densidade de TODO/FIXME, e chamadas arriscadas como JSON.parse ou fetch deixadas sem try/catch. Retorna uma pontuação de 0 a 100 com uma análise linha por linha do que foi deduzido e por quê, inteiramente no seu navegador. Sem conta, sem envio, sem IA de caixa preta, apenas quatro verificações que qualquer engenheiro sênior faria a olho nu.

Um Verificador de Código IA que Pontua Sinais Reais de Aviso, Não Sensações

Cole uma função ou arquivo. Obtenha uma pontuação de 0 a 100 construída a partir de quatro verificações que um engenheiro sênior faria observando: comprimento da função, profundidade de aninhamento, acúmulo de TODO e tratamento de erros, calculados em tempo real no seu navegador conforme você digita.

Desenvolvedor digitando em um teclado mecânico com um diff de solicitação de pull aberto em dois monitores

Verificador de código IA

Cole uma função ou um arquivo inteiro abaixo. A pontuação e a análise se atualizam conforme você digita.

0 linhas · escanado localmente, nada deixa o seu navegador
--
Cole código para escanear

Executa inteiramente no seu navegador. Nada é enviado.

    Como funciona

    Quatro verificações, sem caixa preta

    Estrutura: comprimento e aninhamento

    As funções são marcadas acima de 40 linhas, correspondendo ao padrão padrão max-lines-per-function do ESLint de 50 linhas com alguma margem. A profundidade de aninhamento é rastreada pela contagem de chaves para linguagens com chaves, ou um fallback de profundidade de indentação para código no estilo Python, e é marcada acima de 4 níveis de profundidade, o ponto que a maioria dos guias de estilo chama de ilegível.

    Tratamento de erros

    O scanner procura por chamadas arriscadas: JSON.parse, fetch, await, .then, execSync, requests., os.system. Em seguida, verifica se existe um try/catch em qualquer lugar no código colado. Chamada arriscada sem proteção próxima significa uma dedução, não um passe livre.

    Limpeza

    Marcadores TODO, FIXME, XXX e HACK são contados e normalizados por 100 linhas de código. Um ou dois em um arquivo é engenharia normal. Um acúmulo denso deles é um sinal de que o arquivo precisa de uma passagem antes de ser lançado, não depois.

    Por que estas quatro verificações, e não um linter real

    ESLint, pylint e seus equivalentes analisam uma árvore de sintaxe abstrata, razão pela qual conseguem detectar variáveis não utilizadas, ramos inacessíveis e erros de tipo. Esta ferramenta não faz isso. É um scanner de texto que você pode executar em um trecho sem etapa de compilação, arquivo de configuração ou instalação, útil nos dez segundos entre terminar uma função e abrir uma solicitação de pull. O compromisso é honesto: menos verificações, mais brutas, computadas de forma transparente, versus a análise estática mais profunda mas mais lenta de um linter real. Se uma equipe já executa ESLint ou pylint em CI, continue executando. Esta ferramenta é para a lacuna antes disso, quando o código ainda não está em um repositório.

    Perguntas sobre a pontuação

    Este verificador de código IA é realmente gratuito?
    Sim. Funciona inteiramente no seu navegador, sem cadastro, sem chave de API e sem limite de uso. Não há servidor envolvido na pontuação, portanto não há nada para medir ou cobrar.
    Meu código é enviado para algum lugar?
    Não. O escanamento é executado como JavaScript puro na sua guia, contra o texto no textarea. Nada é enviado para um servidor, armazenado ou registrado, exceto um evento anônimo de uso da ferramenta sem conteúdo de código, usado apenas para saber que o widget foi utilizado.
    O que é um verificador de código IA aqui, em relação a um linter real?
    Isto é um scanner heurístico, não um compilador ou um linter como ESLint ou pylint. Ele não analisa uma AST, portanto não consegue detectar erros de tipo, variáveis não utilizadas ou caminhos de código morto. Em vez disso, ele marca quatro padrões estruturais: funções longas, aninhamento profundo, densidade de TODO e chamadas arriscadas sem try/catch próximo.
    Quais linguagens funcionam com ele?
    Qualquer linguagem delimitada por chaves funciona bem: JavaScript, TypeScript, Java, C, C#, Go, Rust, PHP, Swift. O aninhamento é medido contando chaves correspondentes. Linguagens com indentação apenas, como Python, retornam para uma verificação de profundidade de indentação em vez disso. Abas e espaços misturados, ou formatação incomum, podem desviar a contagem de aninhamento em ambos os casos.
    Por que uma função que acho que é limpa foi marcada?
    Geralmente uma de duas coisas: uma chamada JSON.parse, fetch ou await sem try/catch em lugar nenhum no trecho colado, ou aninhamento que passa de 4 níveis de profundidade em algum lugar do bloco. Cole mais contexto, incluindo o bloco try circundante se houver, e a pontuação se atualiza em tempo real conforme você digita.
    De onde vêm os limites (40 linhas, profundidade 4, e assim por diante)?
    Eles rastreiam padrões comuns em configurações de linter real: a regra max-lines-per-function do ESLint segue um padrão padrão de 50 linhas, e a maioria dos guias de estilo internos marca aninhamento acima de 3 a 4 níveis como um problema de legibilidade. Os nossos são definidos um pouco abaixo desses padrões, no lado estrito, porque um scanner sem análise completa de AST precisa de uma margem de segurança mais ampla do que um linter real.
    Isto pode substituir uma revisão de código?
    Não, e não deveria tentar. É uma verificação rápida de cinco segundos antes de abrir uma solicitação de pull, não um revisor. Detecta problemas estruturais, não bugs lógicos, problemas de segurança ou problemas de arquitetura. Use-o antes da revisão, não em vez da revisão.
    Minha pontuação é 100 mas o código ainda parece bagunçado. A ferramenta está errada?
    Está verificando quatro coisas específicas, não a qualidade geral do código. Uma pontuação 100 significa sem funções longas, sem aninhamento profundo, sem acúmulo de TODO e sem chamadas arriscadas desprotegidas. Não significa que a nomenclatura é boa, os testes existem ou a arquitetura faz sentido daqui a seis meses.
    Colar um trecho parcial distorce a pontuação?
    Sim, e isso é esperado. Se você colar um corpo de função sem o try/catch que a envolve em outro lugar do arquivo, o verificador não tem como saber que essa proteção existe. Para uma leitura precisa, cole a menor unidade auto-contida: uma função ou um arquivo.

    Isto verifica a estrutura. CodebaseChat responde à pergunta mais difícil.

    Faça qualquer pergunta sobre o seu codebase em linguagem natural: onde a autenticação está conectada, por que uma função existe, o que chama o quê em todos os repositórios. Sem grep necessário.