Was macht skill-stocktake?
Slash-Befehl (/skill-stocktake), der alle Claude Skills und Befehle anhand einer Qualitäts-Checkliste und ganzheitlicher KI-Bewertung auditisiert. Unterstützt zwei Modi: Quick Scan für kürzlich geänderte Skills und Full Stocktake für eine vollständige Überprüfung.
Geltungsbereich
Der Befehl adressiert die folgenden Pfade relativ zum Verzeichnis, in dem er aufgerufen wird:
| Pfad | Beschreibung |
|---|---|
~/.claude/skills/ | Globale Skills (alle Projekte) |
{cwd}/.claude/skills/ | Projekt-Level-Skills (falls das Verzeichnis existiert) |
Zu Beginn von Phase 1 listet der Befehl explizit auf, welche Pfade gefunden und gescannt wurden.
Ein bestimmtes Projekt anvisieren
Um Projekt-Level-Skills einzuschließen, führen Sie den Befehl aus dem Stammverzeichnis des Projekts aus:
cd ~/pfad/zu/meinem-projekt
/skill-stocktake
Wenn das Projekt kein .claude/skills/-Verzeichnis hat, werden nur globale Skills und Befehle bewertet.
Modi
| Modus | Auslöser | Dauer |
|---|---|---|
| Quick Scan | results.json existiert (Standard) | 5–10 Min |
| Full Stocktake | results.json fehlt, oder /skill-stocktake full | 20–30 Min |
Ergebnis-Cache: ~/.claude/skills/skill-stocktake/results.json
Quick Scan Ablauf
Bewertet nur Skills, die sich seit dem letzten Lauf geändert haben (5–10 Min).
- Lesen von
~/.claude/skills/skill-stocktake/results.json - Ausführen:
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json(Das Projektverzeichnis wird automatisch aus$PWD/.claude/skillserkannt; übergeben Sie es nur explizit, wenn nötig) - Wenn die Ausgabe
[]ist: "Keine Änderungen seit dem letzten Lauf." melden und anhalten. - Nur diese geänderten Dateien mit denselben Phase-2-Kriterien erneut bewerten
- Unveränderte Skills aus den vorherigen Ergebnissen übernehmen
- Nur das Diff ausgeben
- Ausführen:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
Full Stocktake Ablauf
Phase 1 – Inventur
Ausführen: bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
Das Skript zählt Skill-Dateien auf, extrahiert Frontmatter und sammelt UTC-Modifikationszeitstempel.
Das Projektverzeichnis wird automatisch aus $PWD/.claude/skills erkannt; übergeben Sie es nur explizit, wenn nötig.
Die Scan-Zusammenfassung und Inventurtabelle aus der Skriptausgabe präsentieren:
Scannen:
✓ ~/.claude/skills/ (17 Dateien)
✗ {cwd}/.claude/skills/ (nicht gefunden — nur globale Skills)
| Skill | 7d Nutzung | 30d Nutzung | Beschreibung |
|---|
Phase 2 – Qualitätsbewertung
Einen Agent-Tool-Subagenten (Allzweck-Agent) mit dem vollständigen Inventar und der Checkliste starten:
Agent(
subagent_type="general-purpose",
prompt="
Bewerten Sie das folgende Skill-Inventar anhand der Checkliste.
[INVENTAR]
[CHECKLISTE]
Geben Sie für jeden Skill JSON zurück:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
"
)
Der Subagent liest jeden Skill, wendet die Checkliste an und gibt pro Skill JSON zurück:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
Chunk-Richtlinie: Pro Subagentenaufruf etwa 20 Skills verarbeiten, um den Kontext handhabbar zu halten. Zwischenergebnisse nach jedem Chunk in results.json speichern (status: "in_progress").
Nachdem alle Skills bewertet wurden: status: "completed" setzen, mit Phase 3 fortfahren.
Wiederaufnahme-Erkennung: Wenn beim Start status: "in_progress" gefunden wird, ab dem ersten nicht bewerteten Skill fortsetzen.
Jeder Skill wird anhand dieser Checkliste bewertet:
- [ ] Inhaltliche Überschneidungen mit anderen Skills geprüft
- [ ] Überschneidungen mit MEMORY.md / CLAUDE.md geprüft
- [ ] Aktualität technischer Referenzen überprüft (WebSearch verwenden, wenn Toolnamen / CLI-Flags / APIs vorhanden sind)
- [ ] Nutzungshäufigkeit berücksichtigt
Bewertungskriterien:
| Urteil | Bedeutung |
|---|---|
| Keep | Nützlich und aktuell |
| Improve | Behaltenswert, aber spezifische Verbesserungen nötig |
| Update | Referenzierte Technologie ist veraltet (mit WebSearch überprüfen) |
| Retire | Niedrige Qualität, veraltet oder kostenasymmetrisch |
| Merge into [X] | Erhebliche Überschneidungen mit einem anderen Skill; Ziel angeben |
Die Bewertung ist eine ganzheitliche KI-Entscheidung – keine numerische Bewertungsmatrix. Leitende Dimensionen:
- Handlungsorientierung: Codebeispiele, Befehle oder Schritte, die sofortiges Handeln ermöglichen
- Umfang-Passung: Name, Auslöser und Inhalt sind aufeinander abgestimmt; weder zu breit noch zu eng
- Einzigartigkeit: Wert, der nicht durch MEMORY.md / CLAUDE.md / einen anderen Skill ersetzt werden kann
- Aktualität: Technische Referenzen funktionieren in der aktuellen Umgebung
Anforderungen an die Begründungsqualität – das Feld reason muss in sich geschlossen und entscheidungsfördernd sein:
- Nicht nur "unverändert" schreiben – immer die Kernbeweise wiederholen
- Für Retire: (1) angeben, welcher spezifische Fehler gefunden wurde, (2) was stattdessen den gleichen Bedarf abdeckt
- Schlecht:
"Überholt" - Gut:
"disable-model-invocation: true bereits gesetzt; überholt durch continuous-learning-v2, das alle gleichen Muster plus Konfidenzbewertung abdeckt. Kein einzigartiger Inhalt mehr vorhanden."
- Schlecht:
- Für Merge: das Ziel benennen und beschreiben, welcher Inhalt integriert werden soll
- Schlecht:
"Überschneidet sich mit X" - Gut:
"42 Zeilen dünner Inhalt; Schritt 4 von chatlog-to-article deckt bereits den gleichen Workflow ab. Den Tipp 'Artikel-Winkel' als Notiz in diesem Skill integrieren."
- Schlecht:
- Für Improve: die spezifische Änderung beschreiben (welcher Abschnitt, welche Aktion, ggf. Zielgröße)
- Schlecht:
"Zu lang" - Gut:
"276 Zeilen; Abschnitt 'Framework-Vergleich' (Z80–140) dupliziert ai-era-architecture-principles; löschen, um ~150 Zeilen zu erreichen."
- Schlecht:
- Für Keep (nur mtime-Änderung im Quick Scan): die ursprüngliche Bewertungsbegründung wiederholen, nicht "unverändert" schreiben
- Schlecht:
"Unverändert" - Gut:
"mtime aktualisiert, aber Inhalt unverändert. Einzigartige Python-Referenz, explizit von rules/python/ importiert; keine Überschneidungen gefunden."
- Schlecht:
Phase 3 – Zusammenfassungstabelle
| Skill | 7d Nutzung | Urteil | Begründung |
|---|
Phase 4 – Konsolidierung
- Retire / Merge: Detaillierte Begründung pro Datei vor der Bestätigung mit dem Benutzer präsentieren:
- Welches spezifische Problem wurde gefunden (Überschneidung, Veralterung, defekte Referenzen usw.)
- Welche Alternative deckt die gleiche Funktionalität ab (für Retire: welcher bestehende Skill/Regel; für Merge: die Zieldatei und welcher Inhalt integriert werden soll)
- Auswirkungen der Entfernung (abhängige Skills, MEMORY.md-Referenzen oder betroffene Workflows)
- Improve: Spezifische Verbesserungsvorschläge mit Begründung präsentieren:
- Was zu ändern ist und warum (z.B. "430→200 Zeilen kürzen, weil Abschnitte X/Y python-patterns duplizieren")
- Benutzer entscheidet, ob er handelt
- Update: Aktualisierten Inhalt mit geprüften Quellen präsentieren
- MEMORY.md-Zeilenzahl prüfen; Komprimierung vorschlagen, wenn >100 Zeilen
Schema der Ergebnisdatei
~/.claude/skills/skill-stocktake/results.json:
evaluated_at: Muss auf die tatsächliche UTC-Zeit des Bewertungsabschlusses gesetzt werden.
Abruf via Bash: date -u +%Y-%m-%dT%H:%M:%SZ. Niemals eine datumsgenäherte Angabe wie T00:00:00Z verwenden.
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Keep",
"reason": "Konkret, handlungsorientiert, einzigartiger Wert für X-Workflow",
"mtime": "2026-01-15T08:30:00Z"
}
}
}
Hinweise
- Die Bewertung erfolgt blind: Dieselbe Checkliste gilt für alle Skills unabhängig von ihrer Herkunft (ECC, selbst erstellt, automatisch extrahiert)
- Archivierungs-/Löschvorgänge erfordern immer eine explizite Benutzerbestätigung
- Keine Urteilsverzweigung nach Skill-Herkunft