decoder

Any codebase, excavated into a report you can read.Qualquer código, escavado até virar um relatório que dá para ler.

Point it at a repository. decoder first maps every file without AI, then teams of AI agents write what the code does, how it is built and where the risks are. Every claim points to the exact line of code, and a second pass checks each one.Aponte para um repositório. O decoder primeiro mapeia cada arquivo sem IA, depois equipes de agentes de IA escrevem o que o código faz, como ele é construído e onde estão os riscos. Cada afirmação aponta para a linha exata do código, e uma segunda passada confere cada uma.

> /decode https://github.com/owner/repoowner/repo

Free for noncommercial use.Gratuito para uso não comercial. LicenseLicença

harbor-ledgerSection A, fictional repositoryCorte A, repositório fictício
  1. Your repositorySeu repositório
  2. SurveyLevantamentoevery file mapped, no AIcada arquivo mapeado, sem IA
  3. ExcavationEscavaçãoAI agents read every fileagentes de IA leem cada arquivo
  4. InterpretationInterpretaçãoarchitecture, domain, risksarquitetura, domínio, riscos
  5. VerificationVerificaçãoevery claim re-checkedcada afirmação conferida
src/billing/retry.py:41verifiedverificado

Layer: interpretation · Context: billingCamada: interpretação · Contexto: cobrança

A payment is attempted up to three times, waiting longer after each failure, before the order is marked as failed.Um pagamento é tentado até três vezes, com uma espera maior depois de cada falha, antes de o pedido ser marcado como falho.

Tap a flag to open its record. Synthetic example: harbor-ledger is a fictional repository.Toque numa bandeira para abrir a ficha. Exemplo sintético: harbor-ledger é um repositório fictício.

In one minuteEm um minuto

Like an excavation: survey the ground first, dig carefully, catalogue every find, then have someone check the catalogue.Como numa escavação: primeiro o levantamento do terreno, depois a escavação com cuidado, cada achado catalogado, e alguém conferindo o catálogo no fim.

  1. Point it at a repositoryAponte para um repositório

    A GitHub link or a folder on your computer. Small projects and huge ones.Um link do GitHub ou uma pasta no seu computador. Projetos pequenos e enormes.

  2. A survey, without AIUm levantamento, sem IA

    Plain code maps every file, function, dependency and change history. This part spends no AI tokens.Código comum mapeia cada arquivo, função, dependência e histórico de mudanças. Essa parte não gasta tokens de IA.

  3. Teams of agents dig inEquipes de agentes escavam

    Many agents read the files in parallel. Then three specialists write the architecture, the business domain and the risk audit.Muitos agentes leem os arquivos em paralelo. Depois, três especialistas escrevem a arquitetura, o domínio do negócio e a auditoria de riscos.

  4. Every claim checked, then a reportCada afirmação conferida, e um relatório

    A second pass tries to prove each claim wrong. What survives goes into one report, from a one-page summary down to each file.Uma segunda passada tenta provar que cada afirmação está errada. O que sobrevive vai para um relatório, do resumo de uma página até cada arquivo.

What you get: a site report of the codeO que você recebe: um relatório de campo do código

One folder you can read top to bottom. Start with the summary; go deeper only where you need to.Uma pasta que dá para ler de cima a baixo. Comece pelo resumo; aprofunde só onde precisar.

f‌inal_report.mdsynthetic exampleexemplo sintético

Executive summary: harbor-ledgerResumo executivo: harbor-ledger

What this repository isO que este repositório é

A billing service for a small shipping company: it takes orders, charges cards and issues invoices. It is a Python API with a nightly job that reconciles paymentsUm serviço de cobrança de uma pequena transportadora: recebe pedidos, cobra cartões e emite faturas. É uma API em Python com uma rotina noturna que concilia pagamentos jobs/reconcile.py:8.

What works wellO que funciona bem

Failed payments are retried safely before an order is marked failedPagamentos que falham são tentados de novo com segurança antes de o pedido ser marcado como falho src/billing/retry.py:41.

What to fix firstO que corrigir primeiro

Add a limit on repeated login attemptsAdicionar um limite de tentativas de login repetidas api/auth.py:118.

