Ursprünglich auf Französisch verfasst. Von KI übersetzt — der Sinn wurde bewahrt, nicht der Stil.
Hauptgedanke
Eine fachliche Ontologie am Code aktuell zu halten, verlangt zwei Vorgänge unterschiedlicher Art, die man trennen muss.
Der erste ist mechanisch: genau ermitteln, was sich geändert hat. Ein Skript liest die Git-Historie und listet die hinzugefügten, geänderten oder entfernten Funktionen, Klassen, Schnittstellen, Module, API-Signaturen und über MCP bereitgestellten Verträge auf. Ein Werkzeug wie Tree-sitter erlaubt es, die syntaktische Struktur zu analysieren, um die betroffenen Elemente zu bestimmen.
Der zweite ist semantisch: verstehen, ob diese Änderungen ein Fachkonzept einführen, verändern oder ihm widersprechen. Eine Klasse ist nicht zwangsläufig ein Konzept; ein neues Package kann bloß eine Umstrukturierung sein; eine Funktion kann eine Regel implementieren, ohne ein Konzept zu sein. Hier kommt ein LLM ins Spiel, das die Bestandsaufnahme mit der Ontologie und mit der Anfrage abgleicht, die die Entwicklung ausgelöst hat, und jede Änderung einordnet: neues Konzept, Konzept mit veränderter Bedeutung, inkohärent gewordene Konzepte, auseinanderlaufendes Vokabular oder rein technische Änderung.
Warum das wichtig ist
Die Trennung macht die Prüfung durchhaltbar. Man lässt ein LLM nicht bei jeder Änderung die ganze Anwendung neu lesen: Man konzentriert seine Analyse auf das, was das Skript benannt hat. Und der Teil, der exakt sein kann, ist es auch, statt einem Modell überlassen zu werden, das ihn nur annähern könnte.
Sie schützt die Ontologie auch vor der Architektur: Das Skript beschreibt die technische Struktur, das LLM entscheidet, was zur Domäne gehört, und eine hexagonale Architektur oder unaufgeräumter Code zwingen dem Fachmodell nicht ihren Zuschnitt auf.
Nuancen und Grenzen
Eine echte fachliche Änderung kann in den Namen keine Spur hinterlassen: Eine geänderte Bedingung innerhalb einer unveränderten Funktion entgeht einer Bestandsaufnahme, die auf Symbolen beruht. Und das semantische Urteil erzeugt False Positives, deren Menge noch nicht bekannt ist.
Offene Fragen
- Wie erkennt man eine fachliche Änderung, die keinen Klassen-, Funktions- oder Signaturnamen ändert?