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ête | Signification | Exemple |
|---|---|---|
Imports | Un fichier importe un autre fichier | A.ts → B.ts |
Calls | Une fonction appelle une autre fonction | fn_a → fn_b |
Defines | Un module définit un symbole | mod → fn |
TestedBy | Un fichier est testé par un fichier de test | utils.rs → test_utils.rs |
ChangedIn | Un fichier a été modifié dans un commit | file → commit |
MentionedIn | Un fichier est mentionné dans un fait de connaissance | file → knowledge |
Affects | Une issue affecte un fichier | issue → file |
Breaks | Un commit casse un test | commit → 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
| Endpoint | Description |
|---|---|
/api/graph/stats | Nombre de nœuds et d'arêtes, chemin de la base de données |
/api/graph/enrich | Déclencher l'enrichissement complet du graphe et retourner les statistiques |