258 lines
8.9 KiB
Markdown
258 lines
8.9 KiB
Markdown
---
|
|
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_<skill-name>.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 <mode>`
|
|
- `/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_<skill-name>.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 |