Eine CLAUDE.md, die nach sechs Monaten noch stimmt
Eine CLAUDE.md ist die Datei, aus der ein KI-Entwicklungswerkzeug ein Projekt versteht. Anleitungen dazu gibt es viele, und fast alle zeigen dieselbe leere Vorlage: Stack, Befehle, Ordnerstruktur. Nach zwei Monaten stimmt davon die Hälfte nicht mehr, und niemand merkt es — außer dem Assistenten, der weiter danach arbeitet.
Was in fast allen Anleitungen fehlt
Die üblichen Vorlagen beschreiben den Zustand: welche Sprache, welche Befehle, welche Ordner. Das ist richtig und reicht für die erste Woche.
Danach beginnt der Teil, den keine Vorlage abbildet. Ein Umbau nimmt eine Entscheidung zurück. Eine Regel stellt sich als falsch heraus. Ein Bereich wird entfernt, und drei Monate später fragt jemand, wo er geblieben ist.
Die Datei dieses Projekts ist in 26 Commits von 71 Zeilen auf über 1.100 gewachsen. Der größte Teil davon ist nicht Beschreibung, sondern Begründung — und genau der Teil entscheidet, ob sie nach einem halben Jahr noch stimmt.
Warum veraltet eine Projektdatei schneller als der Code?
Code wird ausgeführt. Läuft er nicht mehr, fällt es auf. Eine Beschreibung wird gelesen, und eine falsche Beschreibung liest sich genauso flüssig wie eine richtige.
Dazu kommt der Leser. Ein Mensch, der einen veralteten Satz liest, gleicht ihn stillschweigend mit dem ab, was er im Repo sieht. Ein Assistent tut das nicht — er nimmt den Satz als gegeben und baut darauf auf.
Deshalb ist der teuerste Fehler in so einer Datei nicht die Lücke, sondern die Aussage, die einmal gestimmt hat.
Wie hält man den Verlauf fest, ohne ein zweites Änderungsprotokoll zu pflegen?
Ein eigenes Änderungsprotokoll neben der Datei wird nach drei Einträgen nicht mehr gepflegt. Der Weg, der hier funktioniert, sind Stand-Blöcke im Kopf der Datei selbst.
Jeder Block trägt ein Datum und beantwortet eine Frage: Was hat sich zuletzt geändert und warum. Der neueste steht oben, ältere rutschen nach unten, gelöscht wird keiner.
Das klingt nach Ballast und ist das Gegenteil. Wer nach vier Monaten wissen will, warum eine Seite anders gebaut ist als die daneben, findet die Antwort im Block von damals — samt der Ansage, auf die sie zurückgeht. Diese Datei trägt inzwischen sieben solcher Blöcke.
- Datum im Kopf, neuester Block zuerst
- Was geändert wurde, und auf wessen Ansage
- Alte Blöcke bleiben stehen, sie werden nur nach unten geschoben
Warum steht an jeder Regel eine Begründung?
Eine Regel ohne Anlass ist eine Meinung, und Meinungen werden beim nächsten Umbau überstimmt. Eine Regel mit Anlass ist eine Erfahrung, und die überlebt.
Ein Beispiel aus diesem Repo: Knöpfe bekommen eine Mindesthöhe statt einer festen Höhe. Als Regel allein klingt das nach Geschmack. Der Anlass steht daneben — eine längere Beschriftung lief oben und unten aus der Fläche heraus, weil die Höhe festgeschrieben war.
Dazu gehört die Prüfanweisung: Wer eine Beschriftung verlängert, sieht sie sich bei 360 Pixel Fensterbreite an. Dort bricht zuerst etwas um. Aus drei Zeilen wird so eine Regel, die niemand versehentlich zurücknimmt.
Wohin mit dem, was noch offen ist?
Offene Punkte wandern normalerweise in ein Ticketsystem. Dort sind sie richtig aufgehoben für die Planung — und unsichtbar für den, der gerade an der Datei arbeitet.
Was hier stattdessen funktioniert: ein Warnzeichen im Fließtext, direkt an der Stelle, die betroffen ist. Zwölf solcher Absätze stehen derzeit in dieser Datei.
Der Unterschied ist die Konsequenz. Ein offener Punkt in einem Ticket ist eine Aufgabe. Ein offener Punkt an der Stelle, an der jemand gleich etwas ändern will, ist eine Warnung — und wenn daran eine Folge hängt, steht sie gleich dabei.
Was passiert mit Code, der entfernt wird?
Entfernter Code ist nicht weg, er ist in der Versionsgeschichte. Nur findet ihn dort niemand, der nicht weiß, wonach er sucht.
Deshalb bekommt jede größere Entfernung einen eigenen Abschnitt: was entfernt wurde, warum, unter welcher Commit-Kennung es liegt, und der Befehl, mit dem man es zurückholt. Dazu die Liste dessen, was danach wieder einzutragen ist — Navigationseinträge, Umgebungsvariablen, Weiterleitungen.
Das ist der Abschnitt, der am seltensten gebraucht wird und am meisten spart, wenn es soweit ist.
Warum gehört hinein, was nicht gebaut wird?
Erlaubnisse sind langweilig, Verbote sind wertvoll. Ein Assistent, der weiß, was gewünscht ist, trifft trotzdem hundert Entscheidungen, zu denen nichts dasteht.
Ein Abschnitt darüber, welche Muster ausdrücklich nicht gebaut werden, erspart genau diese Rückfragen. In diesem Projekt steht dort unter anderem, dass Kachelraster mit Symbolen keine Gliederung ersetzen und dass ein Etikett über jeder Überschrift nicht die Hausform ist.
Wichtig ist die Alternative daneben. Ein Verbot ohne Ersatz führt dazu, dass etwas anderes Beliebiges entsteht.
Wie groß darf die Datei werden?
Über tausend Zeilen klingen nach zu viel. Sie sind es nicht, solange die Datei navigierbar bleibt — Überschriften, Ankerlinks, Tabellen statt Absätzen, wo eine Tabelle trägt.
Die Grenze liegt woanders. Sobald ein Abschnitt Entscheidungen enthält, die nicht jeder Arbeitsschritt braucht, gehört er ausgelagert: in eine eigene Regeldatei oder in eine Referenz, die bei Bedarf gelesen wird.
Die Faustregel dahinter ist einfach. Was bei jedem Handgriff gilt, steht in der Hauptdatei. Was nur für eine bestimmte Aufgabe gilt, steht dort, wo diese Aufgabe beschrieben ist.
Woran merkt man, dass sie stimmt?
Nicht daran, dass sie vollständig aussieht. Sondern an einer Frage, die man an jede Zeile stellen kann: Würde eine fremde Person daraus dieselbe Entscheidung treffen wie ich letzten Monat?
Wo die Antwort nein lautet, fehlt nicht Text, sondern der Anlass. Und wo die Antwort niemandem einfällt, war die Regel vermutlich nie eine.
Eine Projektdatei altert nicht an fehlenden Kapiteln, sondern an Sätzen, die einmal gestimmt haben. Was sie trägt, ist nicht die Beschreibung des Zustands — es ist die Begründung an jeder Regel.
Häufige Fragen
Was gehört in eine CLAUDE.md und was nicht?
Hinein gehört, was ein Assistent nicht aus dem Code ablesen kann: warum etwas so gebaut ist, welche Entscheidung verworfen wurde, was ausdrücklich nicht gebaut wird, und was gerade offen ist. Nicht hinein gehört, was der Code selbst schon sagt — eine Auflistung der Ordner veraltet sofort und lässt sich jederzeit nachsehen.
Wie oft muss die Datei aktualisiert werden?
Bei jeder Änderung, die eine Entscheidung enthält. Ein reines Umbenennen braucht keinen Eintrag, eine zurückgenommene Regel schon. Der praktische Weg ist, sie im selben Commit zu ändern wie den Code — nachträglich erinnert sich niemand mehr an den Anlass.
Ist AGENTS.md dasselbe wie CLAUDE.md?
Der Zweck ist derselbe, der Name unterscheidet sich je nach Werkzeug. Wer mehrere Assistenten einsetzt, legt eine Datei an und verweist aus der zweiten darauf, statt beide zu pflegen. Zwei Fassungen desselben Standards sind zwei Standards.
Wie fängt man an, wenn das Projekt schon läuft?
Nicht mit einer Bestandsaufnahme. Der schnellere Weg ist, bei der nächsten Entscheidung anzufangen: eine Regel, ihr Anlass, ihre Prüfanweisung. Nach zehn solchen Einträgen steht mehr Brauchbares darin als in jeder nachträglich geschriebenen Übersicht.
Geschrieben von

Geschäftsführer & Entwickler
Zehn Jahre Konzernerfahrung und sieben Jahre Praxiserfahrung in der Entwicklung von Software- und KI-Lösungen für Unternehmen und Großkonzerne. Schreibt hier über das, was in echten Projekten passiert: welche Automatisierung sich gerechnet hat, welche Architekturentscheidung sich als falsch herausgestellt hat, und was ein KI-System im Betrieb tatsächlich kostet. Führt KITech Software aus Hannover.