SiteSítioharbor-ledgerTiersmall
SheetFolha1 / 9FindsAchados2 veri‌fied, 1 weak, 1 unsupported2 veri‌ficados, 1 fraco, 1 sem suporte
  • Executive summaryResumo executivoThe 30-second briefing: what it is, what works, what to fix first.O briefing de 30 segundos: o que é, o que funciona, o que corrigir primeiro.
  • ArchitectureArquiteturaHow the pieces fit together and depend on each other.Como as peças se encaixam e dependem umas das outras.
  • DomainDomínioThe business concepts in the code and how they relate.Os conceitos de negócio no código e como eles se relacionam.
  • AuditAuditoriaRisks, security hotspots and technical debt, each with its line.Riscos, pontos sensíveis de segurança e dívida técnica, cada um com sua linha.
  • Red team reviewRevisão do red teamEach claim marked verified, weak or unsupported.Cada afirmação marcada como verificada, fraca ou sem suporte.
  • Quality reportRelatório de qualidadeHow much of the code the report actually covers.Quanto do código o relatório realmente cobre.
  • File by fileArquivo por arquivoA short analysis of every file, plus a catalog of its public functions.Uma análise curta de cada arquivo, mais um catálogo das funções públicas.
  • Map of connectionsMapa de conexõesSee what depends on what, stored on your computer.Veja o que depende do quê, guardado no seu computador.

Every claim is catalogued, then challengedCada afirmação é catalogada e depois contestada

AI can sound sure and be wrong. So every sentence in the report carries the exact place in the code it comes from, and a separate reviewer tries to knock it down.A IA pode soar segura e estar errada. Por isso, cada frase do relatório carrega o lugar exato do código de onde veio, e um revisor separado tenta derrubá-la.

  1. 1verifiedverificado

    "A payment is attempted up to three times.""Um pagamento é tentado até três vezes."

    LayerCamada
    interpretationinterpretação
    ContextContexto
    billingcobrança
    CoordinateCoordenada
    src/billing/retry.py:41

    The reviewer opened the cited line and it says what the claim says.O revisor abriu a linha citada e ela diz o que a afirmação diz.

  2. 3weakfraco

    "Login has no limit on repeated attempts.""O login não tem limite de tentativas repetidas."

    LayerCamada
    interpretationinterpretação
    ContextContexto
    authenticationautenticação
    CoordinateCoordenada
    api/auth.py:118

    The code points that way, but not strongly enough. Treat it as a lead, not a fact.O código aponta nessa direção, mas não com força suficiente. Trate como pista, não como fato.

  3. 4unsupportedsem suporte

    "Uses Redis as a cache.""Usa Redis como cache."

    LayerCamada
    verificationverificação
    ContextContexto
    cachingcache
    CoordinateCoordenada
    no line foundnenhuma linha encontrada

    No code backs it up. It stays visible in the review, marked, instead of quietly becoming "true".Nenhum código sustenta. Ela continua visível na revisão, marcada, em vez de virar "verdade" em silêncio.

Synthetic finds from the fictional harbor-ledger repository, the same ones pinned in the drawing at the top.Achados sintéticos do repositório fictício harbor-ledger, os mesmos marcados no desenho do topo.

Before the agents start, plain code has already listed every function and import, so the agents describe what is there instead of guessing. A quality check then measures how many files and functions the report actually covers.Antes de os agentes começarem, código comum já listou cada função e cada import, então os agentes descrevem o que existe em vez de adivinhar. Depois, uma verificação de qualidade mede quantos arquivos e funções o relatório realmente cobre.

A small script or a million linesUm script pequeno ou um milhão de linhas

decoder measures the repository first and sizes the dig to match: more agents join as the code grows, each one with a slice small enough to read carefully.O decoder mede o repositório primeiro e dimensiona a escavação: mais agentes entram conforme o código cresce, cada um com uma fatia pequena o bastante para ler com cuidado.

  • Up to 300 agents per teamAté 300 agentes por equipeThe file-reading team grows until each agent's share fits its budget.A equipe que lê os arquivos cresce até a parte de cada agente caber no orçamento.
  • 8 languages read in depth8 linguagens lidas a fundoPython, JavaScript, TypeScript, TSX, Go, Rust, Java and Kotlin. Other files are counted and mapped.Python, JavaScript, TypeScript, TSX, Go, Rust, Java e Kotlin. Os outros arquivos são contados e mapeados.
  • No extra billSem conta extraIt runs on your own Claude Code subscription. No paid API key, no external service.Roda na sua própria assinatura do Claude Code. Sem chave de API paga, sem serviço externo.

