claude-meta/docs/FRAMEWORK.md

6.6 KiB

claude-meta Framework

Zentrales Git-Repo für Claude Code Konfiguration. Portabel via git pull.

Architektur

claude-meta/
├── home-claude/    → verlinkt nach ~/.claude/ (Symlinks/Junctions)
├── templates/      → Projekt-Bootstrap via init-project Script
├── memory/         → portables Wissen (manuell kuratiert)
├── scripts/        → Installation, Backup, Projekt-Init
└── docs/           → diese Dokumentation

Was Claude wann weiß (Context-Budget)

Quelle Wann geladen ca. Tokens Beschreibung
~/.claude/CLAUDE.md Immer, jede Session ~200 Prägnanz, Sprache, @import-Liste
rules/*.md On-demand via @import ~50-80/Datei Nur wenn thematisch relevant
projekt/CLAUDE.md Immer im Projekt 500-2000 Build-Commands, Architektur
skills/*.md Nur bei /skill Aufruf 200-500 Skill-Anweisungen
commands/*.md Nur bei /command Aufruf 200-500 Command-Anweisungen
settings.json Nie im Context 0 Intern verarbeitet (Permissions)
memory/*.md Nur wenn referenziert variabel Via @import aus CLAUDE.md
docs/FRAMEWORK.md Nie automatisch 0 Nur wenn manuell gelesen

Vergleich: Vorher ~1500-3500 Tokens pro Session (alles in CLAUDE.md inline). Jetzt: ~200 Tokens base + on-demand.

Wissenszuordnung

Global (home-claude/ → ~/.claude/)

Gilt für alle Projekte auf diesem Rechner:

  • Sprachregeln: Deutsch für Interaktion, Englisch für Code
  • Code-Style: rules/code-style.md
  • .NET Konventionen: rules/dotnet.md
  • Git Workflow: rules/git.md
  • Permissions: settings.json (46 konsolidierte Regeln)
  • Skills: /gemini-image, /review, /plan-project
  • Commands: /branch (globale Slash-Commands)

Projekt-spezifisch (bleibt im Projekt-Repo)

  • CLAUDE.md — Build-Commands, Architektur, Patterns
  • .claude/settings.json — nur projekt-spezifische Permissions (z.B. WebFetch-Domains)
  • .claude/skills/ — projekt-spezifische Skills

Memory (claude-meta/memory/)

  • Manuell kuratiertes Wissen
  • Nicht automatisch geladen
  • Via @import referenzierbar wenn nötig
  • Portabel über git

Dateien anpassen

Änderung Wo Danach
Neue globale Regel home-claude/rules/neue-regel.md + @import in CLAUDE.md git commit + push
Neuer Skill home-claude/skills/name/SKILL.md git commit + push
Neuer Command home-claude/commands/name.md git commit + push
Neue Permission home-claude/settings.json allow-Array git commit + push
Neues Projekt scripts/init-project.ps1 <pfad> <name> Editiere CLAUDE.md
Neuer Rechner git clone + scripts/install.ps1 Fertig

Installation

Erstmalig

git clone <repo-url> C:\work\claude-meta
cd C:\work\claude-meta
.\scripts\backup.ps1      # sichert bestehende ~/.claude/ Dateien
.\scripts\install.ps1     # erstellt Symlinks/Junctions

Neuer Rechner

git clone <repo-url> C:\work\claude-meta
.\scripts\install.ps1

Linux

git clone <repo-url> ~/work/claude-meta
cd ~/work/claude-meta
./scripts/install.sh
~/.claude/ Pfad Verlinkt auf Typ (Windows) Typ (Linux)
CLAUDE.md home-claude/CLAUDE.md File-Symlink Symlink
settings.json home-claude/settings.json File-Symlink Symlink
skills/ home-claude/skills/ Junction Symlink
rules/ home-claude/rules/ Junction Symlink
commands/ home-claude/commands/ Junction Symlink

Wichtig: ~/.claude/ selbst ist IMMER ein echtes Verzeichnis (nie symlinken — Claude Code Bug #764).

Junctions brauchen kein Admin/Developer Mode, funktionieren aber nur auf gleichem Volume.

Gemini CLI & Antigravity Integration

Beide Tools nutzen ~/.gemini/GEMINI.md als globale Anweisungsdatei (analog zu CLAUDE.md). home-claude/rules/ ist die gemeinsame Source of Truth.

Struktur nach install.ps1 / install.sh

~/.gemini/
  GEMINI.md          ← COPY von home-gemini/GEMINI.md (kein Symlink, s.u.)
  settings.json      ← COPY von home-gemini/settings.json (kein Symlink, s.u.)
  rules/             → Junction/Symlink → home-claude/rules/  (geteilt mit Claude)
  skills/
    review/          → Junction/Symlink → home-claude/skills/review/
    plan-project/    → Junction/Symlink → home-claude/skills/plan-project/

Was bei welchem Tool ankommt

Gemini CLI Antigravity IDE
Verhaltensregeln (GEMINI.md)
@rules/* (code-style, dotnet, git)
memory/ (includeDirectories) ✗ (nicht unterstützt)
Skills (review, plan-project) ✗ (s. Hinweis unten)

GEMINI.md: Gemini CLI verweigert Symlinks aus Sicherheitsgründen (Issue #11547, closed "not planned").

settings.json: Gemini CLI überschreibt den Symlink bei jedem automatischen Settings-Update mit einer echten Datei — der Link wird still zerstört (Issue #10960, closed "not planned"). Daher wird auch settings.json immer kopiert. Nach Änderungen an home-gemini/settings.json muss install.ps1 erneut ausgeführt werden.

Antigravity Skills (TODO)

Antigravity nutzt ~/.gemini/antigravity/skills/ statt ~/.gemini/skills/. Die Skills aus home-claude/skills/ sind für Antigravity daher aktuell nicht sichtbar. install.ps1 und install.sh könnten um einen Block erweitert werden, der Junctions/Symlinks nach ~/.gemini/antigravity/skills/review/ und ~/.gemini/antigravity/skills/plan-project/ anlegt.

Regeln nach Änderungen aktualisieren

Regeländerungen in home-claude/rules/ wirken sofort (Junction/Symlink). Für GEMINI.md und settings.json gilt:

.\scripts\install.ps1   # kopiert GEMINI.md und settings.json neu

Achtung: Antigravity überschreibt ~/.gemini/GEMINI.md wenn der User über "+ Global" Regeln hinzufügt. In dem Fall install.ps1 erneut ausführen.

Bekannte Einschränkungen

  • Claude Code Issue #764: Symlink auf ~/.claude/ Verzeichnis → Dateien unsichtbar
  • Junctions nur auf gleichem Volume (C: → C:)
  • @imports haben max 5 Rekursionstiefe
  • Erste @import-Nutzung braucht einmalige Bestätigung pro Projekt
  • Gemini CLI Issue #11547: GEMINI.md darf kein Symlink sein
  • Gemini CLI Issue #10960: settings.json-Symlink wird bei CLI-Updates zerstört
  • Antigravity und Gemini CLI teilen ~/.gemini/GEMINI.md — Antigravity kann die Datei überschreiben