TIPS 03 · MEMORIA

Die Datei, die Claude vor allem anderen liest

Meine CLAUDE.md zum Kopieren, Zeile für Zeile: was hineingehört, wo sie hingehört und wie du prüfst, dass Claude Code sie in jeder Sitzung liest.

Was es ist und warum es zählt

Jede Sitzung von Claude Code beginnt mit leerem Kontext. Was du gestern im Chat erklärt hast, ist heute nicht mehr da. Also fängst du von vorne an: „also, meine App ist …“. Und wenn du es mal vergisst, rät Claude: das Werkzeug, den Ordner, wie viel es ändern darf.

Genau dafür ist die CLAUDE.md da. Sie ist eine einfache Textdatei im Projektordner, mit den Regeln, die immer gelten sollen. Claude Code liest sie zu Beginn jeder Sitzung, noch vor deiner ersten Nachricht. Deshalb nenne ich sie die Datei, die Claude vor allem anderen liest.

Das zählt, weil du einmal aufschreibst, was du sonst jeden Tag wiederholen würdest. Claude startet schon mit diesem Wissen, und du kommst direkt zu dem, was du machen willst.

Eine Sache solltest du gleich wissen: Sie ist eine Anweisung, kein Vorhängeschloss. Claude liest sie und versucht, ihr zu folgen, und je klarer die Regeln sind, desto besser hält es sich daran. Um etwas wirklich zu sperren, reicht sie aber nicht: Mehr dazu in den Fragen ganz unten.

1. Meine Datei zum Kopieren

Hier ist meine Datei zum Kopieren, an einer Beispiel-App: einem Rezeptbuch. Es sind zehn Zeilen. Ersetze die Teile zwischen < > durch die deines Projekts und lösch die Zeichen < >.

Die Datei
# <Rezeptbuch>: <Rezept-App>
Stack: <Next.js und TypeScript>
Code in <src/>, Tests in <tests/>
Fass <.env> und <den Zahlungsordner> nicht an
Frag, bevor du Dateien löschst
Lies, bevor du änderst
Nach jeder Änderung: <npm test>, und sag mir das Ergebnis
Eine Änderung nach der anderen
Sprich mit mir auf Deutsch
Schreib den Code auf Englisch

Die Zeilen ohne < > lasse ich in allen Projekten gleich. Die, die überall gelten, wie die Sprache, verschiebe ich sogar in die Datei meines Benutzers: Dazu gleich mehr.

2. Die zehn Zeilen erklärt

Jede Zeile steht da, weil sie mir ein Problem abgenommen hat, das ich oft hatte:

  1. Was die App ist. Kein „also, meine App ist …“ mehr in jeder neuen Sitzung.
  2. Womit sie gebaut ist. Claude schlägt dir keine anderen Werkzeuge vor als die, die du schon nutzt.
  3. Wo der Code und wo die Tests liegen. Claude sucht sie nicht jedes Mal.
  4. Was es nicht anfassen darf. Schlüssel und Geld bleiben deine Sache: Geheime Schlüssel liegen meist in der Datei .env, und bei den Zahlungen richtet ein Fehler den größten Schaden an. Aber es ist eine Anweisung, keine Sperre: Um es wirklich zu sperren, brauchst du eine Deny-Regel oder einen Hook. Darüber schreibe ich in der Anleitung GUARDIA (strikt.fit/guardia).
  5. Frag vor dem Löschen. Keine Überraschungen beim Löschen.
  6. Lies, bevor du änderst. Claude versteht, was da ist, bevor es etwas neu schreibt.
  7. Der Testbefehl. Er beweist, dass die App noch funktioniert. Und ich will das Ergebnis sehen, nicht nur, dass er ausgeführt wurde.
  8. Eine Änderung nach der anderen. Kleine Schritte: Wenn etwas kaputtgeht, weißt du, wo.
  9. Die Sprache. Claude antwortet dir in deiner Sprache.
  10. Der Code auf Englisch. Namen, Funktionen und Kommentare bleiben auf Englisch, so wie sie jeder lesen kann.

Das sind alles Dinge, die man dem Code nicht ansieht oder nur nach langem Suchen: Genau das lohnt sich aufzuschreiben.

3. Wo sie hingehört

Der Name ist immer CLAUDE.md. Was sich ändert, ist der Ordner, und der Ordner bestimmt, wo sie gilt:

  • Im Hauptordner des Projekts: ./CLAUDE.md oder ./.claude/CLAUDE.md. Beide sind gleichwertig, nimm eine. Darin stehen die Regeln dieses Projekts, und wenn das Projekt auf git liegt, sieht sie auch, wer mit dir daran arbeitet.
  • In der Datei deines Benutzers: ~/.claude/CLAUDE.md. Regeln, die für alle deine Projekte gelten, wie die Sprache, gehören hierhin. Nur du siehst sie.

Claude Code liest sie zu Beginn jeder Sitzung, und zwar beide: Sie addieren sich, sie ersetzen sich nicht. Wiederhol im Projekt also nicht, was schon in der Datei deines Benutzers steht, und achte darauf, dass sie sich nicht widersprechen: Wenn zwei Zeilen Gegensätzliches sagen, kann Claude der einen oder der anderen folgen.

Wenn du eine Datei änderst, öffne eine neue Sitzung: So bist du sicher, dass Claude mit der aktuellen Version arbeitet.

