Harness Retro
Finde heraus, wo frühere Sitzungen schiefgelaufen sind und ändere die Einrichtung, damit es nicht wieder passiert. Jeder Befund muss auf einen Beleg in einem Transkript verweisen. Wende niemals eine Änderung an, bevor der Benutzer sie genehmigt hat.
1. Minen der Transkripte
Der Miner ist ein Skript ohne externe Abhängigkeiten, das sich neben dieser Datei befindet. Führe es mit -I aus. Schreibe seine Ausgabe in das Sitzungs-Scratchpad oder in ein temporäres Verzeichnis, falls keins vorhanden ist:
python3 -I <Basisverzeichnis dieses Skills>/scripts/mine.py [PFAD] [--since 30d] --out <scratchpad>/retro.json
- Ohne PFAD miniert es das Projekt des aktuellen Arbeitsverzeichnisses. Um ein anderes Projekt zu minen, gib dessen Arbeitsverzeichnispfad an oder verwende
--project=<schlüssel>mit dem Ordnernamen unter~/.claude/projects. Verwende die=-Form, da Schlüssel mit-beginnen. - Verwende
--since, wenn der Benutzer ein Zeitfenster genannt hat. Erhöhe--max-bytes(Standard 40000) nur, wenn die Ausgabe abgeschnitten ist und du mehr benötigst. - Wenn der Benutzer nach allen Projekten fragt, führe es einmal pro Ordner in
~/.claude/projectsaus und schaue dir die Projekte mit der höchsten Reibung an.
Das Skript gibt eine einzeilige Zusammenfassung aus. Wenn es wenige oder keine Sitzungen gescannt hat, informiere den Benutzer. Claude Code löscht Transkripte nach cleanupPeriodDays (Standard 30), daher kann älterer Verlauf verloren sein. Schlage vor, diese Einstellung zu erhöhen, wenn sie später tiefere Retros wünschen.
2. Lesen der Treffer
Die JSON-Datei listet Sitzungen auf, sortiert nach Reibungspunktzahl. Jeder Treffer enthält signal, score, ts, prior_prompt (was der Benutzer gefragt hat), recent_actions (die letzten Tool-Aufrufe von Claude vor dem Treffer) und entweder user_reaction oder detail.
Signale, ungefähr nach Wert geordnet:
user_correction: Der Benutzer hat widersprochen. Werte von 5 oder mehr bedeuten starke Frustration oder eine Wiederholung („immer noch“, „schon wieder“, „ich sagte“, Flüche).edit_revertundedit_churn: Claude wechselte hin und her in derselben Datei.tool_error_streak: Claude stieß wiederholt auf denselben Fehler.interrupted: Der Benutzer hat Claude mitten im Durchlauf gestoppt. Das bedeutet normalerweise, dass er in die falsche Richtung ging.permission_denied: Claude hat etwas versucht, das der Benutzer oder der Klassifizierer blockiert hat.self_retraction: Claude hat einen Fehler eingestanden. Dieses Signal ist verrauscht, verwende es daher nur als unterstützenden Beleg.
Die regulären Ausdrücke sind grob. Verwerfe Fehlalarme wie „nicht“ in einer normalen Anweisung oder „versuche es nochmal“ nach einem Netzwerkfehler. Wenn ein Treffer mehrdeutig ist, öffne das Transkript in der Nähe. Die Datei ist ~/.claude/projects/<schlüssel>/<sitzung>.jsonl; grep nach dem Zeitstempel und lese ein paar Zeilen auf beiden Seiten. Lies keine gesamten Transkripte.
3. Gruppieren in Muster
Gruppiere die echten Treffer in wiederkehrende Muster. Ein Muster ist eine Ursache, formuliert als etwas, das Claude falsch macht. Beispiele: „Erzeugt neue Bilder anstelle der genehmigten Asset-Bibliothek“, „Bearbeitet die aktuelle Version anstatt eine neue zu erstellen“, „Behauptet, eine Änderung sei sichtbar, ohne die erstellte Ausgabe zu überprüfen“. Für jedes Muster notiere:
- Wie oft es vorkam und in wie vielen Sitzungen.
- Zwei oder drei kurze Zitate des Benutzers mit Sitzungstitel und Datum.
- Die Ursache. Wähle eine: fehlendes Wissen, eine Regel, die existierte aber ignoriert wurde, ein schlechter Standard-Workflow, fehlende Verifikation oder eine Tool- oder Berechtigungslücke.
Ein einzelner Vorfall zählt nur, wenn der Benutzer eindeutig wütend war oder die Kosten hoch waren, z. B. destruktive oder verlorene Arbeit.
4. Überprüfen der aktuellen Harness
Bevor du etwas vorschlägst, lies, was bereits vorhanden ist:
~/.claude/CLAUDE.md, plus das Projekt-CLAUDE.mdund alle verschachtelten.~/.claude/settings.jsonund die.claude/settings.jsonund.claude/settings.local.jsondes Projekts (Hooks, Berechtigungen).- Das Memory-Verzeichnis des Projekts
~/.claude/projects/<schlüssel>/memory/und dessenMEMORY.md. - Skills in
~/.claude/skills/und.claude/skills/des Projekts.
Wenn ein Muster bereits durch eine Regel abgedeckt ist, die Claude ignoriert hat, hilft es nicht, dieselbe Regel erneut hinzuzufügen. Mache die Regel spezifischer und platziere sie dort, wo sie gesehen wird, oder wechsle zu einem stärkeren Mechanismus.
5. Wählen der Lösung
Wähle für jedes Muster den leichtesten Mechanismus, der tatsächlich funktioniert:
| Ursache | Lösung |
|---|---|
| Eine Projekttatsache, die Claude nicht kannte | Eine Memory-Datei im Memory-Verzeichnis des Projekts, mit Frontmatter name, description, metadata.type, einem Text mit Warum: und Wie anzuwenden:, und einem einzeiligen Verweis in MEMORY.md. Aktualisiere einen vorhandenen Memory-Eintrag, anstatt ihn zu duplizieren. |
| Eine ständige Regel für dieses Repository | Projekt-CLAUDE.md |
| Eine Regel für jedes Projekt | ~/.claude/CLAUDE.md |
| Eine Regel, die immer wieder gebrochen wird und durch ein Skript überprüft werden kann (Formatierung, verbotene Zeichenfolgen, ein erforderlicher Befehl vor dem Commit) | Ein Hook in settings.json. Verwende das Skill update-config, falls verfügbar. |
| Wiederholte Berechtigungsaufforderungen oder -verweigerungen für sichere Befehle | Schlage Zulassungslisten-Einträge vor oder empfehle das Skill fewer-permission-prompts, falls verfügbar. Weite Berechtigungen nicht für destruktive Befehle aus. |
| Ein mehrschrittiger Workflow, der immer wieder schiefgeht | Ein neues oder bearbeitetes Skill (verwende skill-creator, falls verfügbar). |
| Ein Claude Code-Produktfehler | Notiere ihn im Bericht. Es gibt keine Harness-Lösung. |
Formuliere Regeln als konkrete, überprüfbare Anweisungen, die die spezifische Sache benennen, wie Dateien, Asset-Pfade, Befehle oder Versionsnamen. „Sei vorsichtig mit Bildern“ ist zu vage, um darauf reagieren zu können.
6. Bericht und Zustimmung einholen
Präsentiere einen Abschnitt pro Muster, beginnend mit dem kostenintensivsten. Jeder Abschnitt enthält:
- Das Muster in einem Satz.
- Die Beweise: Anzahl, Sitzungen und 2 oder 3 kurze Zitate mit Datum.
- Die Ursache.
- Die vorgeschlagene Änderung: die Zieldatei und den genauen Text oder Diff.
Frage dann, welche Änderungen angewendet werden sollen. Eine MultiSelect AskUserQuestion mit einer Option pro Muster funktioniert gut. Wende nur die genehmigten Änderungen an und liste dann auf, was sich wo geändert hat.
Schreiben von Regeln
Alles, was in CLAUDE.md, Memory oder Skills geschrieben wird, muss etwaige Schreibregeln in den eigenen CLAUDE.md-Dateien des Benutzers befolgen, wie Tonfall, verbotene Wörter oder Zuordnungsregeln. Halte es kurz und spezifisch. Zitate aus Transkripten können Geheimnisse enthalten, die der Benutzer eingefügt hat. Der Miner schwärzt gängige Schlüsselformate, aber überprüfe, bevor du Text in eine Datei kopierst.