--- name: vault-janitor description: Organisiert den Vault durch Memory Distillation, Skill Audits und Integrity Checks. Extrahiert Patterns aus Logs, prüft YAML-Frontmatter und aktualisiert den vault-index. Für Wartung und Aufräumen. argument-hint: [mode: distill|audit|propose|sync-projects|anti-pattern-detect|stats|index|check] allowed-tools: Read, Write, Edit, Glob, Grep, Bash --- # ROLE Du bist der "Hausmeister" dieses Vaults. Dein Ziel ist es, die Entropie zu verringern und sicherzustellen, dass Claude jederzeit die präzisesten und aktuellsten Informationen findet. # AUFGABEN-MODI ## 1. Memory Distillation (distill) - Wissen destillieren **Ziel:** Extrahiere Patterns aus Session-Logs **Vorgehen:** 1. Scanne `/memory/log/` nach allen .md Dateien (außer archive/) 2. Identifiziere wiederkehrende Muster: - Gleiche Probleme (z.B. "N+1 Query" mehrfach erwähnt) - Bewährte Lösungen (z.B. "select_related nutzen") - Lessons Learned (aus "Lessons Learned" Sektionen) 3. Für jedes Pattern (≥2 Vorkommen): - Erstelle/Update Eintrag in `/memory/patterns.md` - Format: `## Pattern-Name`, `**Problem:**`, `**Lösung:**`, `**Beispiel:**` 4. Verschiebe verarbeitete Logs nach `/memory/log/archive/` 5. Erstelle Report: Wieviele Patterns extrahiert, wieviele Logs archiviert **Trigger:** Wenn ≥5 neue Logs vorhanden --- ## 2. Skill Audit (audit) - Fähigkeiten-Check **Ziel:** Validiere alle Skills auf Konsistenz und Aktualität **Vorgehen:** 1. Finde alle `SKILL.md` Files in `/skills/` 2. Prüfe YAML-Frontmatter: - Zeile 2: `name:` vorhanden? (lowercase, hyphens only) - Zeile 3: `description:` vorhanden? (max 200 Zeichen) - `argument-hint:` vorhanden? - `allowed-tools:` vorhanden? 3. Prüfe auf Konflikte: - Duplikate (gleicher `name:` mehrfach) - Widersprüchliche Anweisungen (z.B. Django 5.0 vs 5.2) 4. Prüfe Aktualität: - Veraltete Tech-Stacks (vs. `/knowledge/preferences.md`) - Verweise auf nicht-existierende Dateien 5. Erstelle Report mit Findings (Critical, Warning, Info) **Output:** Audit-Report in `/memory/snapshots/YYYY-MM-DD_skill-audit.md` --- ## 3. Skill-Proposal-Detection (propose) - NEU ✨ **Ziel:** Erkenne wiederholte Aufgaben und schlage neue Skills vor **Vorgehen:** 1. Scanne `/memory/log/` nach Beschreibungen (Session-Logs) 2. Identifiziere wiederkehrende Aufgaben (≥3x gleiche Worte/Pattern) 3. Für jedes Pattern: - Generiere Skill-Name aus Aufgabe (lowercase, hyphens) - Erstelle Proposal in `/skills/proposals/YYYY-MM-DD_.md` - Template nutzen mit Trigger-Count und erkanntem Muster 4. Verhindere Duplikate (skip wenn Proposal bereits existiert) 5. Report: Wieviele neue Proposals erstellt **Beispiel:** - 3x "Django Model für X erstellen" → Proposal: `django-model-generator` - 4x "API Tests schreiben" → Proposal: `api-test-generator` **Output:** Proposals in `/skills/proposals/`, Report mit Links --- ## 4. Projekt-Sync (sync-projects) - NEU ✨ **Ziel:** Synchronisiere alle Projekt-MEMORYs zwischen Claude und Vault **Vorgehen:** 1. Rufe `scripts/sync-project-memory.sh` auf (via Bash tool) 2. Lese Output und parse Sync-Status 3. Erstelle Zusammenfassung: - Wieviele Projekte synchronisiert - Welche Richtung (Claude → Vault oder Vault → Claude) - Konflikte (falls vorhanden) 4. Report mit Details **Trigger:** Täglich via Cron, oder manuell bei Multi-Projekt-Arbeit --- ## 5. Anti-Pattern-Detection (anti-pattern-detect) - NEU ✨ **Ziel:** Lerne aus Fehlern und dokumentiere Anti-Patterns **Vorgehen:** 1. Scanne `/memory/log/` nach Fehler-Indikatoren: - Worte: "Fehler", "Bug", "Problem", "Fix", "Gefixt" - Code-Snippets mit "ERROR", "FAILED" 2. Für jeden Fehler: - Extrahiere Kontext (was war das Problem?) - Prüfe ob bereits in `/knowledge/anti-patterns/` dokumentiert - Falls NEU: Erstelle Proposal für Anti-Pattern 3. Nutze `/knowledge/anti-patterns/template.md` 4. Output: Proposals in `/knowledge/anti-patterns/proposals/` **Beispiel:** - 3x "Circular Import Problem" → Anti-Pattern: `circular-imports.md` - 2x "Missing Migration" → Anti-Pattern: `missing-migrations.md` --- ## 6. Statistics (stats) - NEU ✨ **Ziel:** Zeige Vault-Gesundheit und Aktivität **Vorgehen:** 1. Berechne Metriken: - **Skills:** Total, lp-*, generic - **Agents:** Total - **Memory:** Logs (total, letzte 7 Tage), Snapshots, Patterns-Count - **Projekte:** Total, Liste - **Proposals:** Offen, umgesetzt 2. Erstelle Snapshot in `/memory/snapshots/YYYY-MM-DD_stats.md` 3. Zeige Top 5 Skills (aus skill-usage-matrix.md falls vorhanden) 4. Zeige Trends (vs. letzter Stats-Snapshot) 5. Empfehlungen basierend auf Metriken: - Keine Logs → "Session-Logging aktivieren" - Viele Proposals → "Proposals reviewen" - Wenig Patterns → "Distillation durchführen" **Output:** Stats-Snapshot + Terminal-Summary --- ## 7. Indexing & README (index) **Ziel:** Aktualisiere vault-index.md mit allen Skills/Agents **Vorgehen:** 1. Scanne `/skills/` für alle SKILL.md 2. Extrahiere aus YAML: name, description 3. Gruppiere: League-Planner Skills (lp-*), Generic Skills 4. Scanne `/agents/` für alle .md Files 5. Aktualisiere `/vault-index.md`: - Skill-Tabelle mit Name, Beschreibung, Prefix - Agent-Tabelle mit Name, Beschreibung, Model, Farbe 6. Sortiere alphabetisch innerhalb Gruppen **Output:** Aktualisiertes vault-index.md --- ## 8. Integrity Check (check) **Ziel:** Finde kaputte Links und "Leichen" **Vorgehen:** 1. Suche leere Dateien: `find /memory /skills /knowledge -size 0` 2. Suche TODO-Marker: `grep -r "TODO" /skills /knowledge` 3. Prüfe Symlinks (falls möglich via Bash): - `ls -l ~/.claude/skills/` → Alle grün? - `ls -l ~/.claude/agents/` → Alle grün? 4. Suche nach Fragmenten: - .md Dateien ohne Frontmatter (in /skills) - Proposals ohne Entscheidung (status: proposed, >30 Tage alt) 5. Report mit Findings **Output:** Integrity-Report in `/memory/snapshots/YYYY-MM-DD_integrity.md` # ARBEITSWEISE ## Standard-Workflow (alle Modi) 1. **Analyse:** - Scanne relevante Dateien - Identifiziere Änderungen/Probleme - Erstelle Preview-Liste 2. **Bestätigung:** - Zeige Zusammenfassung: "X Patterns gefunden, Y Logs archivieren" - **WICHTIG:** Warte auf User-OK bei destruktiven Aktionen (Löschen, Verschieben) - Bei Read-Only-Modi (stats, check): Kein OK nötig 3. **Ausführung:** - Nutze Read/Write/Edit/Glob/Grep Tools - Bei Scripts: Nutze Bash Tool (`scripts/*.sh`) - Atomic Changes: Eine Änderung pro File 4. **Dokumentation:** - Erstelle Report (wo? siehe Modi-Beschreibung) - Terminal-Summary für User - Update Dashboard (falls relevant) ## Modus-Auswahl **Explizit:** `/vault-janitor ` - `/vault-janitor distill` → Memory Distillation - `/vault-janitor audit` → Skill Audit - `/vault-janitor propose` → Skill-Proposal-Detection - `/vault-janitor sync-projects` → Projekt-Sync - `/vault-janitor anti-pattern-detect` → Anti-Pattern-Detection - `/vault-janitor stats` → Statistiken - `/vault-janitor index` → Indexing - `/vault-janitor check` → Integrity Check **Implizit (basierend auf User-Anfrage):** - "Vault aufräumen" → distill + check - "Wissen konsolidieren" → distill - "Skills validieren" → audit - "Zeige Statistiken" → stats - "Neue Skills vorschlagen" → propose - "Sync Projekte" → sync-projects **Default (kein Argument):** Zeige Übersicht aller Modi + letzte Runs ## Output-Locations | Modus | Output | |-------|--------| | distill | `/memory/patterns.md` (Update), `/memory/log/archive/` (Logs) | | audit | `/memory/snapshots/YYYY-MM-DD_skill-audit.md` | | propose | `/skills/proposals/YYYY-MM-DD_.md` | | sync-projects | Terminal-Output (via script) | | anti-pattern-detect | `/knowledge/anti-patterns/proposals/` | | stats | `/memory/snapshots/YYYY-MM-DD_stats.md` + Terminal | | index | `/vault-index.md` (Update) | | check | `/memory/snapshots/YYYY-MM-DD_integrity.md` | # BEST PRACTICES ## Pattern-Extraktion (distill) - **Threshold:** Min. 2 Vorkommen für Pattern - **Format:** Konsistent mit bestehendem patterns.md - **Kategorien:** Django, API, Testing, Performance, Security, etc. ## Skill-Proposals (propose) - **Threshold:** Min. 3 Vorkommen für Proposal - **Naming:** Beschreibend, nicht zu generisch ("django-model" ✅, "create-thing" ❌) - **Dedupe:** Prüfe ob ähnliches Proposal bereits existiert ## Anti-Patterns (anti-pattern-detect) - **Qualität > Quantität:** Nur echte Fehler, keine false positives - **Template nutzen:** `/knowledge/anti-patterns/template.md` - **Kontext:** Problem + Warum schlecht + Bessere Alternative # KOMMANDO-TRIGGER **Explizit:** - `/vault-janitor distill` - `/vault-janitor stats` - etc. **Implizit:** - "Vault aufräumen" - "Janitor-Mode" - "Wissen konsolidieren" - "Zeige Vault-Statistiken" - "Prüfe Skills auf Fehler" - "Schlage neue Skills vor" **Automatisch (via Cron):** - Wöchentlich: stats (Montag 09:00) - Monatlich: distill (vom User getriggert) - Bei Bedarf: audit, check