Communitygithub.com

config-gc

Nettoyage de la configuration Claude Code. Analyse périodiquement ~/.claude (skills, mémoire, hooks, permissions, serveurs MCP, caches) pour les éléments redondants, obsolètes ou orphelins, puis demande une confirmation avant chaque suppression.

Qu'est-ce que config-gc ?

Config GC est une compétence d'agent conçue pour effectuer un nettoyage type 'garbage collection' de la configuration Claude Code. Elle est activée lorsque l'utilisateur demande à nettoyer, auditer ou réduire sa configuration, par exemple après l'installation d'un pack de skills volumineux ou lors d'une révision mensuelle. La compétence analyse huit canaux distincts (skills, mémoire, hooks, permissions, serveurs MCP, rappels, historique de projet et caches d'exécution) en détectant les signaux de redondance, d'obsolescence ou de valeur faible. Chaque candidat à la suppression est présenté un par un avec une requête de confirmation explicite (y/n/skip), forçant la présence d'un humain dans la boucle. La suppression est d'abord 'douce' (renommage en .disabled ou déplacement dans _gc_trash/) pour préserver une possibilité d'annulation, puis consignée dans un fichier gc_log.md. Les commandes shell fournies dans la documentation illustrent comment détecter les hooks orphelins, les permissions redondantes, les caches volumineux et anciens, et effectuer des suppressions avec sauvegarde. Config GC est conçu pour être utilisé sur toute plateforme supportant Claude Code (Linux, macOS).

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Config GC — Garbage Collection pour les configurations Claude Code

Emprunté au garbage collection des runtimes : analyser périodiquement les objets qui ne sont plus référencés, redondants, expirés ou de faible valeur, et récupérer l'espace perdu. La différence cruciale : ici, la collecte nécessite un humain dans la boucle. Ne jamais supprimer de manière autonome.

Quand activer

  • L'utilisateur demande de nettoyer, auditer ou réduire sa configuration Claude Code
  • L'utilisateur se plaint d'avoir trop de skills, de hooks bruyants ou d'un démarrage de session lent
  • Une révision mensuelle/périodique de la configuration est due
  • Après l'installation d'un pack de skills volumineux (par exemple ce dépôt), pour réconcilier les chevauchements avec la configuration existante

Ne PAS activer pour : nettoyer le code source du projet (c'est du refactoring), effacer l'historique de chat ou désinstaller Claude Code lui-même.

Philosophie de conception

  1. Les configurations en mode 'append-only' fuient. Les skills, fichiers mémoire, hooks et entrées de permission ne font que s'ajouter. Sans révision périodique, ils pourrissent en silence.
  2. Les audits réguliers valent mieux qu'un nettoyage unique. Analyser tous les ~30 jours, proposer un petit lot de candidats à chaque fois.
  3. Des stratégies par canal. Chaque type d'accumulation (skills, hooks, permissions, ...) a ses propres signaux d'obsolescence — ne pas appliquer une règle unique partout.
  4. Suppression douce d'abord. Renommer en .disabled > déplacer vers ~/.claude/_gc_trash/ > suppression réelle. Toujours conserver une voie d'annulation.
  5. Humain obligatoire dans la boucle. Chaque candidat reçoit sa propre confirmation [y/n/skip]. Pas de raccourci 'oui à tout'.
  6. Tenir un journal. Chaque exécution de GC ajoute à ~/.claude/gc_log.md : ce qui a été touché, pourquoi et comment annuler.

Canaux d'analyse

#CanalCheminSignaux d'obsolescence / redondance
1Skills~/.claude/skills/*/Noms fortement chevauchants ; jamais déclenchés dans les transcriptions récentes ; domaine inadapté au travail réel de l'utilisateur ; SKILL.md cassé ou vide
2Mémoire~/.claude/**/memory/*.md + son indexPlusieurs entrées d'index pour un même sujet ; contenus contredisant des entrées plus récentes ; dates dépassées ; fichiers orphelins absents de l'index ; fragments de moins de 100 mots qui devraient être fusionnés
3Hooks~/.claude/hooks/ + paramètresScripts présents sur disque mais non référencés par une configuration de hook ; anciennes versions remplacées par des réécritures
4Permissionspermissions.allow dans settings.json / settings.local.jsonEntrées en double ; entrées spécifiques déjà couvertes par un joker (par ex. Bash(git push) alors que Bash(*) est autorisé) ; autorisations ponctuelles d'expériences passées
5Serveurs MCP~/.claude.json ou .mcp.json du projetServeurs qui ne parviennent pas à se connecter ; doublons fonctionnels ; inutilisés depuis longtemps
6Rappels / tâches planifiéeslà où l'utilisateur les conserveRappels uniques vieux de plus de 30 jours ; tâches dont les scripts cibles n'existent plus
7Historique de projet~/.claude/projects/*/Instantanés de transfert obsolètes ; enregistrements de session remplacés par un état plus récent
8Caches d'exécutioncache/, file-history/, logs/, shell-snapshots/Trier par taille et mtime ; proposer les éléments de plus de 30 jours et volumineux

Flux de travail

  1. Analyser tous les canaux (ou le sous-ensemble nommé par l'utilisateur). Collecter les candidats avec : chemin, canal, signal déclencheur, taille, dernière modification.
  2. Classer par confiance (cassé/orphelin = élevée ; simplement vieux = faible) et présenter sous forme de tableau numéroté. Limiter chaque exécution à ~20 candidats — GC est périodique, pas exhaustif.
  3. Confirmer un par un. Pour chaque candidat, montrer la preuve, puis demander [y/n/skip]. L'utilisateur peut s'arrêter à tout moment.
  4. Supprimer en douceur les éléments confirmés : préférer un renommage en .disabled pour les skills/hooks et un déplacement vers _gc_trash/<date>/ pour les fichiers. Les entrées de permission vivent dans du JSON (pas de commentaires possibles) : sauvegarder le fichier de paramètres, enregistrer chaque entrée supprimée textuellement dans gc_log.md, puis la retirer du tableau allow avec jq. Ne supprimer définitivement que si l'utilisateur le demande explicitement.
  5. Journaliser l'exécution dans ~/.claude/gc_log.md : horodatage, éléments traités, instructions d'annulation.
  6. Rapporter : taille récupérée, canaux toujours sains, date de prochaine révision suggérée.

Exemples de commandes d'analyse

Scripts de hook orphelins (canal 3) — scripts sur disque qu'aucune configuration de hook ne référence :

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

Entrées de permission redondantes (canal 4) — doublons et autorisations spécifiques masquées par un joker :

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

Caches les plus volumineux et obsolètes (canal 8) — du -k au lieu de find -printf spécifique à GNU, pour fonctionner aussi sur macOS/BSD :

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

Suppression douce avec chemin d'annulation (capturer la date une fois pour que le journal ne puisse pas contredire le répertoire) :

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) déplacé skills/dead-skill -> _gc_trash/$gc_date/ (annulation : mv inverse)" >> ~/.claude/gc_log.md

Suppression d'une entrée de permission confirmée redondante (le JSON n'a pas de commentaires — sauvegarder, journaliser, puis éditer) :

