Dokumentation

Unified Context Graph

Unified Context Graph

lean-ctx erstellt einen einheitlichen Graphen, der Code, Commits, Tests, Wissen und Issues verbindet - für aufgabenbewusste Kontextbereitstellung und tiefgreifende Impact-Analyse.

Knotentypen

Der Graph enthält 8 Knotentypen, die verschiedene Aspekte deines Projekts repräsentieren:

📄 File

Quelldateien, die vom Indexer erfasst werden

🔣 Symbol

Funktionen, Klassen, Typen und Variablen

📦 Module

Logische Gruppierungen (Pakete, Crates, Module)

📝 Commit

Git-Commits mit Nachricht und Metadaten

🧪 Test

Testfunktionen und Testdateien

🏗️ CIRun

CI/CD-Pipeline-Läufe und Ergebnisse

🧠 Knowledge

Projektwissen aus ctx_session

🎫 Issue

Issues und Tickets, die mit Code verknüpft sind

Kantentypen

Kanten repräsentieren Beziehungen zwischen Knoten. lean-ctx verfolgt 11 Kantentypen:

KantentypBedeutungBeispiel
ImportsDatei importiert eine andere DateiA.ts → B.ts
CallsFunktion ruft eine andere Funktion auffn_a → fn_b
DefinesModul definiert ein Symbolmod → fn
TestedByDatei wird von einer Testdatei getestetutils.rs → test_utils.rs
ChangedInDatei wurde in einem Commit geändertfile → commit
MentionedInDatei wird in einem Wissensfakt erwähntfile → knowledge
AffectsIssue betrifft eine Dateiissue → file
BreaksCommit bricht einen Testcommit → test

Graph-Anreicherung

Die Anreicherung erweitert den Code-Graphen mit Daten aus Git, Tests und Wissen - für eine einheitliche Projektansicht.

Git-History-Indexer

Analysiert aktuelle Git-Commits (Standard: letzte 500) und erstellt Commit-Knoten mit ChangedIn-Kanten zu betroffenen Dateien.

Test-Indexer

Erkennt Testdateien anhand von Namenskonventionen (test_, _test, _spec) und verknüpft sie über TestedBy-Kanten mit Quelldateien.

Wissens-Brücke

Verknüpft über ctx_session erfasste Projektwissensfakten mit referenzierten Dateien über MentionedIn-Kanten.

MCP-Befehle

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.

Kontext-Abfragen

Verwenden Sie graphbasierte Kontextabfragen, um die relevantesten Dateien für jede Aufgabe zu finden - unter Nutzung struktureller, historischer und semantischer Verbindungen.

Verwendung

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

Funktionsweise

  • Extrahiert Schlüsselwörter aus deiner Aufgabenbeschreibung
  • Gleicht Schlüsselwörter mit Dateinamen und Commit-Nachrichten ab
  • Erweitert Ergebnisse über Graph-Kanten (Imports, Tests, Wissen)
  • Gibt eine sortierte Liste relevanter Dateien mit Beziehungskontext zurück

Interaktiver HTML-Export

Exportieren Sie deinen Abhängigkeitsgraphen als einzelne, eigenständige HTML-Datei. Die generierte Datei funktioniert vollständig offline - öffnen Sie sie in einem beliebigen Browser, um Ihre Codebasis visuell zu erkunden. Kein Server, keine Abhängigkeiten, nur eine HTML-Datei.

Verwendung

# 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

Interaktive Funktionen

🔍 Search

Geben Sie einen Dateipfad-Teilstring ein, um passende Knoten sofort hervorzuheben

🖱️ Pan & Zoom

Klicken und ziehen zum Schwenken, scrollen zum Zoomen. Funktioniert wie eine Karte.

📋 Node Details

Klicken Sie auf einen Knoten, um seine Imports und abhängigen Dateien in einer Seitenleiste anzuzeigen

🔗 Reverse Deps

Rechtsklicken Sie auf einen Knoten, um alle Dateien hervorzuheben, die von ihm abhängen (BFS-Traversierung)

🖼️ PNG Export

Laden Sie die aktuelle Canvas-Ansicht mit einem Klick als PNG-Bild herunter

📡 Offline

Keine externen Abhängigkeiten. Die gesamte App ist in einer HTML-Datei eingebettet.

Tipps

  • Verwenden Sie --max-nodes, um die Visualisierung bei großen Projekten lesbar zu halten (50–200 ist ein guter Bereich)
  • Führen Sie zuerst graph build aus, um sicherzustellen, dass der Index vor dem Export aktuell ist
  • Die HTML-Datei kann sicher mit Teamkollegen geteilt werden - sie enthält keinen Quellcode, nur Dateipfade und Beziehungen
  • Die Rechtsklick-Hervorhebung zeigt die vollständige Reverse-Dependency-Kette an, was es einfach macht, den Auswirkungsradius von Änderungen zu bewerten

Dashboard-API

EndpunktBeschreibung
/api/graph/statsKnoten- und Kantenanzahl, Datenbankpfad
/api/graph/enrichVollständige Graph-Anreicherung auslösen und Statistiken zurückgeben