FunktionCodeGraph
Eine Karte eures Codes, und der Beleg, dass sie noch stimmt
Zuletzt aktualisiert:
Was ihr bekommt
Wo ist das definiert, und stimmt die Antwort noch?
codegraph/index (Auszug)
Beispiel – illustrativ, keine echten Indexdatenmodule 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 gebautDer 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.
| Zustand | Woraus er entsteht | Was das für den nächsten Run heißt |
|---|---|---|
| Aktuell | Jede indizierte Datei hasht auf das, was im Graphen steht. | Auf Treffer ist Verlass, soweit der Graph reicht. |
| Veraltet | Mindestens 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ändig | Dateien 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. |
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
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.