CLAUDE.md¶
Projekt-spezifische Anweisungen, die Claude Code bei jedem Start liest.
Speicherort¶
Claude Code sucht automatisch nach beiden Varianten.
Zweck¶
CLAUDE.md ist wie ein "Onboarding-Dokument" für Claude:
- Projekt-Kontext verstehen
- Coding-Standards einhalten
- Architektur-Entscheidungen kennen
- Häufige Fehler vermeiden
Beispiel¶
# CLAUDE.md
## Projekt
E-Commerce Platform (Node.js/TypeScript)
## Architektur
- Backend: Express.js + TypeORM
- Frontend: React + Zustand
- DB: PostgreSQL 15
- Cache: Redis
## Coding Standards
- TypeScript strict mode
- ESLint + Prettier (npm run lint)
- Tests: Jest (npm test)
- Keine `any` Types
## Wichtige Konventionen
- API Endpoints: `/api/v1/resource`
- Alle Responses: `{ data: T, error?: string }`
- Fehler-Handling: Custom AppError Klasse
- Logging: Winston Logger (nicht console.log)
## Nicht anfassen
- `src/legacy/` - Wird migriert, nicht ändern
- `config/prod.json` - Nur DevOps
## Build & Test
```bash
npm run build # TypeScript kompilieren
npm test # Jest Tests
npm run e2e # Playwright E2E
Bekannte Issues¶
- Redis-Connection muss vor DB-Init stehen
- User-Service hat Race Condition bei Bulk-Updates
## Best Practices ### DO ✅ - **Kurz halten** - Claude liest das bei jedem Start - **Konkret sein** - "Nutze Winston Logger" statt "Logging beachten" - **Pfade angeben** - "Siehe `docs/api.md` für API-Spec" - **Commands listen** - Build, Test, Lint Commands ### DON'T ❌ - **Zu lang** - Keine 500 Zeilen - **Zu vage** - "Code sollte gut sein" - **Redundant** - Was offensichtlich ist weglassen - **Veraltet** - CLAUDE.md aktuell halten! ## Struktur-Template ```markdown # CLAUDE.md ## Projekt [1-2 Sätze: Was ist das?] ## Tech Stack [Bullet-Liste der Haupttechnologien] ## Wichtige Commands [Build, Test, Lint, Deploy] ## Coding Conventions [Die wichtigsten 3-5 Regeln] ## Architektur-Notizen [Nur was nicht offensichtlich ist] ## Off-Limits [Was Claude nicht anfassen soll]
CLAUDE.md vs Skills¶
| Aspekt | CLAUDE.md | Skills |
|---|---|---|
| Geladen | Immer | On-demand |
| Scope | Projekt-Kontext | Spezifische Tasks |
| Länge | Kurz (< 100 Zeilen) | Kann lang sein |
| Inhalt | Kontext & Regeln | Workflows & Instructions |
Kombination:
- CLAUDE.md: "Wir nutzen Jest für Tests"
- Skill
/test-gen: "So generierst du Jest-Tests..."
Auto-Memory¶
Claude Code baut auch automatisch "Memory" auf:
Hier speichert Claude Erkenntnisse wie: - Build-Commands die funktioniert haben - Debugging-Insights - Projekt-spezifische Patterns
Diese Auto-Memory ergänzt CLAUDE.md, ersetzt sie aber nicht.
Multi-Projekt Setup¶
Bei Monorepos:
/monorepo/
├── CLAUDE.md # Root: Allgemeine Infos
├── packages/
│ ├── frontend/
│ │ └── CLAUDE.md # Frontend-spezifisch
│ └── backend/
│ └── CLAUDE.md # Backend-spezifisch
Claude lädt die CLAUDE.md basierend auf dem aktuellen Arbeitsverzeichnis.
Troubleshooting¶
CLAUDE.md wird nicht geladen¶
- Dateiname prüfen:
CLAUDE.md(case-sensitive) - Pfad prüfen: Muss im Projekt-Root sein
- Encoding: UTF-8
Inhalt wird ignoriert¶
Claude hat Token-Limits. Wenn CLAUDE.md zu lang ist, wird evtl. gekürzt.
Fix: Kürzen, nur das Wichtigste behalten.