CLAUDE.md Templates¶
Fertige Templates für verschiedene Projekt-Typen – direkt kopieren und anpassen.
Warum Templates?¶
Eine gute CLAUDE.md spart bei jedem Claude-Start Tokens und Missverständnisse. Schlechte CLAUDE.md-Dateien haben zwei Probleme: zu lang (wird ignoriert) oder zu vage (bringt nichts).
Goldene Regel: Alles reinschreiben, was Claude sonst raten müsste. Alles weglassen, was offensichtlich ist.
Template 1: Web Application¶
Für Node.js/Python/Go Web Apps.
# CLAUDE.md
## Projekt
[Projektname] – [1 Satz Beschreibung]
Stack: [z.B. Express.js + PostgreSQL + React]
## Commands
```bash
npm run dev # Dev-Server starten
npm test # Tests ausführen
npm run lint # ESLint
npm run build # Production Build
Coding Standards¶
- TypeScript strict mode, keine
any - ESLint + Prettier (Config in
.eslintrc) - Tests: Jest, Testdateien in
__tests__/neben dem Source - API: RESTful, Versionierung via
/api/v1/
Architektur¶
src/
├── routes/ # Express Router
├── services/ # Business Logic
├── models/ # TypeORM Entities
└── utils/ # Shared Utilities
Wichtig: Services kennen keine HTTP-Konzepte (req/res), nur Routes kennen Express.
Environment¶
.env.exampleals Referenz, nie.envcommitten- Config über
src/config/index.tsladen, nie direktprocess.env
Off-Limits¶
src/legacy/– Migration läuft, nicht anfassenmigrations/– Nur mit explizitem Auftrag ändern
Bekannte Issues¶
- [Kritisches Problem das Claude wissen sollte]
inventory/ ├── production/ # Produktiv-Hosts (mit Vorsicht!) ├── staging/ # Test-Umgebung └── group_vars/ # Variablen nach Gruppe
## Template 2: Network/Infrastructure Für Ansible, Terraform, Netzwerk-Skripte. ```markdown # CLAUDE.md ## Projekt [Projektname] – Automatisierung für [Umgebungsbeschreibung] Scope: [z.B. 15 FortiGates, 3 OPNsense, 20 Cisco Switches] ## Inventory**Immer `--limit` nutzen** bevor `--inventory production` verwendet wird. ## Credentials - Alle Secrets in Vault (`ansible-vault`) - Vault-Password via `ANSIBLE_VAULT_PASSWORD_FILE` - Kein Klartext in Git, nie ## Vendor-spezifisch - **FortiGate:** fortinet.fortios Collection, VDOM immer explizit - **OPNsense:** ansibleguy.opnsense, API Key/Secret aus Vault - **Cisco:** cisco.ios, `network_cli` Connection ## Ausführung ```bash # Syntax Check ansible-playbook site.yml --syntax-check # Dry Run ansible-playbook site.yml --check --diff # Produktiv (mit Bestätigung) ansible-playbook site.yml --limit staging
Off-Limits¶
- Direkte Änderungen an
inventory/production/ohne Plan Mode - Keine Passwörter in
vars/, nur Vault-Referenzen## Template 3: Data Science / ML Für Python Data-Pipelines, Notebooks, ML-Projekte. ```markdown # CLAUDE.md ## Projekt [Projektname] – [Was wird analysiert/vorhergesagt] Stack: Python 3.11, pandas, scikit-learn, [weitere Libs] ## Setup ```bash python -m venv venv source venv/bin/activate pip install -r requirements.txt
Daten¶
data/raw/– Originaldaten, nie änderndata/processed/– Transformierte Daten, reproducierbardata/external/– Externe Quellen
Große Dateien (>10MB) nicht committen – sind in .gitignore
Code-Struktur¶
src/
├── data/ # Daten laden und validieren
├── features/ # Feature Engineering
├── models/ # Modell-Training und -Evaluation
└── viz/ # Visualisierungen
Notebooks in notebooks/ nur für Exploration. Finaler Code in src/.
Reproduzierbarkeit¶
- Random Seeds immer setzen:
RANDOM_SEED = 42 - Modelle mit Metadaten speichern (Datum, Params, Metrics)
- MLflow für Experiment-Tracking
Tests¶
Mindest-Coverage: 80% für src/, Notebooks sind ausgenommen.
## Template 4: Homelab / Self-Hosted
Für Docker Compose, Proxmox, Home Automation.
```markdown
# CLAUDE.md
## Projekt
[Projektname] – Self-hosted [Service] auf [Hardware/VM]
Host: [z.B. Proxmox Node pve-01, 16GB RAM, Ubuntu 22.04]
## Services
| Service | Port | Beschreibung |
|---------|------|--------------|
| [App] | 8080 | [Was macht er] |
| Traefik | 80/443 | Reverse Proxy |
## Deployment
```bash
# Starten
docker compose up -d
# Logs
docker compose logs -f [service]
# Update
docker compose pull && docker compose up -d
Konfiguration¶
- Secrets in
.env(nicht in Git), Vorlage in.env.example - Persistente Daten in
data/(Volume-Mount) - Traefik Labels in
docker-compose.ymlfür Routing
Netzwerk¶
- Services im internen
traefik-networkNetzwerk - Nur Traefik ist nach außen exposed
- DNS:
[service].intern.example.com
Backup¶
data/täglich via [Backup-Tool] nach [Ziel]- Config-Files in Git
Bekannte Eigenheiten¶
- [Service X] braucht 2 Minuten zum Starten, nicht vorher anfassen
## Checkliste: Gute CLAUDE.md ??? success "Pflicht-Inhalte" - [ ] Projekt in 1-2 Sätzen erklärt - [ ] Build/Test/Start Commands - [ ] Wichtigste Coding-Konventionen (3-5 Regeln) - [ ] Off-Limits Bereiche ??? question "Sinnvoll wenn vorhanden" - [ ] Architektur-Diagramm oder Verzeichnisstruktur - [ ] Bekannte Bugs/Eigenheiten - [ ] Environment-Variable Referenz - [ ] Vendor/Library-spezifische Hinweise ??? danger "Weglassen" - [ ] Alles was in der README steht - [ ] Offensichtliche Coding-Standards ("Code soll lesbar sein") - [ ] Mehr als 150 Zeilen - [ ] Veraltete Informationen ## CLAUDE.md für verschiedene Scopes ### Persönliches Setup (~/.claude/CLAUDE.md) Globale Regeln die für alle Projekte gelten: ```markdown # Globale Präferenzen ## Sprache Antworte immer auf Deutsch, außer bei Code und Fachbegriffen. ## Stil - Kurz und direkt, keine langen Einleitungen - Code-Beispiele bevorzugt vor Erklärungen ## Tools - Shell-Skripte: bash, POSIX-kompatibel - Kein PowerShell außer wenn explizit gewünscht
Monorepo-Setup¶
/monorepo/
├── CLAUDE.md # Allgemein: Monorepo-Struktur, gemeinsame Tools
├── packages/
│ ├── api/
│ │ └── CLAUDE.md # API-spezifisch: Express, ORM, Tests
│ └── frontend/
│ └── CLAUDE.md # Frontend: React, State, Components
└── infra/
└── CLAUDE.md # Infra: Terraform, Cloud-Provider
Claude lädt automatisch die CLAUDE.md des aktuellen Verzeichnisses + alle übergeordneten bis zum Repo-Root.