Communitygithub.com

config-gc

Garbage Collection für Claude Code Konfigurationen. Überprüft regelmäßig ~/.claude auf redundante, veraltete, verwaiste oder wertlose Elemente und führt den Benutzer durch eine bestätigte Bereinigung.

Was ist config-gc?

Config GC ist eine Fähigkeit (Skill) für Claude Code, die eine systematische Müllabfuhr für die gesamte Claude-Code-Konfiguration durchführt. Sie scannt periodisch (standardmäßig alle ~30 Tage) alle relevanten Kanäle wie Skills, Memory-Dateien, Hooks, Berechtigungen, MCP-Server, geplante Aufgaben, Projekthistorie und Laufzeit-Caches. Der entscheidende Unterschied zur automatischen Speicherbereinigung in Programmiersprachen: **Config GC löscht niemals eigenständig.** Jeder Kandidat wird einzeln mit Begründung präsentiert und erfordert eine explizite `[y/n/skip]`-Bestätigung durch den Menschen. Die Löschung erfolgt immer zunächst als Soft-Delete (durch `.disabled`-Umbenennung oder Verschieben in `~/.claude/_gc_trash/<Datum>/`), sodass jeder Schritt rückgängig gemacht werden kann. Ein ausführliches Log (`~/.claude/gc_log.md`) dokumentiert alle Aktionen mit Zeitstempel, Grund und Rückgängig-Anleitung. Der Skill vermeidet bewusst Anti-Patterns wie Massenbestätigungen, Hartlöschungen beim ersten Durchlauf oder die Gleichsetzung von Alter mit Wertlosigkeit. Er eignet sich besonders nach großen Installationen (z. B. eines Skill-Packs) und bei Beschwerden über zu viele Skills, laute Hooks oder langsamen Start.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/config-gc

In Ihrer bevorzugten KI fragen

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

Dokumentation

Config GC — Garbage Collection für Claude Code Einrichtungen

Entlehnt aus der Laufzeit-Speicherbereinigung: regelmäßig nach Objekten suchen, die nicht mehr referenziert werden, redundant, abgelaufen oder wertarm sind, und den Platz zurückgewinnen. Der entscheidende Unterschied: Hier erfordert die Bereinigung einen menschlichen Eingriff. Niemals autonom löschen.

Wann aktivieren

  • Der Benutzer bittet um Aufräumen, Prüfung oder Verschlankung seiner Claude Code Konfiguration
  • Der Benutzer beschwert sich über zu viele Skills, laute Hooks oder langsamen Start von Sitzungen
  • Eine monatliche/periodische Konfigurationsüberprüfung steht an
  • Nach der Installation eines großen Skill-Packs (z. B. dieses Repos), um Überschneidungen mit der bestehenden Einrichtung zu bereinigen

NICHT aktivieren für: Bereinigung von Projektquellcode (das ist Refactoring), Löschen des Chat-Verlaufs oder Deinstallation von Claude Code selbst.

Design-Philosophie

  1. Anhänge-Konfigurationen lecken. Skills, Memory-Dateien, Hooks und Berechtigungseinträge werden nur hinzugefügt. Ohne regelmäßige Überprüfung verrotten sie still.
  2. Regelmäßige Audits sind besser als einmalige Säuberungen. Alle ~30 Tage scannen, jedes Mal eine kleine Anzahl von Kandidaten vorschlagen.
  3. Strategien pro Kanal. Jeder Akkumulationstyp (Skills, Hooks, Berechtigungen, ...) hat eigene Signale für Veralterung – nicht eine Regel für alle anwenden.
  4. Zuerst Soft-Delete. Umbenennen in .disabled > verschieben nach ~/.claude/_gc_trash/ > echte Löschung. Immer einen Rückgängig-Pfad bereithalten.
  5. Erzwungener menschlicher Eingriff. Jeder Kandidat erhält seine eigene [y/n/skip]-Bestätigung. Keine „Allen zustimmen“-Abkürzung.
  6. Ein Log führen. Jeder GC-Durchlauf hängt an ~/.claude/gc_log.md an: was war betroffen, warum und wie rückgängig zu machen.

