Documentação

Grafo de contexto unificado

Grafo de contexto unificado

O lean-ctx constrói um grafo unificado que conecta código, commits, testes, conhecimento e issues - permitindo provisionamento de contexto baseado em tarefas e análise de impacto profunda.

Tipos de nó

O grafo contém 8 tipos de nó representando diferentes aspectos do seu projeto:

📄 File

Arquivos fonte rastreados pelo indexador

🔣 Symbol

Funções, classes, tipos e variáveis

📦 Module

Agrupamentos lógicos (pacotes, crates, módulos)

📝 Commit

Commits do Git com mensagem e metadados

🧪 Test

Funções de teste e arquivos de teste

🏗️ CIRun

Execuções de pipeline CI/CD e resultados

🧠 Knowledge

Fatos de conhecimento do projeto via ctx_session

🎫 Issue

Issues e tickets vinculados ao código

Tipos de aresta

Arestas representam relações entre nós. O lean-ctx rastreia 11 tipos de aresta:

Tipo de arestaSignificadoExemplo
ImportsArquivo importa outro arquivoA.ts → B.ts
CallsFunção chama outra funçãofn_a → fn_b
DefinesMódulo define um símbolomod → fn
TestedByArquivo é testado por um arquivo de testeutils.rs → test_utils.rs
ChangedInArquivo foi modificado em um commitfile → commit
MentionedInArquivo é mencionado em um fato de conhecimentofile → knowledge
AffectsIssue afeta um arquivoissue → file
BreaksCommit quebra um testecommit → test

Enriquecimento do grafo

O enriquecimento estende o grafo de código com dados do Git, testes e conhecimento - criando uma visão unificada do projeto.

Indexador de histórico Git

Analisa commits recentes do Git (padrão: últimos 500) e cria nós Commit com arestas ChangedIn para arquivos afetados.

Indexador de testes

Detecta arquivos de teste por convenção de nomes (test_, _test, _spec) e os vincula a arquivos fonte via arestas TestedBy.

Ponte de conhecimento

Vincula fatos de conhecimento do projeto registrados via ctx_session a arquivos referenciados usando arestas MentionedIn.

Comandos MCP

ctx_graph enrich              # Enrich graph with git, tests, knowledge
ctx_graph build               # Index code structure
ctx_graph status              # Show node/edge counts

Community Detection (Louvain)

The Louvain algorithm clusters files into communities based on their dependency relationships. Files that frequently import each other or share transitive dependencies are grouped together, enabling smarter context preloading and relevance scoring for task-driven queries.

PageRank

Computes file importance scores based on the dependency graph structure. Files imported by many others (structural hubs) receive higher PageRank, which is used by Spectral Relevance and Boltzmann Allocation to prioritize high-impact files during context assembly.

Consultas de contexto

Use consultas de contexto baseadas no grafo para encontrar os arquivos mais relevantes para qualquer tarefa - aproveitando conexões estruturais, históricas e semânticas.

Uso

ctx_graph context "fix auth bug"       # Find relevant files for task
ctx_graph related src/auth.rs          # Connected files
ctx_graph impact src/auth.rs           # Blast radius analysis
ctx_graph symbol src/auth.rs::verify   # Symbol definition/usages

Como funciona

  • Extrai palavras-chave da descrição da tarefa
  • Combina palavras-chave com nomes de arquivo e mensagens de commit
  • Expande resultados via arestas do grafo (imports, testes, conhecimento)
  • Retorna uma lista classificada de arquivos relevantes com contexto de relação

Exportação HTML interativa

Exporte seu grafo de dependências como um arquivo HTML único e autossuficiente. O arquivo gerado funciona completamente offline - abra-o em qualquer navegador para explorar visualmente sua base de código. Sem servidor, sem dependências, apenas um arquivo HTML.

Uso

# Export full graph (all nodes)
lean-ctx graph export-html --out graph.html

# Limit to 100 most-connected nodes
lean-ctx graph export-html --out graph.html --max-nodes 100

# Custom project root
lean-ctx graph export-html --out graph.html --root /path/to/project

Funcionalidades interativas

🔍 Search

Digite qualquer substring de caminho de arquivo para destacar os nós correspondentes instantaneamente

🖱️ Pan & Zoom

Clique e arraste para mover, role para ampliar. Funciona como um mapa.

📋 Node Details

Clique em qualquer nó para ver suas importações e dependentes em uma barra lateral

🔗 Reverse Deps

Clique com o botão direito em um nó para destacar todos os arquivos que dependem dele (travessia BFS)

🖼️ PNG Export

Baixe a visualização atual do canvas como imagem PNG com um clique

📡 Offline

Sem dependências externas. A aplicação inteira está incorporada em um único arquivo HTML.

Dicas

  • Use --max-nodes para manter a visualização legível em projetos grandes (50–200 é uma boa faixa)
  • Execute graph build primeiro para garantir que o índice esteja atualizado antes de exportar
  • O arquivo HTML pode ser compartilhado com segurança com colegas de equipe - ele não contém código-fonte, apenas caminhos de arquivos e relacionamentos
  • O destaque por clique direito mostra a cadeia completa de dependências inversas, facilitando a avaliação do raio de impacto das alterações

API do Dashboard

EndpointDescrição
/api/graph/statsContagem de nós e arestas, caminho do banco de dados
/api/graph/enrichAcionar enriquecimento completo do grafo e retornar estatísticas