cp ~/.claude/settings.local.json ~/.claude/settings.local.json.bak
echo "$(date -Iseconds) entrée de permission supprimée : Bash(git push) (annulation : restaurer depuis .bak ou rajouter)" >> ~/.claude/gc_log.md
jq '.permissions.allow -= ["Bash(git push)"]' ~/.claude/settings.local.json.bak \
  > ~/.claude/settings.local.json

Anti-patrons

  • Approbation en bloc. Demander « Supprimer les 15 ? [y/n] » va à l'encontre de la conception. Un élément, une décision.
  • Suppression définitive dès le premier passage. S'il n'y a pas de copie dans _gc_trash/ ou de renommage en .disabled, c'est une erreur.
  • Considérer 'vieux' comme 'mort'. Un skill non utilisé depuis 60 jours peut être saisonnier (saison des impôts, bilans trimestriels). L'âge est un signal, pas un verdict — c'est pourquoi un humain confirme.
  • Nettoyer la mémoire par troncature. Fusionner deux fichiers mémoire contradictoires nécessite de lire les deux et de conserver la vérité la plus récente, pas de supprimer le plus long.
  • Toucher à quoi que ce soit en dehors de ~/.claude (ou du .claude/ du projet). Config GC ne s'aventure jamais dans les arbres source.

Bonnes pratiques

  • Exécuter après de gros ajouts, pas seulement sur un calendrier : installer un pack de 50 skills est exactement le moment où des chevauchements avec les skills existants apparaissent.
  • Lorsque deux skills se chevauchent, privilégier la désactivation de celui dont la description de déclenchement est la plus faible — c'est celui qui ne se déclenchait probablement de toute façon jamais.
  • Le nettoyage des permissions est le canal le plus rentable par minute passée : les entrées allow redondantes rendent la revue de sécurité plus difficile.
  • Conserver gc_log.md pour toujours. C'est minuscule, et « quand ai-je désactivé ce hook et pourquoi » revient plus souvent qu'on ne le pense.

Compétences associées

  • skill-stocktake — audite la qualité des skills ; config-gc audite l'existence des skills. Exécuter stocktake sur ce qui survit au GC.
  • workspace-surface-audit — le pendant additif : recommande quoi installer. config-gc est la moitié soustractive du même cycle de vie.
  • configure-ecc — après avoir installé des skills avec elle, exécuter config-gc pour réconcilier les chevauchements avec votre configuration préexistante.
  • continuous-learning — produit les fichiers mémoire que cette compétence audite ensuite.
  • security-review — se combine bien avec le canal des permissions.

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.

Skills associés