Zum Inhalt springen
Reality Graph

FunktionCodeGraph

Eine Karte eures Codes, und der Beleg, dass sie noch stimmt

moduleclassclassfnfnfnfncheckout.py:118
CodeGraph ist ein lokaler Code-Index für KI-Coding: ein Knoten je Modul, Klasse, Funktion und Methode, verankert an Datei und Zeile, deterministisch aus der Python-Standardbibliothek auf eurer eigenen Maschine gebaut. Ein Inhalts-Hash sagt euch, ob die Karte noch zum Code passt. Nur Python, andere Sprachen ergeben einen leeren Graphen.

Zuletzt aktualisiert:

Was ihr bekommt

Wo ist das definiert, und stimmt die Antwort noch?

Die erste Frage beantwortet jeder Index. Die zweite entscheidet, ob die Antwort etwas wert ist, und genau die bekommt ein einmal gebauter, nie geprüfter Index still falsch.

codegraph/index (Auszug)

Beispiel – illustrativ, keine echten Indexdaten
module   src/checkout/validation
  class  PostcodeValidator      src/checkout/validation.py:14
    def  validate               src/checkout/validation.py:31
    def  _normalise             src/checkout/validation.py:58
  def    validate_address       src/checkout/validation.py:77

nodes 412   files 63   aus Inhalts-Hashes gebaut

Der Index ist deterministisch: Derselbe Code ergibt denselben Graphen, ohne Ranking-Schritt und ohne Modell im Weg. Jeder Knoten trägt Datei und Zeile, eine Antwort lässt sich also öffnen, statt geglaubt zu werden.

Aktualität

Eine veraltete Karte ist schlimmer als keine. Also sagt sie es.

Veralten ist der teuerste Fehlerfall, weil ein veralteter Index selbstbewusst falsch ist statt sichtbar unvollständig.
ZustandWoraus er entstehtWas das für den nächsten Run heißt
AktuellJede indizierte Datei hasht auf das, was im Graphen steht.Auf Treffer ist Verlass, soweit der Graph reicht.
VeraltetMindestens ein Inhalts-Hash passt nicht mehr.Vor dem nächsten Treffer neu bauen. Reality Graph meldet es und baut nicht hinter eurem Rücken neu.
UnvollständigDateien unter den deklarierten Wurzeln wurden nicht indiziert, etwa Quellen, die nicht Python sind.Die Karte hat Ränder. Ein fehlendes Symbol heißt unbekannt, nicht nicht vorhanden.
Die drei Zustände. Weil über Inhalts-Hashes geprüft wird, gilt ein frischer Clone mit zurückgesetzten Zeitstempeln nicht als veraltet, und eine Änderung mit erhaltenem Zeitstempel wird trotzdem erkannt.

Geprüft wird, wenn ein Befehl läuft. Es gibt keinen Watcher, keinen Daemon und kein inkrementelles Update: Jeder Neubau liest jede Datei unter den deklarierten Wurzeln erneut.

Bewusst so gebaut

Nur Python, und ihr hört es zuerst von uns

Eine Karte, der man über ihre Ränder hinaus vertraut, ist schlimmer als gar keine. Deshalb stehen die Ränder hier und nicht in Woche drei.

Was ihr bekommt

  • Jedes deklarierte Python-Modul, jede Klasse, Funktion und Methode indizieren, verankert an Datei und Zeile.
  • Auf eurer Maschine laufen, mit fünf Standardbibliothek-Importen und einem Selbsttest, der Sockets blockiert.
  • Aktuell, veraltet oder unvollständig über Inhalts-Hashes melden, sodass ein Clone nicht fälschlich veraltet ist.
  • Lektionen lokal festhalten, an echten Symbolen verankert und nach Relevanz für die aktuelle Aufgabe bewertet.

Was es nicht ist

  • Andere Sprachen als Python lesen. Es gibt keinen zweiten Parser, andere Repositories ergeben nichts.
  • Inkrementell aktualisieren oder das Dateisystem beobachten. Jeder Neubau liest alles erneut.
  • Beantworten, was der Code bedeutet. Es beantwortet, wo er deklariert ist.
  • Eine Lektion in einen Prompt einfügen. Lektionen bleiben Kandidaten, die ihr anschaut, und geteilt wird nichts.

Die Lokalitätszusage gilt der Indexschicht. Ein Coding-Run als Ganzes läuft über das Werkzeug, das ihr benutzt, und das hat seinen eigenen Datenweg.

Was ein Coding-Tool wirklich bekommt, entscheidet das Context Pack, und was eure Maschine überhaupt verlässt, steht auf der Seite zum Datenweg.

Fragen, die wirklich gestellt werden

Welche Sprachen liest der Index?
Python, und nur Python. Der Datei-Walker nimmt .py an, einen zweiten Parser gibt es nicht, also ergibt ein Repository in jeder anderen Sprache einen leeren Graphen. Das ist eine echte Grenze und keine Roadmap-Notiz, und sie sollte entscheiden, ob diese Seite für euch relevant ist.
Schickt der Aufbau des Index meinen Code irgendwohin?
Nein. Die Indexschicht importiert argparse, ast, hashlib, json und os, sonst nichts, und der Selbsttest des Tokenizers blockiert Sockets, um zu belegen, dass nichts geladen wird. Diese Aussage gilt der Indexschicht, nicht einem Coding-Run als Ganzem.
Wie vermeidet die Prüfung ein falsches „veraltet“ nach einem Clone?
Sie hasht Inhalte, statt Zeitstempel zu lesen. Ein frischer Clone setzt die Dateizeiten zurück, aber nicht die Bytes, wird also nicht fälschlich als veraltet gemeldet, und eine Änderung mit erhaltenem Zeitstempel wird trotzdem erkannt. Geprüft wird, wenn ein Befehl läuft; nichts beobachtet im Hintergrund das Dateisystem.
Entscheidet der Index, was das Modell zu sehen bekommt?
Nein. Er beantwortet, wo etwas definiert ist. Was ein Coding-Tool bekommt, entscheidet die Vorgabe und stellt das Context Pack zusammen; der Index legt dort nichts hinein.

Fragt eure Codebase, wo etwas definiert ist

Und fragt danach, ob diese Antwort noch stimmt. Die zweite Frage können die meisten Indizes gar nicht beantworten.