1

Tessera: análise de código com grafo de conhecimento versionado

Screenshot

Analisar código é mais do que ler arquivo por arquivo. Você quer entender a arquitetura: quem chama quem, quais são as dependências escondidas, o que quebra se uma função mudar, se o novo PR viola regras de projeto. Essas respostas não estão em nenhum arquivo isolado, elas estão nas relações entre os arquivos.

Foi pensando nisso que nasceu o Tessera: conecte um repositório Git e ele constrói um grafo de conhecimento versionado da sua base de código. Classes, interfaces, métodos, chamadas, dependências — tudo mapeado, e o mais importante: cada commit gera um snapshot imutável. Você pode perguntar "o que quebra se eu mexer no X?" em qualquer versão do código.

A sacada: o AST é a verdade, a IA é só o resumo

A primeira tentação em projeto assim é jogar o repositório inteiro num LLM e pedir pra ele "entender". Spoiler: não funciona bem. Modelo alucina estrutura, inventa relação que não existe, e você perde a confiança no sistema inteiro.

O Tessera faz o contrário. O tree-sitter (análise estática de AST) é a fonte da verdade, com confiança ~1.0. Ele decide o que existe: classes, métodos, heranças, chamadas, dependências. A IA entra só depois, pra resumir e inferir semântica, em cima de uma estrutura que já foi decidida deterministicamente.

Resultado: descrições úteis, mas estrutura sempre correta.

Dois hashes por nó, zero trabalho desperdiçado

Cada nó do grafo tem dois hashes:

  • structuralHash: o AST normalizado. Muda quando a estrutura muda.
  • semanticHash: o conteúdo + os hashes dos filhos. Propaga em cascata.

Isso dá processamento incremental de verdade. Mudou 5 arquivos num repositório de 10 mil? A IA processa 5 nós, não o monólito inteiro. E como os snapshots são imutáveis e endereçados por conteúdo, toda consulta é "time-travel": diffs arquiteturais entre versões, queries com versão específica, sem estado global pra gerenciar.

O que dá pra fazer com isso

O dashboard vira uma caixa de ferramentas de análise:

  • Grafo interativo — navegue pelos nós e arestas tipadas (Inherits, Calls, FieldDependency, Injected...), filtre por tipo.
  • Impacto — "o que quebra se eu mudar Program.cs?" O sistema classifica dependências diretas e indiretas, pondera por profundidade e devolve um rating CRITICAL/HIGH/MEDIUM/LOW com um preview do caminho de impacto.
  • Diff arquitetural — compare snapshots e veja o que mudou em nível de arquitetura, não de diff de arquivo.
  • Análise de risco de PR — o webhook de pull_request cai no grafo e devolve: quais regras de arquitetura o PR viola, quais entidades de alto impacto ele toca.
  • Regras de arquitetura — crie regras (camadas, direção de dependência, chamadas proibidas) e valide no servidor ou no CLI, no CI, com o mesmo motor.
  • Chat RAG — pergunte sobre o código com citações arquivo:linha. E quando o corpus não tem nada relevante, ele fala "NoContext" em vez de alucinar resposta.

O CLI

Nem todo mundo quer subir Docker pra analisar um código. O tessera é um binário console que roda o mesmo pipeline parse → resume → link → grafo, mas 100% offline: sem banco, sem API, sem IA, sem upload. Ele só precisa do .NET, git e do sidecar de parsing.

Isso significa: regras de arquitetura validadas no CI, relatórios em Markdown gerados localmente, e o mesmo resultado do dashboard, porque reutiliza o mesmo motor de regras e os mesmos algoritmos de grafo.

Onde está

Projeto open source, com histórico de desenvolvimento spec-driven documentado. Se você quer entender a arquitetura de um código antes de mexer nele, inclusive o seu próprio, dá uma olhada aqui.

Código parado é mistério. Código analisado é mapa.

Carregando publicação patrocinada...
4

Hey Raphael,
Seu código é interessante, cara.
Em casos de grandes projetos eu imagino que os mantenedores visualizem assim como seu software possibilita, e seu software deve servir para colaborações: quando novos devs conhecem/entram em grandes projetos.

Eu naveguei pelo github e ví que você mantém mais de 120 projetos. Bastante experiência. Um longo percurso.

Eu me interessei também por um código seu de 10 anos atrás: java android
Tecnologia meio que em desuso, mas eu sou fã e também uso desde aquela época.
Pelo que vi do repositório parecia um curso interessante.

1

Opa Fala Rodrigo! Sim, foi um curso que eu fiz na Impacta de Android. :) Um projeto bem legal que eu fiz tambem foi o Chatbot Studio. Tem uns videos de demo la tambem da uma olhada!

Abraco!

4

Eu fui lá conferir o vídeo e também naveguei pela sua página no youtube.
Achei tudo muito legal!
😀

Você tá no exterior, né. Isso é legal. Eu nunca saí do Brasil mas meu irmão morou na Europa muitos anos e meu pai viveu mais de 15 na América.

Eu também cursei CS50, em 2014. As aulas ministradas pelo Professor David. Foi um incentivo na minha carreira.