From e9f902caeb1509743467f3ccbcab67bdaaa0ef2a Mon Sep 17 00:00:00 2001 From: root Date: Mon, 26 Jan 2026 10:31:09 +0100 Subject: [PATCH] README mit Hooks-Dokumentation erweitert --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a321691..be6e95c 100644 --- a/README.md +++ b/README.md @@ -13,29 +13,73 @@ mkdir -p ~/.claude/agents ~/.claude/rules ln -sf ~/dotfiles/claude_settings/settings.json ~/.claude/settings.json ln -sf ~/dotfiles/claude_settings/CLAUDE.md ~/.claude/CLAUDE.md ln -sf ~/dotfiles/claude_settings/statusline-command.sh ~/.claude/statusline-command.sh +ln -sf ~/dotfiles/claude_settings/hooks ~/.claude/hooks ln -sf ~/dotfiles/claude_settings/agents/* ~/.claude/agents/ ln -sf ~/dotfiles/claude_settings/rules/* ~/.claude/rules/ 2>/dev/null || true ``` ## Inhalt -| Datei | Zweck | -|-------|-------| -| `settings.json` | Globale Einstellungen (Model, Plugins, StatusLine) | +| Datei/Ordner | Zweck | +|--------------|-------| +| `settings.json` | Globale Einstellungen (Model, Plugins, StatusLine, Hooks) | | `CLAUDE.md` | Globale Instruktionen für Claude | | `statusline-command.sh` | Custom StatusLine Script | +| `hooks/` | Session-Hooks (automatische Skripte) | | `agents/` | Benutzerdefinierte Agenten | | `rules/` | Modulare Regeln | +## Hooks + +### SessionStart Hook + +Der `session-start.sh` Hook wird bei jedem Start einer Claude Code Session ausgeführt und prüft automatisch auf Updates im Repository. + +**Was er tut:** +- Führt `git fetch` aus +- Vergleicht lokalen Stand mit Remote +- Zeigt Warnung wenn neue Commits verfügbar sind + +**Beispiel-Ausgabe bei Updates:** +``` +⚠ Claude Settings: 3 neue Commits verfügbar! + → cd ~/dotfiles/claude_settings && git pull +``` + +### Eigene Hooks hinzufügen + +1. Script in `hooks/` erstellen +2. Ausführbar machen: `chmod +x hooks/mein-hook.sh` +3. In `settings.json` registrieren: + +```json +{ + "hooks": { + "SessionStart": [...], + "PreToolUse": [...], + "PostToolUse": [...] + } +} +``` + +**Wichtig:** Keine CRLF-Zeilenumbrüche verwenden (nur LF). + ## Workflow **Bei Session-Start:** -```bash -cd ~/dotfiles/claude_settings && git pull -``` +- Hook prüft automatisch auf Updates +- Bei Warnung: `cd ~/dotfiles/claude_settings && git pull` **Nach Änderungen:** ```bash cd ~/dotfiles/claude_settings git add -A && git commit -m "Beschreibung" && git push ``` + +## Dateien die NICHT synchronisiert werden + +Diese Dateien sind in `.gitignore` und bleiben lokal: + +- `.credentials.json` - OAuth-Token +- `*.local.json` - Lokale Overrides +- `cache/`, `debug/`, `history.jsonl` - Session-Daten