Compare two to four repositoriesCompare de dois a quatro repositórios

Choosing between projects, or merging them? Each one is decoded, then lined up side by side: what they share, where they differ, and what only one of them does.Escolhendo entre projetos, ou juntando-os? Cada um é decodificado e depois alinhado lado a lado: o que têm em comum, onde divergem e o que só um deles faz.

CapabilityCapacidadeharbor-ledgerquay-paydock-books
Card paymentsPagamento com cartão
Payment retriesNova tentativa de pagamento
InvoicesFaturas
Multi-currencyVárias moedas
Synthetic example with three fictional repositories. The real output is a feature matrix, a file matrix and an insights report with the differences and recommendations.Exemplo sintético com três repositórios fictícios. A saída real é uma matriz de recursos, uma matriz de arquivos e um relatório de insights com as diferenças e recomendações.

Who it is forPara quem é

Anyone who has to understand code they did not write.Qualquer pessoa que precisa entender um código que não escreveu.

  • Taking over a projectAssumir um projetoYou inherited a codebase and need the big picture before touching anything.Você herdou um código e precisa da visão geral antes de mexer em qualquer coisa.
  • Deciding whether to adopt itDecidir se vale adotarAn open source tool, a vendor's code or an acquisition: see how it is built and where the risks are.Uma ferramenta open source, o código de um fornecedor ou uma aquisição: veja como é construído e onde estão os riscos.
  • Choosing between alternativesEscolher entre alternativasLine up two to four projects and see what each one really does.Alinhe de dois a quatro projetos e veja o que cada um realmente faz.
  • Learning from great codeAprender com código bomRead how a large, well-known project is organized, with pointers to the exact lines.Leia como um projeto grande e conhecido é organizado, com indicação das linhas exatas.

Free for noncommercial use under the PolyForm Noncommercial license: personal projects, study, and noncommercial organizations. Commercial use needs a separate license.Gratuito para uso não comercial, sob a licença PolyForm Noncommercial: projetos pessoais, estudo e organizações sem fins comerciais. Uso comercial precisa de uma licença separada. Read the licenseLer a licença

Get started in three stepsComece em três passos

You need two free tools on your computer: Python 3.12 or newer (the language decoder is written in) and Claude Code, Anthropic’s coding assistant, signed in to your account. Codex is optional. Not technical? Hand steps 1 and 2 to a developer; step 3 is the part you read.Você precisa de duas ferramentas no computador: o Python 3.12 ou mais novo (a linguagem em que o decoder é escrito) e o Claude Code, o assistente de programação da Anthropic, conectado à sua conta. O Codex é opcional. Não é da área técnica? Passe os passos 1 e 2 para alguém de desenvolvimento; o passo 3 é a parte que você lê.

  1. InstallInstale

    Paste these into the terminal, one at a time. They download decoder and install it in its own folder, without touching the rest of your computer.Cole estes comandos no terminal, um de cada vez. Eles baixam o decoder e o instalam numa pasta própria, sem mexer no resto do computador.

    $ git clone https://github.com/ogabrielalonso/decoder.git && cd decoder
    $ python -m venv .venv
    $ .venv/bin/pip install -e ".[analysis,knowledge,dev]"
  2. Decode a repositoryDecodifique um repositório

    Open Claude Code inside the decoder folder and type:Abra o Claude Code dentro da pasta do decoder e digite:

    > /decode https://github.com/owner/repo

    It runs every stage on its own: the survey, the agent teams, the quality check, the second pass and the report. A local folder works too.Ele roda todas as etapas sozinho: o levantamento, as equipes de agentes, a verificação de qualidade, a segunda passada e o relatório. Uma pasta local também funciona.

  3. Read the reportLeia o relatório

    Open docs/decode/<name>/f‌inal_report.md and start with the executive summary.Abra docs/decode/<nome>/f‌inal_report.md e comece pelo resumo executivo.

Words used on this pagePalavras usadas nesta página