Scan-Kanäle

#KanalPfadSignale für Veralterung / Redundanz
1Skills~/.claude/skills/*/Stark überlappende Namen; nie in aktuellen Transkripten ausgelöst; Domänenkonflikt mit der tatsächlichen Arbeit des Benutzers; defekte oder leere SKILL.md
2Memory~/.claude/**/memory/*.md + sein IndexMehrere Indexeinträge zu einem Thema; Inhalte widersprechen neueren Einträgen; abgelaufene Daten; verwaiste Dateien, die im Index fehlen; Fragmente unter 100 Wörtern, die zusammengeführt werden sollten
3Hooks~/.claude/hooks/ + EinstellungenSkripte auf der Festplatte, die von keiner Hook-Konfiguration referenziert werden; alte Versionen, die durch Umschreibungen ersetzt wurden
4Berechtigungenpermissions.allow in settings.json / settings.local.jsonDoppelte Einträge; spezifische Einträge, die bereits von einem Platzhalter abgedeckt werden (z. B. Bash(git push) wenn Bash(*) erlaubt ist); einmalige Genehmigungen aus früheren Experimenten
5MCP-Server~/.claude.json oder Projekt .mcp.jsonServer, die keine Verbindung herstellen können; funktionale Duplikate; lange ungenutzt
6Geplante Erinnerungen / Jobswo auch immer der Benutzer sie aufbewahrtEinmalige, die älter als 30 Tage sind; Jobs, deren Zielskripte nicht mehr existieren
7Projekthistorie~/.claude/projects/*/Veraltete Übergabe-Schnappschüsse; Sitzungsaufzeichnungen, die durch neuere Zustände ersetzt wurden
8Laufzeit-Cachescache/, file-history/, logs/, shell-snapshots/Nach Größe und mtime sortieren; Elemente älter als 30 Tage und groß vorschlagen

Arbeitsablauf

  1. Scannen aller Kanäle (oder der vom Benutzer genannten Teilmenge). Kandidaten sammeln mit: Pfad, Kanal, Signal, das sie markiert hat, Größe, letzte Änderung.
  2. Rangfolge nach Vertrauenswürdigkeit (defekt/verwaist = hoch; nur alt = niedrig) und als nummerierte Tabelle präsentieren. Pro Durchlauf auf ~20 Kandidaten begrenzen – GC ist periodisch, nicht erschöpfend.
  3. Eins nach dem anderen bestätigen. Bei jedem Kandidaten die Evidenz zeigen, dann [y/n/skip] fragen. Der Benutzer kann jederzeit abbrechen.
  4. Bestätigte Elemente soft-löschen: .disabled-Umbenennung für Skills/Hooks bevorzugen und _gc_trash/<Datum>/-Verschiebung für Dateien. Berechtigungseinträge leben in JSON (keine Kommentare möglich): Settings-Datei sichern, jeden entfernten Eintrag wörtlich in gc_log.md protokollieren, dann aus dem allow-Array mit jq entfernen. Nur hart löschen, wenn der Benutzer explizit darum bittet.
  5. Den Durchlauf protokollieren in ~/.claude/gc_log.md: Zeitstempel, bearbeitete Elemente, Rückgängig-Anleitung.
  6. Bericht: freigegebene Größe, noch gesunde Kanäle, vorgeschlagenes nächstes Überprüfungsdatum.

Beispiel-Scan-Befehle

Verwaiste Hook-Skripte (Kanal 3) – Skripte auf der Festplatte, die keine Hook-Konfiguration referenziert:

