i18n/de/skills/prune-agent-memory/SKILL.md
Gespeicherte Erinnerungen auditieren, klassifizieren und selektiv loeschen. Umfasst Speicher-Enumeration und -Klassifizierung nach Typ, Alter und Zugriffshaeufigkeit, Veraltungserkennunug fuer veraltete Referenzen, Genauigkeitspruefungen anhand externer Anker, einen Entscheidungsbaum fuer selektives Loeschen, praeventiive Filterregeln fuer Inhalte die nie als Erinnerungen gespeichert werden sollten, und ein Audit-Trail, sodass das Vergessen selbst ueberprufbar ist. Verwenden, wenn der Speicher gross und unkuratiert geworden ist, wenn sich der Projektstatus seit dem Schreiben der Erinnerungen wesentlich veraendert hat, wenn die Abrufqualitaet abgenommen hat oder als periodische Wartung neben manage-memory.
npx skillsauth add pjt222/agent-almanac prune-agent-memoryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Gespeicherte Erinnerungen auditieren, klassifizieren und selektiv loeschen. Speicher ist Infrastruktur. Vergessen ist Richtlinie. Dieser Skill definiert die Richtlinie.
Waehrend manage-memory sich auf das Organisieren und Wachsenlassen des Speichers konzentriert (was behalten werden soll, wie es zu strukturieren ist), konzentriert sich dieser Skill auf das Gegenteil: was verworfen werden soll, wie Verfall erkannt wird und wie sichergestellt wird, dass Vergessen absichtlich statt versehentlich geschieht. Die beiden Skills sind komplementaer und sollten bei der periodischen Wartung zusammen verwendet werden.
~/.claude/projects/<project-path>/memory/)Alle Speicherdateien lesen und jeden Eintrag nach vier Dimensionen klassifizieren.
# Speicherverzeichnis inventarisieren
ls -la <memory-dir>/
wc -l <memory-dir>/*.md
# Gesamteintraege zaehlen (naeherungsweise ueber Top-Level-Aufzaehlungen und Ueberschriften)
grep -c "^- \|^## " <memory-dir>/MEMORY.md
for f in <memory-dir>/*.md; do echo "$f: $(grep -c '^- \|^## ' "$f") Eintraege"; done
Jeden Speichereintrag in einen dieser Typen klassifizieren:
| Typ | Beschreibung | Beispiel | Standard-Aufbewahrung | |-----|-------------|---------|----------------------| | Projekt | Fakten ueber Projektstruktur, Architektur, Konventionen | "skills/ hat 310 SKILL.md-Dateien ueber 55 Domaenen" | Behalten bis als veraltet bestaetigt | | Entscheidung | Getroffene Entscheidungen und ihre Begruendung | "Hub-and-Spoke statt Sequential fuer Review-Teams gewaehlt, weil..." | Unbegrenzt behalten | | Muster | Debug-Loesungen, Workflow-Erkenntnisse, wiederkehrendes Verhalten | "Exit-Code 5 bedeutet Anführungszeichen-Fehler — temporaere Dateien verwenden" | Behalten bis abgeloest | | Referenz | Links, Versionsnummern, externe Ressourcen | "mcptools-Docs: https://..." | Behalten bis als veraltet bestaetigt | | Rueckmeldung | Nutzerpraeferenzen, Korrekturen, Stilhinweise | "Nutzer bevorzugt Kebab-Case fuer Dateinamen" | Unbegrenzt behalten | | Ephemer | Sitzungsspezifischer Kontext, der in den persistenten Speicher ausgelaufen ist | "Arbeite gerade an Issue #42" | Sofort prunen |
Fuer jeden Eintrag zusaetzlich notieren:
Erwartet: Vollstaendiges Inventar mit jedem Speichereintrag klassifiziert nach Typ, mit Alters- und Zugriffshaeufigkeitsschaetzungen. Ephemere Eintraege sind bereits fuer sofortige Entfernung markiert.
Bei Fehler: Wenn Speicherdateien zu gross oder unstrukturiert sind, um Eintrag fuer Eintrag zu klassifizieren, auf Abschnittsebene arbeiten. Ganze Abschnitte statt einzelner Aufzaehlungen klassifizieren. Das Ziel ist Abdeckung, nicht Granularitaet.
Speicherbehauptungen mit dem aktuellen Projektstatus vergleichen. Veraltung ist die haeufigste Form des Speicherverfalls.
Nach diesen Veraltungsmustern suchen:
# Zaehlen gegen Quelle der Wahrheit pruefen
grep -oP '\d+ skills' <memory-dir>/MEMORY.md
grep -c "^ - id:" skills/_registry.yml
# Auf Referenzen zu nicht mehr existierenden Dateien pruefen
grep -oP '`[^`]+\.(md|yml|R|js|ts)`' <memory-dir>/MEMORY.md | sort -u | while read f; do
path="${f//\`/}"
[ ! -f "$path" ] && echo "VERALTET: $path referenziert, aber nicht gefunden"
done
# Auf Referenzen zu alten Namen/Pfaden pruefen
grep -i "old-name\|previous-name\|renamed-from" <memory-dir>/*.md
Jeden veralteten Eintrag mit der Art der Veraltung und dem aktuell korrekten Wert markieren.
Erwartet: Eine Liste veralteter Eintraege mit spezifischen Belegen fuer das, was sich geaendert hat. Jeder veraltete Eintrag hat eine empfohlene Aktion: aktualisieren (wenn der korrekte Wert bekannt ist), pruefen (wenn unsicher) oder prunen (wenn der gesamte Eintrag obsolet ist).
Bei Fehler: Wenn eine Behauptung nicht verifiziert werden kann, weil sie externen Zustand referenziert (APIs, Drittanbieter-Docs, Deployment-Status), als nicht verifizierbar markieren statt Richtigkeit anzunehmen. Nicht verifizierbare Eintraege sind Kandidaten fuer Pruning, wenn sie nicht aktiv nuetzlich sind.
Testen, ob Erinnerungen beim Abruf noch nuetzlichen Kontext liefern. Dies ist der schwerste Schritt, weil ein Agent nicht pruefen kann, ob seine eigenen komprimierten Erinnerungen korrekt sind — externe Anker sind erforderlich.
Genauigkeitspruefungsmethoden:
Hin-und-Her-Verifizierung: Einen Speichereintrag lesen, dann den tatsaechlichen Projektstatus pruefen, den er beschreibt. Fuehrt die Erinnerung zur richtigen Datei, zum richtigen Muster, zur richtigen Schlussfolgerung?
Kompressionsverlust-Erkennung: Erinnerungszusammenfassungen mit dem urspruenglichen Quellmaterial vergleichen. Wenn eine 50-zeilige Diskussion zu einer 2-zeiligen Erinnerung komprimiert wurde, hat die Kompression die handlungsrelevante Erkenntnis oder nur das Thema-Label bewahrt?
# Die Quelle finden, aus der ein Speichereintrag abgeleitet wurde
# (git log, alte PRs, urspruengliche Dateien)
git log --oneline --all --grep="<Schluesselwort aus Speichereintrag>" | head -5
Widerspruchs-Scan: Nach Erinnerungen suchen, die sich gegenseitig widersprechen oder CLAUDE.md / Projektdokumentation widersprechen.
# Auf potenzielle Widerspruche in Zaehlen pruefen
grep -n "total" <memory-dir>/MEMORY.md
grep -n "total" CLAUDE.md
# Werte vergleichen — sie sollten uebereinstimmen
Nuetzlichkeitstest: Fuer jeden Speichereintrag fragen: "Wenn dieser Eintrag geloescht waere, wuerde in den naechsten 5 Sitzungen etwas schief gehen?" Wenn die Antwort "wahrscheinlich nicht" ist, hat der Eintrag unabhaengig von der Genauigkeit geringen Fidelitaetswert.
Erwartet: Jeder Speichereintrag hat jetzt eine Genauigkeitsbewertung: hoch (verifiziert korrekt und nuetzlich), mittel (wahrscheinlich korrekt, gelegentlich nuetzlich), niedrig (nicht verifiziert oder selten nuetzlich) oder fehlgeschlagen (als ungenau oder widersprueuchlich verifiziert).
Bei Fehler: Wenn Genauigkeitspruefungen fuer viele Eintraege nicht eindeutig sind, auf die Eintraege mit dem groessten Schadenpotenzial konzentrieren. Eine falsche Erinnerung ueber die Projektarchitektur ist gefaehrlicher als eine falsche Erinnerung ueber einen Debug-Trick.
Diesen Entscheidungsbaum verwenden, um in Prioritaetsreihenfolge festzustellen, was gepruned werden soll:
Pruning-Entscheidungsbaum (in Reihenfolge anwenden):
1. EPHEMERE Eintraege (Klassifizierung aus Schritt 1)
→ Sofort loeschen. Diese haetten nie persistiert werden sollen.
2. Eintraege mit FEHLGESCHLAGENER Genauigkeit (Schritt 3)
→ Sofort loeschen. Ungenaue Erinnerungen sind schlimmer als keine Erinnerungen.
3. DUPLIKATE
→ Die vollstaendigste/genaueste Version behalten, andere loeschen.
→ Wenn Duplikate MEMORY.md und eine Themendatei umfassen, die Themendateiversion behalten.
4. VERALTETE Eintraege mit bekannten Korrekturen (Schritt 2)
→ AKTUALISIEREN, wenn der Eintrag ansonsten nuetzlich ist (veralteten Wert auf aktuellen aendern).
→ LOESCHEN, wenn der gesamte Eintrag obsolet ist (das Thema ist nicht mehr relevant).
5. NIEDRIGE Genauigkeit, niedrige Zugriffshaeufigkeit
→ Loeschen. Diese beanspruchen Platz ohne Wert zu bieten.
6. MITTLERE Genauigkeit bei abgeschlossener/geschlossener Arbeit
→ Archivieren oder loeschen. Vergangene Sprint-Details, geloeste Vorfaelle, zusammengefuehrte PRs.
→ Ausnahme: behalten, wenn die Loesung ein wiederverwendbares Muster enthaelt.
7. REFERENZ-Eintraege mit frei verfuegbaren Quellen
→ Loeschen, wenn die Referenz mit einer Google-Suche zu finden ist.
→ Behalten, wenn die Referenz schwer zu finden ist oder projektspezifischen Kontext hat.
Fuer jede Loeschung den Eintrag, seine Klassifizierung und den Loeschgrund notieren (verwendet in Schritt 6).
Erwartet: Eine klare Liste von zu loeschenden, zu aktualisierenden und zu behaltenden Eintraegen — jeder mit dokumentiertem Grund. Das Behalten/Loeschen-Verhaeltnis haengt von der Speichergesundheit ab; ein gut gewarteter Speicher koennte 5–10 % prunen, ein vernachlaessigter 30–50 %.
Bei Fehler: Wenn der Entscheidungsbaum fuer viele Eintraege mehrdeutige Ergebnisse liefert, einen strengeren Filter anwenden: "Wuerde ich diesen Eintrag heute schreiben, mit dem Wissen, das ich jetzt habe?" Wenn nicht, ist es ein Loeschkandidat. Eher mehr prunen — es ist einfacher, eine Tatsache neu zu lernen als mit einer falschen Erinnerung umzugehen.
"Was NICHT gespeichert werden soll"-Regeln definieren, um kuenftige Speicherverschmutzung zu verhindern. Vorhandene Erinnerungen auf Muster pruefen, die beim Schreiben haetten gefiltert werden sollen.
Muster, die niemals persistente Erinnerungen werden sollten:
| Muster | Warum | Beispiel |
|--------|-------|---------|
| Sitzungsspezifischer Aufgabenstatus | Bis zur naechsten Sitzung veraltet | "Debugge gerade Issue #42" |
| Zwischenschlussfolgerungen | Keine Schlussfolgerung | "Ansatz A versucht, hat nicht funktioniert, weil..." |
| Debug-Ausgabe / Stack Traces | Ephemere Diagnosedaten | "Fehler war: TypeError bei Zeile 234..." |
| Exakte Befehlssequenzen | Sproede, versionsabhaengig | "Fuehre npm install [email protected] && ... aus" |
| Emotionale/tonale Notizen | Nicht handlungsrelevant | "Nutzer schien frustriert" |
| Duplikate von CLAUDE.md | Bereits in Systemaufforderung | "Projekt verwendet renv fuer Abhaengigkeiten" |
| Nicht verifizierte Einzelbeobachtungen | Koennte falsch sein | "Ich glaube das API-Rate-Limit ist 100/Min" |
Wenn eines dieser Muster in vorhandenen Erinnerungen gefunden wird, zur Loeschliste aus Schritt 4 hinzufuegen.
Die Filterregeln in MEMORY.md oder einer retention-policy.md-Themendatei dokumentieren, damit kuenftige Sitzungen sie vor dem Schreiben neuer Erinnerungen referenzieren koennen.
Erwartet: Eine Reihe praeventiver Filterregeln im Speicherverzeichnis dokumentiert. Bestehende Eintraege, die diesen Mustern entsprechen, sind fuer Loeschung markiert.
Bei Fehler: Wenn das Dokumentieren von Filterregeln verfrueht erscheint (Speicher ist klein, Verschmutzung minimal), die Dokumentation ueberspringen, aber dennoch die Filter anwenden, um vorhandene Verletzungen zu erkennen. Die Regeln koennen spaeter formalisiert werden.
Jede Loeschung protokollieren, damit das Vergessen selbst ueberprufbar ist. Ein Pruning-Log erstellen oder aktualisieren.
<!-- In <memory-dir>/pruning-log.md oder an MEMORY.md angehaengt -->
## Pruning-Log
### JJJJ-MM-TT Audit
- **Audited Eintraege**: N
- **Geprinte Eintraege**: M (X%)
- **Aktualisierte Eintraege**: K
- **Gefundene Veraltungen**: [Liste erkannter Veraltungsmuster]
- **Genauigkeitsfehler**: [Liste nicht bestandener Eintraege]
#### Loeschungen
| Eintrag (Zusammenfassung) | Typ | Grund |
|--------------------------|-----|-------|
| "Arbeite gerade an Issue #42" | Ephemer | Sitzungsspezifisch, veraltet |
| "skills/ hat 280 SKILL.md-Dateien" | Projekt | Zaehldrift: tatsaechlich 310 |
| "Verwende acquaint::mcp_session()" | Muster | Paket zu mcptools umbenannt |
Das Pruning-Log kurz halten. Es existiert fuer Nachvollziehbarkeit, nicht fuer Archaeologie. Wenn das Log selbst gross wird, aeltere Eintraege zusammenfassen: "2025: 3 Audits, 47 Eintraege insgesamt gepruned (groesstenteils Zaehldrift und ephemeres Auslaufen)."
Erwartet: Ein zeitgestempelter Pruning-Log-Eintrag, der dokumentiert was geloescht wurde und warum. Das Log ist im Speicherverzeichnis neben den Erinnerungen selbst gespeichert.
Bei Fehler: Wenn das Erstellen einer separaten Log-Datei uebertrieben erscheint (nur 1–2 Eintraege gepruned), stattdessen eine kurze Notiz in MEMORY.md hinzufuegen: <!-- Zuletzt gepruned: JJJJ-MM-TT, 2 veraltete Eintraege entfernt -->. Irgendein Nachweis ist besser als stilles Loeschen.
Bestimmte Speichereintraege sollten unabhaengig von Alter, Zugriffshaeufigkeit oder Genauigkeitsbewertung unveraenderlich bleiben. Diese repraesentieren unersetzlichen Kontext, dessen Verlust erheblichen Aufwand zur Rekonstruktion erfordern wuerde.
Schutzkriterien:
| Kategorie | Beispiele | Warum geschuetzt | |-----------|----------|-----------------| | Architekturentscheidungen | "Flaches Skill-Verzeichnis statt verschachteltem gewaehlt" | Begruendung geht verloren, wenn spaeter neu abgeleitet | | Nutzer-Identitaetspraeferenzen | "Immer Kebab-Case verwenden", "Nie automatisch commiten" | Expliziter Nutzer-Intent, nicht ableitbar | | Sicherheitsaudit-Ergebnisse | "Letzter Audit: 2025-12-13 — BESTANDEN" | Compliance-Nachweis mit Zeitstempeln | | Umbenennungs-/Migrationsaufzeichnungen | "Repo umbenannt: X nach Y am Datum Z" | Querverweisintegritaet haengt davon ab |
Kennzeichnungsmethode: Geschuetzte Eintraege mit <!-- PROTECTED --> inline markieren oder eine protected-Liste im Pruning-Log pflegen. Der Entscheidungsbaum in Schritt 4 muss vor Anwendung jeder Loeschregel auf Schutzstatus pruefen.
Schutz aufheben: Um einen geschuetzten Eintrag zu prunen, zuerst explizit die Kennzeichnung entfernen und den Grund im Pruning-Log dokumentieren. Dieser zweistufige Prozess verhindert versehentliches Loeschen wertvoller Erinnerungen.
Erwartet: Geschuetzte Eintraege ueberstehen alle Pruning-Durchgaenge. Das Pruning-Log zeichnet Schutzhinzufuegungen oder -entfernungen auf.
Bei Fehler: Wenn der geschuetzte Satz zu gross wird (> 30 % aller Eintraege), die Kriterien ueberpruefen — Schutz gilt fuer unersetzlichen Kontext, nicht fuer "wichtige" Eintraege. Wichtige aber rekonstruierbare Fakten sollten normalem Pruning unterliegen.
Nach dem Loeschen koennen verbleibende Erinnerungen fragmentiert sein — Querverweise zeigen auf geloeschte Eintraege, Themendateien verlieren Koeharenz und MEMORY.md kann Luecken haben. Neu-Synthese stellt strukturelle Integritaet wieder her.
Neu-Synthese-Checkliste:
Erwartet: Post-Pruning-Speicher ist strukturell solide — keine verwaisten Referenzen, keine redundanten Fragmente, keine inkoehaerenten Themendateien. Kalte Eintraege sind fuer kuenftige Pruning-Entscheidungen klassifiziert.
Bei Fehler: Wenn Neu-Synthese zeigt, dass Pruning zu agressiv war (kritischer Kontext ging verloren), das Pruning-Log pruefen und aus dem Audit-Trail rekonstruieren. Deshalb existiert der Audit-Trail.
Speicherdrift tritt auf, wenn gespeicherte Fakten still falsch werden — nicht weil sie immer falsch waren, sondern weil sich die zugrundeliegende Realitaet geaendert hat und die Erinnerung nicht aktualisiert wurde. Drift-Wiederherstellung versucht, Erinnerungen an Ort und Stelle zu korrigieren statt sie zu prunen.
Drift-Erkennungsausloeser:
Wiederherstellungsverfahren:
[korrigiert JJJJ-MM-TT] aktualisierennicht verifizierbar markieren und fuer Pruning vormerkenErwartet: Gedriftete Erinnerungen werden wenn moeglich an Ort und Stelle korrigiert, wobei der Kontext erhalten bleibt. Eintraege, die nicht korrigiert werden koennen, werden fuer Pruning markiert. Praeventionsregeln reduzieren kuenftige Drift.
Bei Fehler: Wenn Drift weitverbreitet ist (> 20 % der Eintraege), benoetigt der Speicher moeglicherweise einen vollstaendigen Neuaufbau statt inkrementeller Korrekturen. In diesem Fall das aktuelle Speicherverzeichnis archivieren, neu beginnen und selektiv Eintraege reimportieren, die die Verifizierung bestehen.
manage-memory — der komplementaere Skill fuer das Organisieren und Wachsenlassen von Speicher; zusammen fuer vollstaendige Speicherwartung verwendenmeditate — Klaerung und Verankerung, die aufzeigen kann, welche Erinnerungen Rauschen erzeugenrest — manchmal ist die beste Speicherwartung keine Speicherwartungassess-context — Reasoning-Kontext-Gesundheit bewerten, die Speicherqualitaet direkt beeinflussttesting
Launch all available agents in parallel waves for open-ended hypothesis generation on problems where the correct domain is unknown. Use when facing a cross-domain problem with no clear starting point, when single-agent approaches have stalled, or when diverse perspectives are more valuable than deep expertise. Produces a ranked hypothesis set with convergence analysis and adversarial refinement.
tools
Write integration tests for a Node.js CLI application using the built-in node:test module. Covers the exec helper pattern, output assertions, filesystem state verification, cleanup hooks, JSON output parsing, error case testing, and state restoration after destructive tests. Use when adding tests to an existing CLI, testing a new command, verifying adapter behavior across frameworks, or setting up CI for a CLI tool.
development
Screen a proposed trademark for conflicts and distinctiveness before filing. Covers trademark database searches (TMview, WIPO Global Brand Database, USPTO TESS), distinctiveness analysis using the Abercrombie spectrum, likelihood of confusion assessment using DuPont factors and EUIPO relative grounds, common law rights evaluation, and goods/services overlap analysis. Produces a conflict report with a risk matrix. Use before adopting a new brand name, logo, or slogan — distinct from patent prior art search, which uses different databases, legal frameworks, and analysis methods.
tools
Scaffold a new CLI command using Commander.js with options, action handler, three output modes (human-readable, quiet, JSON), and optional ceremony variant. Covers command naming, option design, shared context patterns, error handling, and integration testing. Use when adding a command to an existing Commander.js CLI, designing a new CLI tool from scratch, or standardizing command structure across a multi-command CLI.