RepositoryRepositório
The folder that holds a project's code and its history, usually on GitHub.A pasta que guarda o código de um projeto e o histórico dele, normalmente no GitHub.
Static analysisAnálise estática
Reading code with regular programs, without running it and without AI.Ler o código com programas comuns, sem executá-lo e sem IA.
AI agentAgente de IA
An AI model given one focused job, like reading a group of files or writing the architecture.Um modelo de IA com uma tarefa focada, como ler um grupo de arquivos ou escrever a arquitetura.
CitationCitação
The file and line a claim comes from, like auth.py:118.O arquivo e a linha de onde vem uma afirmação, como auth.py:118.
Red teamRed team
A reviewer whose only job is to find what is wrong.Um revisor cujo único trabalho é achar o que está errado.
TokenToken
The unit AI models read and are billed in, roughly a short word.A unidade que os modelos de IA leem e pela qual cobram, mais ou menos uma palavra curta.

For engineersPara quem é técnico

The lib is deterministic and testable; no lib module calls a model. Agents only receive prompts the lib has already filled with facts.A lib é determinística e testável; nenhum módulo da lib chama um modelo. Os agentes só recebem prompts que a lib já preencheu com fatos.

  1. IngestionIngestãoShallow clone cached by slug, per-language line counts, tier by lines of code.Clone raso com cache por slug, contagem de linhas por linguagem, tier pelas linhas de código.
  2. Static analysisAnálise estáticatree-sitter symbols and imports, a networkx dependency graph, git churn, graph metrics (coupling, god modules, dependency health, hotspots) and a security pre-scan, all injected into the prompts.Símbolos e imports via tree-sitter, grafo de dependências em networkx, churn do git, métricas de grafo (acoplamento, god modules, saúde de dependências, hotspots) e um pré-scan de segurança, tudo injetado nos prompts.
  3. Team AlphaEquipe AlphaN parallel workers, files chunked by directory locality; adaptive scaling holds a per-worker token budget, up to 300 workers.N workers em paralelo, arquivos agrupados por proximidade de diretório; o escalonamento adaptativo mantém um orçamento de tokens por worker, até 300 workers.
  4. Bravo, Charlie, DeltaBravo, Charlie, DeltaOne synthesis worker each: architecture, domain, audit. Each reads Alpha's output.Um worker de síntese cada: arquitetura, domínio, auditoria. Cada um lê a saída da Alpha.
  5. QA and red teamQA e red teamFile and symbol coverage, validation of required sections and citations, then an adversarial pass classifying claims as verified, weak or unsupported.Cobertura de arquivos e símbolos, validação de seções obrigatórias e citações, e uma passada adversarial que classifica as afirmações como verificadas, fracas ou sem suporte.
  6. SynthesisSínteseA deterministic final report and API catalog, plus the executive summary.Um relatório final e um catálogo de API determinísticos, mais o resumo executivo.

Two ways to runDois jeitos de rodar

The /decode command (shipped in .claude/) runs the whole pipeline, fanning workers out through the decode-execute workflow. decoder execute runs only static analysis and the four teams as headless, read-only claude -p (or codex exec) subprocesses; QA and synthesis are then decoder qa run and decoder synthesize.O comando /decode (que vem em .claude/) roda o pipeline inteiro, distribuindo os workers pelo workflow decode-execute. decoder execute roda só a análise estática e as quatro equipes como subprocessos headless e só leitura de claude -p (ou codex exec); QA e síntese vêm depois com decoder qa run e decoder synthesize.

Knowledge layerCamada de conhecimento

A SQLite dependency graph, filled on every decode; add --index-vectors to also index symbols in ChromaDB with local embeddings (BAAI/bge-small-en-v1.5). decoder knowledge neighbors and search query it offline.Um grafo de dependências em SQLite, preenchido em todo decode; com --index-vectors, os símbolos também são indexados no ChromaDB com embeddings locais (BAAI/bge-small-en-v1.5). decoder knowledge neighbors e search consultam offline.

Models picked by measurementModelos escolhidos por medição

decoder eval-models runs candidate models on the same workers and scores them against an Opus gold standard plus deterministic floor checks.decoder eval-models roda modelos candidatos nos mesmos workers e pontua contra um padrão-ouro do Opus mais checagens determinísticas mínimas.

QualityQualidade

156 tests across every layer; ruff and mypy clean. Version 1.1.0. Known limits: filename-only fuzzy matching in compare, heuristic token counting.156 testes em todas as camadas; ruff e mypy limpos. Versão 1.1.0. Limites conhecidos: casamento aproximado só por nome de arquivo no compare, contagem de tokens heurística.