for f in ~/.claude/hooks/*; do
  name=$(basename "$f")
  grep -rq "$name" ~/.claude/settings.json ~/.claude/settings.local.json 2>/dev/null \
    || echo "VERWAIST: $f"
done

Redundante Berechtigungseinträge (Kanal 4) – Duplikate und spezifische Genehmigungen, die von einem Platzhalter überschattet werden:

jq -r '.permissions.allow[]' ~/.claude/settings.local.json | sort | uniq -d
if jq -e '.permissions.allow | index("Bash(*)")' ~/.claude/settings.local.json >/dev/null; then
  jq -r '.permissions.allow[]' ~/.claude/settings.local.json \
    | grep '^Bash(' | grep -vF 'Bash(*)'
fi

Größte veraltete Caches (Kanal 8) – du -k statt GNU-only find -printf, damit es auch auf macOS/BSD funktioniert:

find ~/.claude/file-history ~/.claude/shell-snapshots -type f -mtime +30 \
  -exec du -k {} + 2>/dev/null | sort -rn | head -20

Soft-Delete mit Rückgängig-Pfad (Datum einmal erfassen, damit das Log nicht mit dem Verzeichnis uneins sein kann):

gc_date=$(date +%Y-%m-%d)
mkdir -p ~/.claude/_gc_trash/$gc_date
mv ~/.claude/skills/dead-skill ~/.claude/_gc_trash/$gc_date/
echo "$(date -Iseconds) moved skills/dead-skill -> _gc_trash/$gc_date/ (undo: mv back)" >> ~/.claude/gc_log.md

Entfernen eines bestätigt redundanten Berechtigungseintrags (JSON hat keine Kommentare – sichern, protokollieren, dann bearbeiten):

cp ~/.claude/settings.local.json ~/.claude/settings.local.json.bak
echo "$(date -Iseconds) removed permission entry: Bash(git push) (undo: restore from .bak or re-add)" >> ~/.claude/gc_log.md
jq '.permissions.allow -= ["Bash(git push)"]' ~/.claude/settings.local.json.bak \
  > ~/.claude/settings.local.json

Anti-Patterns

  • Massenbestätigung. Die Frage „Alle 15 löschen? [y/n]“ widerspricht dem Design. Ein Element, eine Entscheidung.
  • Hartlöschung beim ersten Durchlauf. Wenn es keine _gc_trash/-Kopie oder .disabled-Umbenennung gibt, hast du es falsch gemacht.
  • „Alt“ mit „tot“ gleichsetzen. Ein Skill, der 60 Tage nicht angerührt wurde, kann saisonal sein (Steuerzeit, Quartalsüberprüfungen). Alter ist ein Signal, kein Urteil – deshalb bestätigt ein Mensch.
  • Memory durch Kürzen bereinigen. Das Zusammenführen zweier widersprüchlicher Memory-Dateien erfordert das Lesen beider und das Behalten der neueren Wahrheit, nicht das Löschen der längeren.
  • Außerhalb von ~/.claude (oder dem .claude/ des Projekts) etwas anfassen. Config GC wandert nie in Quellbäume.

Best Practices

  • Nach großen Ergänzungen ausführen, nicht nur nach Kalender: Die Installation eines 50-Skill-Packs ist genau der Zeitpunkt, an dem Überschneidungen mit bestehenden Skills auftreten.
  • Wenn sich zwei Skills überschneiden, den mit der schwächeren Auslöserbeschreibung deaktivieren – es ist der, der wahrscheinlich sowieso nie ausgelöst hat.
  • Berechtigungsbereinigung ist der Kanal mit dem höchsten Wert pro investierter Minute: Redundante Allow-Einträge erschweren die Sicherheitsüberprüfung.
  • gc_log.md für immer behalten. Es ist winzig, und die Frage „Wann habe ich diesen Hook deaktiviert und warum“ kommt häufiger vor, als man denkt.

Verwandte Skills

  • skill-stocktake – prüft die Qualität von Skills; config-gc prüft die Existenz von Skills. Stocktake auf dem ausführen, was GC überlebt hat.
  • workspace-surface-audit – das additive Gegenstück: empfiehlt, was zu installieren ist. config-gc ist die subtraktive Hälfte desselben Lebenszyklus.
  • configure-ecc – nach der Installation von Skills damit, config-gc ausführen, um Überschneidungen mit der bestehenden Einrichtung zu bereinigen.
  • continuous-learning – produziert die Memory-Dateien, die dieser Skill später prüft.
  • security-review – passt gut zum Berechtigungskanal.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Verwandte Skills