4. Wie du sie anlegst und bearbeitest

  1. Öffne Claude Code im Projektordner und tipp /init. Claude schaut sich deinen Code an und schreibt dir eine erste CLAUDE.md, mit den Befehlen zum Bauen und Testen des Projekts und den Konventionen, die es findet. Gibt es schon eine CLAUDE.md, wird sie nicht überschrieben: Du bekommst Verbesserungsvorschläge.
  2. Dann ergänzt du die Regeln, die Claude allein nicht erraten kann: was tabu ist, wie es arbeiten soll, in welcher Sprache es mit dir spricht. Das sind die aus meiner Datei oben.
  3. Zum Bearbeiten tippst du /memory. Du siehst die Memory-Dateien des Projekts und deines Benutzers. Wähl die Datei, und sie öffnet sich in deinem Editor; gibt es sie nicht, wird sie angelegt.
  4. Um zu prüfen, ob sie geladen wurde, tippst du in einer neuen Sitzung /context und schaust dir die Liste unter Memory files an. Deine CLAUDE.md-Dateien müssen dort stehen: Fehlt eine, sieht Claude sie nicht.

Neue Regeln kann Claude auch selbst eintragen. Wenn du merkst, dass eine fehlt:

Der Prompt
Füg der CLAUDE.md des Projekts diese Regel hinzu: [die Regel]. Schreib sie in eine Zeile, kurz und genau.

Es kommt darauf an, wie du es sagst. Mit „füg es der CLAUDE.md hinzu“ landet es in der Datei. Sagst du nur „merk dir, dass …“, speichert Claude es meist in seinem automatischen Gedächtnis, und das ist etwas anderes: Ich erkläre es in den Fragen ganz unten.

5. Halt sie kurz

Halt sie kurz und genau: Je klarer und weniger die Regeln sind, desto eher hält sich Claude daran. Die Dokumentation von Claude Code empfiehlt, unter 200 Zeilen pro Datei zu bleiben: Darüber werden die Regeln schlechter befolgt.

Genau heißt: Man kann es überprüfen. „Führ nach jeder Änderung npm test aus“ funktioniert besser als „teste den Code gründlich“. „Der Code liegt in src/“ funktioniert besser als „halte die Dateien ordentlich“.

Und dann muss sie lebendig bleiben. Ich halte mich an drei Regeln:

  • Wenn du Claude dasselbe zweimal sagst, fehlt eine Zeile: Füg sie hinzu.
  • Wenn eine Zeile nicht mehr stimmt, streich sie.
  • Wenn Claude etwas selbst sieht, sobald es den Code öffnet, musst du es nicht aufschreiben.

Häufige Fehler

  • Die Datei von /init so lassen, wie sie ist. Sie ist eine Grundlage: Ergänze die Regeln, die man im Code nicht sieht, etwa was tabu ist und in welcher Sprache Claude mit dir spricht.
  • In jedem Projekt die Regeln wiederholen, die überall gelten. Schreib sie einmal in ~/.claude/CLAUDE.md.
  • Vage Regeln schreiben, etwa „pass auf“. Schreib Dinge, die man überprüfen kann: einen Befehl, einen Ordner, eine Datei.
  • Sie wie ein Vorhängeschloss behandeln. Sie ist eine Anweisung: Um eine Datei wirklich zu sperren, brauchst du eine Deny-Regel in den Berechtigungen von Claude Code oder einen Hook.
  • Sie ändern und in derselben Sitzung weitermachen, als ob Claude die Änderung sieht. Öffne eine neue Sitzung und prüf mit /context.

Checkliste

  • Die CLAUDE.md liegt im Hauptordner des Projekts
  • Die Teile zwischen < > beschreiben jetzt mein Projekt
  • Der Befehl, der die Tests startet, steht drin
  • Die Sprache steht in ~/.claude/CLAUDE.md, nicht in jedem Projekt
  • In einer neuen Sitzung zeigt /context sie unter Memory files
  • Sie ist kurz, ohne doppelte oder veraltete Zeilen

Häufige Fragen

Hat Claude Code nicht schon ein eigenes Gedächtnis?

Ja, das automatische Gedächtnis (auto memory), standardmäßig an: Claude macht sich selbst Notizen, zum Beispiel zu deinen Korrekturen, und liest sie in späteren Sitzungen wieder. Der Unterschied ist, wer schreibt: Die CLAUDE.md schreibst du, und sie ist der Ort für Regeln; das automatische Gedächtnis schreibt Claude. Mit /memory kannst du seinen Ordner öffnen oder es ausschalten.

Wenn ich „fass .env nicht an“ schreibe, kann ich sicher sein, dass Claude sie nicht öffnet?

Nein. Die CLAUDE.md ist Kontext: Claude liest sie und versucht, ihr zu folgen, aber sie hält es nicht auf. Für eine echte Sperre gibt es die Berechtigungsregeln in den Einstellungen von Claude Code: Mit einer Verbotsregel wie Read(./.env) hindert Claude Code seine Lesewerkzeuge daran, diese Datei zu öffnen, egal was Claude entscheidet. Die Zeile in der CLAUDE.md lässt du trotzdem drin: Sie sagt Claude, was es vermeiden soll, auch dort, wo du keine Sperre eingerichtet hast.

Meine CLAUDE.md ist sehr lang geworden. Was mache ich?

Streich zuerst die Zeilen, die nicht mehr stimmen, und die, die Claude aus dem Code versteht. Bleiben Regeln, die nur für einen Teil des Projekts gelten, kannst du sie in eigene Dateien im Ordner .claude/rules/ verschieben: Wenn du oben in der Datei angibst, für welche Dateien sie gelten, werden sie nur geladen, wenn Claude an diesen Dateien arbeitet. Sie mit @Pfad-Importen auf mehrere Dateien aufzuteilen hilft beim Ordnen, macht sie aber nicht leichter: Auch importierte Dateien werden am Anfang geladen.

← Alle Anleitungen