CommunityCodierung & Entwicklunggithub.com

harness-retro

Retrospektive über vergangene Claude Code Sitzungen für ein Projekt. Durchsucht lokale Transkripte in ~/.claude/projects nach Stellen, an denen Claude Probleme hatte (Benutzerkorrekturen, Frustration, Unterbrechungen, Tool-Fehler-Serien, Bearbeitungswechsel und Rückgängigmachungen, Berechtigungsverweigerungen, Selbstkorrekturen), gruppiert sie in wiederkehrende Muster und schlägt Harness-Änderungen vor (CLAUDE.md-Regeln, Memory-Einträge, Hooks, Einstellungen, Skills), um deren Wiederholung zu verhindern. Wendet nichts ohne Zustimmung an. Verwende es, wenn der Benutzer nach einer Retro fragt oder wissen möchte, wie die Einrichtung verbessert werden kann.

Was ist harness-retro?

Das Skill **harness-retro** führt eine detaillierte Retrospektive der vergangenen Claude Code-Sitzungen eines Projekts durch. Es identifiziert systematisch Stellen, an denen der KI-Assistent Probleme hatte – wie Benutzerkorrekturen, Frustrationsäußerungen, Unterbrechungen, wiederholte Tool-Fehler, Bearbeitungswechsel (edit churn/revert), Berechtigungsverweigerungen und Selbstkorrekturen. Diese Vorfälle werden aus den lokalen Transkripten in `~/.claude/projects` extrahiert, nach Reibungspunkten gewichtet und zu wiederkehrenden Mustern gruppiert. Für jedes Muster wird die Ursache analysiert (z. B. fehlendes Wissen, ignorierte Regeln, schlechte Standard-Workflows, fehlende Verifikation, Tool-Lücken) und eine optimale, minimal-invasive Lösung vorgeschlagen – sei es eine Regel in `CLAUDE.md`, ein Memory-Eintrag, ein benutzerdefinierter Hook in `settings.json`, eine Berechtigungsanpassung oder ein neues Skill. Wichtig: Keine Änderung wird ohne explizite Benutzerfreigabe angewendet. Das Skill unterstützt sowohl das aktuelle Projekt als auch alle Projekte im `~/.claude/projects`-Verzeichnis und berücksichtigt bestehende Harness-Konfigurationen, um Doppelarbeit zu vermeiden. Die Ausgabe erfolgt als strukturierter Bericht mit Beweisen aus den Transkripten und konkreten Änderungsvorschlägen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/timini/harness-retro/tree/HEAD/plugin/skills/harness-retro

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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/projects aus 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_revert und edit_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.md und alle verschachtelten.
  • ~/.claude/settings.json und die .claude/settings.json und .claude/settings.local.json des Projekts (Hooks, Berechtigungen).
  • Das Memory-Verzeichnis des Projekts ~/.claude/projects/<schlüssel>/memory/ und dessen MEMORY.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:

UrsacheLösung
Eine Projekttatsache, die Claude nicht kannteEine 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 RepositoryProjekt-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 BefehleSchlage 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 schiefgehtEin neues oder bearbeitetes Skill (verwende skill-creator, falls verfügbar).
Ein Claude Code-ProduktfehlerNotiere 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:

  1. Das Muster in einem Satz.
  2. Die Beweise: Anzahl, Sitzungen und 2 oder 3 kurze Zitate mit Datum.
  3. Die Ursache.
  4. 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.

Verwandte Skills