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
Symlinks & Junctions
| ~/.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) |
Warum kein Symlink für GEMINI.md und settings.json
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