Documentation

Graphe de contexte unifié

Graphe de contexte unifié

lean-ctx construit un graphe unifié reliant code, commits, tests, connaissances et issues - permettant un approvisionnement contextuel conscient des tâches et une analyse d'impact approfondie.

Types de nœuds

Le graphe contient 8 types de nœuds représentant différents aspects de votre projet :

📄 File

Fichiers sources suivis par l'indexeur

🔣 Symbol

Fonctions, classes, types et variables

📦 Module

Groupements logiques (packages, crates, modules)

📝 Commit

Commits Git avec message et métadonnées

🧪 Test

Fonctions de test et fichiers de test

🏗️ CIRun

Exécutions de pipeline CI/CD et résultats

🧠 Knowledge

Faits de connaissance projet depuis ctx_session

🎫 Issue

Issues et tickets liés au code

Types d'arêtes

Les arêtes représentent les relations entre nœuds. lean-ctx suit 11 types d'arêtes :

Type d'arêteSignificationExemple
ImportsUn fichier importe un autre fichierA.ts → B.ts
CallsUne fonction appelle une autre fonctionfn_a → fn_b
DefinesUn module définit un symbolemod → fn
TestedByUn fichier est testé par un fichier de testutils.rs → test_utils.rs
ChangedInUn fichier a été modifié dans un commitfile → commit
MentionedInUn fichier est mentionné dans un fait de connaissancefile → knowledge
AffectsUne issue affecte un fichierissue → file
BreaksUn commit casse un testcommit → test

Enrichissement du graphe

L'enrichissement étend le graphe de code avec des données Git, tests et connaissances - créant une vue projet unifiée.

Indexeur d'historique Git

Analyse les commits récents (par défaut : 500 derniers) et crée des nœuds Commit avec des arêtes ChangedIn vers les fichiers concernés.

Indexeur de tests

Détecte les fichiers de test par convention de nommage (test_, _test, _spec) et les lie aux fichiers source via des arêtes TestedBy.

Pont de connaissances

Relie les faits de connaissance projet enregistrés via ctx_session aux fichiers référencés avec des arêtes MentionedIn.

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

Requêtes de contexte

Utilisez des requêtes contextuelles basées sur le graphe pour trouver les fichiers les plus pertinents pour toute tâche - en exploitant les connexions structurelles, historiques et sémantiques.

Utilisation

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

Fonctionnement

  • Extrait les mots-clés de votre description de tâche
  • Associe les mots-clés aux noms de fichiers et messages de commit
  • Étend les résultats via les arêtes du graphe (imports, tests, connaissances)
  • Renvoie une liste classée de fichiers pertinents avec contexte de relation

Export HTML interactif

Exportez votre graphe de dépendances sous forme d'un fichier HTML unique et autonome. Le fichier généré fonctionne entièrement hors ligne - ouvrez-le dans n'importe quel navigateur pour explorer visuellement votre codebase. Pas de serveur, pas de dépendances, juste un fichier HTML.

Utilisation

# 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

Fonctionnalités interactives

🔍 Search

Saisissez une sous-chaîne de chemin de fichier pour mettre en surbrillance les nœuds correspondants instantanément

🖱️ Pan & Zoom

Cliquez et glissez pour déplacer, faites défiler pour zoomer. Fonctionne comme une carte.

📋 Node Details

Cliquez sur un nœud pour voir ses imports et dépendants dans une barre latérale

🔗 Reverse Deps

Cliquez-droit sur un nœud pour mettre en surbrillance tous les fichiers qui en dépendent (parcours BFS)

🖼️ PNG Export

Téléchargez la vue actuelle du canvas en image PNG en un clic

📡 Offline

Aucune dépendance externe. L'application entière est intégrée dans un seul fichier HTML.

Conseils

  • Utilisez --max-nodes pour garder la visualisation lisible pour les grands projets (50–200 est une bonne plage)
  • Exécutez d'abord graph build pour vous assurer que l'index est à jour avant l'export
  • Le fichier HTML peut être partagé en toute sécurité avec vos coéquipiers - il ne contient aucun code source, uniquement des chemins de fichiers et des relations
  • La mise en surbrillance par clic-droit affiche la chaîne complète de dépendances inverses, facilitant l'évaluation du rayon d'impact des modifications

API Dashboard

EndpointDescription
/api/graph/statsNombre de nœuds et d'arêtes, chemin de la base de données
/api/graph/enrichDéclencher l'enrichissement complet du graphe et retourner les statistiques