Files
claude-workflow/dotfiles/CLAUDE.md
T
martinandClaude Opus 4.6 3ad5ec7754 docs: Abschnitt „Wissen persistieren" zur globalen CLAUDE.md hinzufügen
Definiert klare Regeln, wo Wissen abgelegt wird: repo-spezifisch in CLAUDE.md,
projektübergreifend in ~/.claude/CLAUDE.md, Workarounds in eigener Datei.
Memory-System explizit nicht als primärer Speicherort.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-09 17:50:43 +02:00

3.3 KiB

Globale CLAUDE.md

Sprache

Alle Texte, Kommentare und Kommunikation auf Deutsch. Technische Begriffe und Code-Bezeichner bleiben im Original.

Entwicklungsprinzipien

  • Single Responsibility: Jede Datei, jede Funktion hat genau eine Aufgabe
  • Keine toten Code-Pfade: Unbenutzte Imports, Variablen, Funktionen sofort entfernen
  • Aussagekraeftige Namen: Sprechende Bezeichner statt handleClick, process
  • Keine Magic Numbers: Konstanten mit Namen versehen
  • DRY mit Augenmass: Shared Utilities nur bei echtem Mehrfachgebrauch
  • Fail Fast: Fehlende/ungueltige Konfiguration muss beim Start eine Exception werfen
  • Keine generischen try/except: Spezifische Exceptions fangen
  • Logging statt print: logger verwenden
  • Testpflicht: Kein Code ohne zugehoerigen Test
  • Security by Default: Input-Validierung, Auth-Checks, sichere Defaults. Sicherheitskritische Pfade durch Tests absichern
  • String-Eingaben trimmen: Alle String-Felder beim Anlegen/Update in Services/Schemas trimmen (leading/trailing Whitespace entfernen). Leerstrings werden zu None, wenn das Feld optional ist. Verhindert Sortier-/Vergleichs-/Suchfehler durch unsichtbare Zeichen
  • Kleine Funktionen, keine Kommentare fuer Offensichtliches

Code-Konventionen

  • Backend: Ruff, Type Hints, async, Pydantic-Schemas, Lifespan statt on_event
  • Frontend: <script setup>, ESLint+Prettier, Mobile First, defineEmits camelCase / Template kebab-case
  • DB: Jede Schema-Aenderung braucht eine Alembic-Migration
  • Architektur: api/services/ + models/, nie umgekehrt. HTTPException nur in api/. Eager-Loading in der API-Schicht. Frontend: Props down, Events up
  • Docker Compose: Jeder Service: TZ=Europe/Berlin, Logging 5 MB (json-file, max-size: 5m, max-file: 3), Watchtower-Label default deaktiviert

Agenten-Workflow

Nach jeder Story automatisch ausfuehren: test-runnersecurity-audit. Erst wenn beide ohne kritische Befunde durchlaufen, gilt die Story als abgeschlossen.

Pull Requests

PRs muessen jedes Akzeptanzkriterium einzeln als Checkbox auflisten und bestaetigen, wie es verifiziert wurde. Review-Feedback als separater Commit (nicht amenden).

Git-Workflow

Niemals direkt auf main committen. Alle Aenderungen ueber Feature-Branches und PRs.

Fehlende Tools

Wenn ein benötigtes CLI-Tool fehlt: nicht mit Workarounds (curl, rohe API-Calls) umgehen. Stattdessen:

  1. User informieren welches Tool fehlt und den Installations-Befehl nennen
  2. User führt den Befehl in einer separaten Konsole aus (sudo funktioniert dort)
  3. Tool danach in bootstrap.sh aufnehmen, damit es auf allen Maschinen automatisch installiert wird

Gitea-Integration

Instanz: https://gitea.troeger-net.org. Bot-User claude-code, Token: ~/.config/gitea/token (Datei mit chmod 600). Bot hat nur Collaborator-Rechte.

Wissen persistieren

  • Repository-spezifische Regeln in der jeweiligen CLAUDE.md im Repo ablegen
  • Projektübergreifende Regeln in der globalen CLAUDE.md (~/.claude/CLAUDE.md) ablegen
  • Workarounds immer im Repository dokumentieren (z.B. WORKAROUNDS.md) mit Verweis aus der CLAUDE.md
  • Das Memory-System nicht als primären Speicherort für Regeln verwenden

MCP

Bei Frameworks/Bibliotheken immer Context-7-Dokumentation abrufen (resolve-library-id / query-docs).