Source: https://claudetutorial.com/guides/de-de/claude-md-erklaert-claude-code-dein-projekt-einmal-beibringen

[Zurück zu Anleitungen](https://claudetutorial.com/guides/de-de)

Builder

# CLAUDE.md erklärt: Claude Code dein Projekt einmal beibringen

27. Oktober 2026 12 Min. Lesezeit

---

Jede neue Claude-Code-Sitzung beginnt mit einem leeren Kopf. Du sagst ihm, dass es pnpm statt npm nutzen soll. Du sagst ihm, wo die Tests liegen. Du sagst ihm, dass es den generierten Ordner nicht anfassen darf. Morgen sagst du das alles noch einmal.

> CLAUDE.md ist der Ort, an dem du aufschreibst, was du sonst immer wieder erklären würdest.

Es ist eine einfache Textdatei in Markdown. Claude Code liest sie zu Beginn jeder Sitzung, alles darin ist also schon vor deinem ersten Prompt bekannt. Dieser Leitfaden zeigt, wohin die Datei gehört, wie du eine schreibst, der Claude folgt, und was du besser weglässt.

## Was CLAUDE.md ist und was nicht

Jede Claude-Code-Sitzung beginnt mit einem frischen Kontextfenster. Zwei Mechanismen tragen Wissen von einer Sitzung in die nächste:

|  | CLAUDE.md | Auto-Memory |
| --- | --- | --- |
| Wer schreibt sie | Du | Claude |
| Was steht drin | Anweisungen und Regeln | Erkenntnisse und Muster, die es aufgreift |
| Geladen | Jede Sitzung | Jede Sitzung (erste 200 Zeilen oder 25 KB) |
| Am besten für | Programmierstandards, Abläufe, Projektaufbau | Deine Korrekturen und Vorlieben |

Beide werden als Kontext geladen. Dieses Wort ist wichtig: Claude liest CLAUDE.md und versucht, ihr zu folgen, aber sie ist keine Einstellung, die erzwungen wird. Eine vage oder widersprüchliche Zeile kann ignoriert werden. Darauf kommen wir im Abschnitt zur Fehlersuche zurück, denn es bestimmt, wie du die Datei schreiben solltest.

Schon eine AGENTS.md?

Hat dein Repository eine AGENTS.md, die für andere Coding-Agenten geschrieben wurde, kann Claude Code sie anstelle einer CLAUDE.md lesen, solange in deinem Arbeitsverzeichnis und darüber keine CLAUDE.md oder CLAUDE.local.md liegt. Existieren beide, liest Claude nur die CLAUDE.md-Dateien. Willst du beide nutzen, importiere die AGENTS.md aus deiner CLAUDE.md. Das direkte Lesen von AGENTS.md braucht Claude Code 2.1.277 oder neuer.

## Wohin die Datei gehört

Es gibt vier Orte, und sie ergänzen sich. Claude lädt sie vom breitesten zum spezifischsten Geltungsbereich, sodass das, was näher an deinem Projekt liegt, zuletzt gelesen wird.

Organisation Nur du, dieses Projekt

1. Verwaltete Richtlinie Von der IT für alle in der Organisation festgelegt
2. Nutzer ~/.claude/CLAUDE.md, deine Vorlieben in jedem Projekt
3. Projekt ./CLAUDE.md oder ./.claude/CLAUDE.md, per git mit deinem Team geteilt
4. Lokal ./CLAUDE.local.md, persönlich für dieses Projekt, nicht in git

Die Dateien werden zusammengefügt, nicht ausgetauscht. Nichts überschreibt etwas, Widersprüche zwischen den Ebenen verwirren Claude also.

Die beiden, die du nutzen wirst, sind die **Projektdatei** und die **Nutzerdatei**.

- **Projektdatei.** Lege `CLAUDE.md` im Stammordner deines Projekts ab oder in einem `.claude`-Ordner im Stamm. Committe sie, damit alle, die am Projekt arbeiten, dieselben Anweisungen bekommen. Schreibe hinein, was für jeden gilt: Build-Befehle, Konventionen, Projektaufbau.
- **Nutzerdatei.** `~/.claude/CLAUDE.md` begleitet dich in jedes Projekt. Nutze sie für persönliche Gewohnheiten, etwa wie Erklärungen formuliert sein sollen.
- **Lokale Datei.** `CLAUDE.local.md` ist für Notizen, die dir gehören und zu einem Projekt passen, wie eine Sandbox-URL. Trage sie in deine `.gitignore` ein, damit sie nicht committet wird.

Claude schaut außerdem in den Ordner, aus dem du gestartet hast, und in jeden Ordner darüber. Startest du in `foo/bar/`, lädt es `foo/bar/CLAUDE.md` und `foo/CLAUDE.md`. Dateien in Ordnern unterhalb von dir werden später bei Bedarf geladen, wenn Claude zum ersten Mal eine Datei in diesem Unterordner liest oder bearbeitet.

## Fang mit /init an

Die erste Fassung musst du nicht von Hand schreiben. Führe in einer Sitzung aus:

my-website

```
> /initAnalyzing your codebase...Created CLAUDE.md with build commands, test instructions and conventions it found.
```

Darstellung des Ablaufs. Die genaue Ausgabe hängt von deiner Version und deinem Projekt ab.

Claude Code liest dein Projekt und schreibt eine CLAUDE.md mit den Build- und Testbefehlen und den Konventionen, die es entdeckt. Gibt es schon eine CLAUDE.md, schlägt `/init` Verbesserungen vor, statt sie zu überschreiben. Betrachte das Ergebnis als ersten Entwurf. Deine Aufgabe ist es, das zu ergänzen, was Claude von allein nicht herausfinden konnte.

Um zu bestätigen, dass die Datei geladen wurde, führe in einer Sitzung `/context` aus und sieh unter **Memory files** nach.

## Was in die Datei gehört

Ein guter Test vor jeder Zeile besteht aus zwei Fragen:

1. Könnte Claude das herausfinden, indem es den Code liest?

   Ordneraufbau, das Test-Framework, die Art, wie bestehende Komponenten gebaut sind: Claude liest das in Sekunden. Es aufzuschreiben macht die Datei schwerer und bringt keinen Wert.
2. Würde es auch wirklich nachsehen?

   Manche Fakten stehen im Repo, kosten aber Minuten, bis man sie ausgräbt, und Claude würde sie in jeder Sitzung neu ausgraben. Die sind eine Zeile wert.

Lauten beide Antworten Ja, lass die Zeile weg. Übrig bleibt, was nie im Code stand oder dessen erneutes Entdecken echte Zeit kostet:

- Die genauen Befehle zum Bauen, Testen und Linten, mit den Flags, die du nutzt
- Eine Entscheidung deines Teams aus einem Meeting, die der Code nicht zeigt
- Die Umgebungsvariable oder der lokale Dienst, den deine Tests brauchen
- Eine Konvention, die vom Standard des Werkzeugs abweicht, und warum
- Dinge, die man nie anfassen soll, etwa ein generierter Ordner

Füge eine Zeile hinzu, wenn Claude denselben Fehler zum zweiten Mal macht, wenn ein Code-Review etwas auffängt, das es hätte wissen müssen, oder wenn du dieselbe Korrektur tippst wie in der letzten Sitzung. Das ist das Zeichen, dass der Fakt in die Datei gehört.

### Ein Beispiel zum Abschauen

Hier ist eine kurze Projektdatei. Beachte, wie jede Zeile etwas ist, das du überprüfen könntest, und wie wenig davon die Architektur beschreibt.

```
# Project notes

## Commands
- Install: pnpm install (never npm or yarn)
- Dev server: pnpm dev (port 3000)
- Tests: pnpm test -- --run, run before every commit
- Typecheck: pnpm typecheck, must pass before a pull request

## Conventions
- 2-space indentation, double quotes
- API handlers live in src/api/handlers/
- Do not edit anything in src/gen/, it is generated by pnpm codegen

## Gotchas
- Integration tests need a local Redis: docker compose up redis
- Dates are stored in UTC, formatted only in the UI layer
```

Das sind 15 Zeilen, und jede verdient ihren Platz.

## Wie du Zeilen schreibst, denen Claude folgt

Weil CLAUDE.md Kontext und keine Konfiguration ist, entscheidet die Formulierung einer Zeile, ob ihr gefolgt wird. Schreibe Anweisungen, die konkret genug zum Überprüfen sind.

| Vage | Konkret |
| --- | --- |
| Format code properly | Use 2-space indentation |
| Test your changes | Run `npm test` before committing |
| Keep files organized | API handlers live in `src/api/handlers/` |
| Be careful with the database | Never run migrations against production, use the staging URL in `.env.staging` |

Halte die Datei dann in Form:

- **Kurz.** Peile unter 200 Zeilen pro Datei an. Längere Dateien brauchen mehr Kontext, und Claude folgt ihnen weniger zuverlässig.
- **Geordnet.** Gruppiere zusammengehörige Zeilen unter Markdown-Überschriften und Aufzählungen. Claude folgt Struktur besser als dichten Absätzen.
- **Widerspruchsfrei.** Widersprechen sich zwei Zeilen, wählt Claude womöglich zufällig eine. Lies deine Dateien hin und wieder durch, auch die in Unterordnern, und lösche alles Veraltete.

Schreien hilft nicht

Ein WICHTIG oder GROSSBUCHSTABEN bei einer Zeile, die Claude ständig übersieht, führt eher dazu, dass es die Regel übertreibt. Kann eine Zeile wirklich nicht nachgeben, gehört sie gar nicht in CLAUDE.md. Sie gehört in einen Hook oder eine Deny-Regel, die Claude Code jedes Mal durchsetzt, egal was das Modell entscheidet.

Damit Claude deine Anweisungsdateien auf veraltete oder widersprüchliche Zeilen prüft, führe `/doctor prompt-audit` aus. Es meldet seine Funde und schlägt Änderungen vor, ändert aber nichts, bevor du darum bittest. Es erfordert Claude Code 2.1.283 oder neuer.

## Andere Dateien importieren

CLAUDE.md kann andere Dateien einbinden, mit einem `@` vor dem Pfad. Die importierte Datei wird zusammen mit der CLAUDE.md geladen, die sie erwähnt.

```
See @README for the project overview and @package.json for the npm commands.

# Additional instructions
- git workflow: @docs/git-instructions.md
```

Relative Pfade werden von der Datei aus aufgelöst, die den Import enthält. Importe können weitere Dateien importieren, bis zu vier Ebenen tief. Das `@` wird nur außerhalb von Code-Spans gelesen, setze einen Pfad also in Backticks, wenn du ihn nennen willst, ohne ihn zu importieren.

Importe helfen bei der Ordnung, verkleinern aber den Kontext nicht: Importierte Dateien werden weiterhin vollständig geladen. Für persönliche Anweisungen, die du in mehreren Kopien desselben Repositorys haben willst, importiere eine Datei aus deinem Home-Ordner, etwa `@~/.claude/my-project-instructions.md`. Importiert ein Projekt zum ersten Mal eine Datei von außerhalb des Arbeitsverzeichnisses, bittet Claude Code um deine Zustimmung.

## Wenn eine Datei zu lang wird

Irgendwann wächst die Datei über das hinaus, was jede Sitzung braucht. Du hast vier Werkzeuge, jedes für eine andere Aufgabe.

| Werkzeug | Einsetzen für | Wird geladen |
| --- | --- | --- |
| CLAUDE.md | Fakten, die in jeder Sitzung nötig sind | Jede Sitzung |
| Regeln in `.claude/rules/` | Anweisungen für einen Teil der Codebasis | Wenn Claude passende Dateien anfasst (bei Bereichsbegrenzung) |
| Skills | Mehrstufige Abläufe, Playbooks fürs Team | Nur bei Verwendung oder Relevanz |
| Hooks | Dinge, die immer oder nie passieren müssen | Von Claude Code selbst ausgeführt |

### Auf bestimmte Dateien begrenzte Regeln

Lege pro Thema eine Markdown-Datei in `.claude/rules/` ab, etwa `testing.md` oder `api-design.md`. Damit eine Regel nur für bestimmte Dateien gilt, ergänze oben ein `paths`-Feld:

```
---
paths:
  - "src/api/**/*.ts"
---

# API rules

- Every endpoint validates its input
- Use the standard error response format
```

Eine Regel ohne `paths` wird in jeder Sitzung geladen. Eine begrenzte wird geladen, wenn Claude eine passende Datei liest oder bearbeitet, was die Anweisungen den Rest der Zeit aus dem Weg hält.

Ist ein Block in CLAUDE.md ein mehrstufiger Ablauf, etwa wie man ein Release vorbereitet, verschiebe ihn stattdessen in einen Skill. Skills werden nur geladen, wenn sie verwendet werden.

## Auto-Memory: die Notizen, die Claude für sich führt

Neben der Datei, die du schreibst, kann Claude Code eigene Notizen führen. Auto-Memory ist in lokalen Sitzungen standardmäßig aktiv. Während Claude arbeitet, speichert es vier Arten von Notizen: über dich (Rolle und Vorlieben), Feedback (Korrekturen und Vorgehensweisen, die du bestätigt hast), das Projekt (Entscheidungen und Fristen, die im Code nicht sichtbar sind) und Verweise (wo man Dinge außerhalb des Projekts findet).

Es speichert nicht, was es aus dem Code lesen kann oder was deine CLAUDE.md bereits sagt. In der Sitzung siehst du Meldungen wie „Saved 2 memories“. Die Notizen sind einfaches Markdown unter `~/.claude/projects/`, und die ersten 200 Zeilen oder 25 KB der Indexdatei werden zu Beginn jeder Sitzung geladen.

Führe `/memory` aus, um alle Anweisungsdateien und den Auto-Memory-Ordner zu sehen, sie in deinem Editor zu öffnen und Auto-Memory ein- oder auszuschalten. Sagst du Claude „always use pnpm, not npm“, speichert es das in Auto-Memory. Soll etwas stattdessen in CLAUDE.md landen, sag es so: „add this to CLAUDE.md“.

In Claude Tutorial

Aufschreiben, was du sonst wiederholen würdest

Dieselbe Korrektur in eine dauerhafte Anweisung zu verwandeln, ist eine Gewohnheit, die sich bei jeder Arbeit mit Claude auszahlt, nicht nur bei Code, und eine, die die App Schritt für Schritt vermittelt.

Bald verfügbar

[ERHÄLTLICH BEI Google Play](https://play.google.com/store/apps/details?id=com.claudetutorial.mobile)

## Wenn Claude nicht folgt

Geh diese Punkte der Reihe nach durch. Sie lösen die meisten Fälle.

1. Prüfe, ob die Datei wirklich geladen wurde

   Führe `/context` aus und sieh unter Memory files nach. Fehlt deine Datei dort, kann Claude sie nicht sehen. Eine CLAUDE.md in einem Unterordner erscheint beim Start nicht, weil sie bei Bedarf geladen wird.
2. Mach die Zeile konkreter

   Ersetze „Code hübsch formatieren“ durch „2 Leerzeichen Einrückung verwenden“. Eine Zeile, die du überprüfen kannst, ist eine Zeile, der Claude folgen kann.
3. Suche nach Widersprüchen

   Zwei Dateien, die Unterschiedliches über dasselbe Verhalten sagen, lassen Claude raten. Prüfe Projektdatei, Nutzerdatei und alle Regeln gemeinsam.
4. Kürze die Länge

   Eine lange Datei verwässert jede Zeile. Verschiebe den Teil über einen Bereich in eine begrenzte Regel und streiche, was Claude selbst lesen kann.
5. Erzwinge es, wenn es passieren muss

   Muss eine Anweisung an einem festen Punkt laufen, etwa vor jedem Commit, schreibe sie als Hook. Ein Hook wird von Claude Code ausgeführt, das Modell kann ihn also nicht überspringen.

Zwei weitere Fälle sind gut zu kennen. Nach einem `/compact` wird die CLAUDE.md im Stamm deines Projekts erneut von der Festplatte gelesen, sie bleibt also erhalten. Eine Anweisung, die du nur im Gespräch gegeben hast, bleibt nicht erhalten, verschiebe sie also in die Datei. Und ist eine CLAUDE.md in einem Unterordner sehr lang (mehr als etwa 40.000 Zeichen in einem kleineren Kontextfenster), bekommt Claude nur ihren Anfang, halte diese also kurz.

## Häufige Fragen

### Wohin lege ich CLAUDE.md?

In den Stamm deines Projekts (`./CLAUDE.md`) oder nach `./.claude/CLAUDE.md`. Persönliche Vorlieben für alle Projekte kommen nach `~/.claude/CLAUDE.md`. Nutze `./CLAUDE.local.md`, eingetragen in `.gitignore`, für private Notizen zu einem Projekt.

### Wie lang sollte eine CLAUDE.md sein?

Peile unter 200 Zeilen an. Bist du darüber, zeigt Claude Code beim Start und in `/status` eine Warnung. Verschiebe bereichsspezifische Teile in begrenzte Regeln und streiche, was Claude aus dem Code lesen kann.

### Ist CLAUDE.md dasselbe wie ein System-Prompt?

Nein. CLAUDE.md wird als Nachricht nach dem System-Prompt geliefert. Claude versucht, ihr zu folgen, aber strikte Einhaltung ist nicht garantiert. Für Anweisungen, die jedes Mal gelten müssen, nutze einen Hook oder eine Berechtigungsregel.

### Sollte ich CLAUDE.md in git committen?

Ja für die Projektdatei, damit das ganze Team sie teilt und sie mit jeder Korrektur besser wird. Nein für `CLAUDE.local.md`, die persönlich ist.

### Liest Claude CLAUDE.md in Unterordnern?

Ja, bei Bedarf. Es lädt die Datei eines Unterordners, sobald Claude zum ersten Mal eine Datei in diesem Ordner liest oder bearbeitet, und zeigt eine Loaded-Zeile mit dem Pfad.

### Was ist der Unterschied zwischen CLAUDE.md und einem Skill?

CLAUDE.md ist für Fakten, die in jeder Sitzung nötig sind. Ein Skill ist ein Ablauf oder Playbook, das nur geladen wird, wenn es aufgerufen wird oder relevant ist, und so die übrige Zeit keinen Platz belegt.

## Deine CLAUDE.md-Checkliste

- Die Datei liegt im Stamm des Projekts und ist committet, mit einer getrennten lokalen Datei in `.gitignore` für alles Persönliche
- Sie enthält deine Build-, Test- und Lint-Befehle genau so, wie du sie ausführst
- Jede Zeile besteht den Test: Claude könnte es nicht aus dem Code lernen oder würde Zeit damit verschwenden, es neu zu entdecken
- Keine zwei Zeilen widersprechen sich, und die Datei hat weniger als 200 Zeilen
- `/context` listet die Datei unter Memory files auf

## Weiterlesen

- [Claude Code für Einsteiger: installieren, anmelden und die erste Aufgabe](https://claudetutorial.com/guides/de-de/claude-code-fuer-einsteiger-installieren-anmelden-erste-aufgabe), falls du noch keine Sitzung gestartet hast.
- [Best Practices für Claude Code: Gewohnheiten für bessere Ergebnisse](https://claudetutorial.com/guides/de-de/best-practices-fuer-claude-code-gewohnheiten-fuer-bessere-ergebnisse) für Prompts, Prüfungen und Kontextverwaltung.
- [Berechtigungsmodi und Plan-Modus von Claude Code erklärt](https://claudetutorial.com/guides/de-de/berechtigungsmodi-und-plan-modus-von-claude-code-erklaert), um zu entscheiden, was Claude ohne Nachfrage tun darf.
- [Claude Projekte: Kontext, der bleibt](https://claudetutorial.com/guides/de-de/claude-projekte-kontext-der-bleibt) für dieselbe Idee in der Claude-App: dauerhafte Anweisungen, die zu einem Projekt gehören.
