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...