claude-meta/docs/FRAMEWORK.md

105 lines
3.7 KiB
Markdown

# 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 |
| `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`
### 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 |
| 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
```powershell
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
```powershell
git clone <repo-url> C:\work\claude-meta
.\scripts\install.ps1
```
### Linux
```bash
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 |
**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.
## 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