henning thies.

Projektkontext

CLAUDE.md

Projektkontext als Schlüssel zu gutem Output

Dein Projekt-Briefing für Claude

CLAUDE.md ist eine spezielle Datei im Root deines Projekts. Claude liest sie automatisch und kennt damit den Kontext deines Projekts – ohne dass du es jedes Mal erklären musst.

Warum CLAUDE.md?

Stell dir vor, du hast einen neuen Kollegen. Jeden Tag musst du erklären: "Das ist Rails, wir nutzen Hotwire, hier sind die Konventionen..." Anstrengend, oder?

Mit CLAUDE.md schreibst du das einmal auf. Claude liest es automatisch bei jeder Session und kennt den Kontext.

Ohne CLAUDE.md

"Wir nutzen Rails 8 mit Hotwire. Tailwind für Styling. Tests mit Minitest. Konventionen sind..."

→ Jedes Mal erklären

Mit CLAUDE.md

"Füge Validierung zum User-Model hinzu."

→ Claude kennt den Kontext

Grundstruktur

Eine gute CLAUDE.md enthält:

# Projektname

Kurze Beschreibung des Projekts.

## Tech Stack

- Ruby 3.3 / Rails 8
- SQLite
- Hotwire (Turbo + Stimulus)
- Tailwind CSS

## Architektur

Beschreibe die wichtigsten Teile:
- Models: User, Post, Comment
- Hauptflows: Authentication, Posting

## Konventionen

- Tests mit Minitest
- Kein Devise, eigene Magic Link Auth
- Service Objects im app/services/ Ordner

## Commands

```bash
bin/dev              # Server starten
bin/rails test       # Tests laufen
```

Was gehört rein?

1. Tech Stack

Welche Technologien nutzt du? Versionen sind wichtig.

2. Domain Model

Die wichtigsten Models und ihre Beziehungen. Ein ASCII-Diagramm hilft:

User (1) ──< Post (n) ──< Comment (n)

3. Konventionen

Wie ihr Dinge macht. Beispiele:

  • "Wir nutzen Service Objects für komplexe Business Logic"
  • "Keine Callbacks in Models – explizite Aufrufe"
  • "Tests sind Pflicht für neue Features"

4. Commands

Wie man das Projekt startet, testet, deployed.

Fortgeschrittene Patterns

Personas definieren

Gib Claude eine Rolle, die zum Projekt passt:

## Persona

Du bist ein Senior Rails Developer mit 10+ Jahren Erfahrung.
Du kennst die Rails-Konventionen und wendest sie konsequent an.
Du schreibst sauberen, getesteten Code.

Wenn du unsicher bist, fragst du nach bevor du handelst.

Projekt-Glossar

Domain-spezifische Begriffe definieren:

## Glossar

- **Tenant**: Ein Kunde/Account in unserem Multi-Tenant System
- **Workspace**: Bereich innerhalb eines Tenants
- **Member**: User mit Zugang zu einem Workspace

Verbotene Patterns

Explizit sagen, was du NICHT willst:

## Anti-Patterns (NICHT verwenden)

- Keine Callbacks in Models (außer Timestamps)
- Keine before_action für Business Logic
- Keine Service Objects für Simple CRUD
- Kein Devise (wir nutzen eigene Auth)

Response-Templates

Standardisiere Claudes Antworten:

## Response Format

Bei Code-Änderungen:
1. Zeige ERST was du ändern willst
2. Erkläre WARUM
3. Führe dann aus

Bei Fehlern:
1. Analysiere die Ursache
2. Zeige Lösungsoptionen
3. Warte auf meine Entscheidung

CLAUDE.md aktuell halten

Tipp

Lass Claude deine CLAUDE.md updaten:

"Wir haben gerade Feature X hinzugefügt. Update die CLAUDE.md entsprechend."

Gute Zeitpunkte zum Updaten:

  • Neues Model oder wichtiges Feature
  • Neue Konvention eingeführt
  • Tech Stack geändert

Wichtig

Keine Secrets in CLAUDE.md! Die Datei gehört ins Git-Repository und sollte keine API Keys oder Passwörter enthalten.

Weiterführend: Skills, Agents & Commands

CLAUDE.md ist der Anfang. Für wiederkehrende Workflows und spezialisierte Aufgaben gibt es noch mehr Möglichkeiten:

  • Commands – Wiederholbare Prompts als Slash-Befehle
  • Skills – Domänen-Wissen mit strukturierten Workflows
  • Agents – Spezialisierte Assistenten für isolierte Tasks

Mehr dazu im Artikel Skills, Agents & Commands.

Zusammenfassung

  • CLAUDE.md ist dein Projekt-Briefing – einmal schreiben, immer verfügbar
  • Tech Stack, Domain Model, Konventionen – das Wichtigste dokumentieren
  • Personas und Anti-Patterns – steuere Claudes Verhalten
  • Aktuell halten – lass Claude selbst updaten