Communitygithub.com

config-gc

Coleta de lixo para sua configuração do Claude Code. Varre periodicamente ~/.claude (skills, memória, hooks, permissões, servidores MCP, caches) em busca de itens redundantes, obsoletos ou de baixo valor e orienta o usuário em uma limpeza com confirmação individual. Use quando o usuário disser

O que é config-gc?

O skill config-gc é uma ferramenta de coleta de lógico para configurações do Claude Code, projetada para manter o ambiente de desenvolvimento limpo e eficiente. Inspirado na coleta de lixo de tempo de execução, ele varre periodicamente o diretório `~/.claude` em busca de itens redundantes, obsoletos ou de baixo valor — como skills que nunca são acionados, hooks órfãos, entradas de permissões duplicadas, servidores MCP quebrados e caches de runtime pesados e antigos. A filosofia principal é que a limpeza deve ser sempre confirmada pelo humano, nunca autônoma, garantindo decisões seguras e reversíveis. O skill suporta todos os canais de acumulação com sinais de obsolescência específicos para cada um, propõe até 20 candidatos por execução, e implementa soft-delete (renomear para `.disabled` ou mover para `_gc_trash/`) para manter sempre um caminho de desfazer. Além disso, mantém um log detalhado em `~/.claude/gc_log.md` com instruções de como reverter cada ação. É especialmente útil após instalar grandes pacotes de skills, para reconciliar sobreposições, e em revisões periódicas mensais. O skill também se relaciona com outros como `skill-stocktake` (audita qualidade) e `configure-ecc` (para reconciliação pós-instalação).

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Config GC — Coleta de Lixo para Configurações do Claude Code

Emprestado da coleta de lixo de tempo de execução: varrer periodicamente em busca de objetos que não são mais referenciados, redundantes, expirados ou de baixo valor, e recuperar o espaço. A diferença crítica: aqui, a coleta requer um humano no loop. Nunca exclua autonomamente.

Quando Ativar

  • O usuário pede para limpar, auditar ou reduzir sua configuração do Claude Code
  • O usuário reclama sobre muitos skills, hooks barulhentos ou inicialização lenta da sessão
  • Uma revisão mensal/periódica da configuração está prevista
  • Após instalar um pacote grande de skills (por exemplo, este repositório), para reconciliar sobreposições com a configuração existente

NÃO ativar para: limpar código-fonte do projeto (isso é refatoração), limpar histórico de chat ou desinstalar o próprio Claude Code.

Filosofia de Design

  1. Configurações somente de adição vazam. Skills, arquivos de memória, hooks e entradas de permissão só são adicionados. Sem revisão periódica, eles apodrecem silenciosamente.
  2. Auditorias regulares superam purgas únicas. Varredura a cada ~30 dias, proponha um pequeno lote de candidatos a cada vez.
  3. Estratégias por canal. Cada tipo de acúmulo (skills, hooks, permissões, ...) tem seus próprios sinais de obsolescência — não aplique uma regra em todos os lugares.
  4. Soft-delete primeiro. Renomear para .disabled > mover para ~/.claude/_gc_trash/ > exclusão real. Sempre mantenha um caminho de desfazer.
  5. Humano no loop forçado. Cada candidato recebe sua própria confirmação [y/n/skip]. Nenhum atalho "sim para todos".
  6. Mantenha um log. Cada execução de GC anexa a ~/.claude/gc_log.md: o que foi tocado, por que e como desfazer.

Canais de Varredura

#CanalCaminhoSinais de obsolescência / redundância
1Skills~/.claude/skills/*/Nomes com forte sobreposição; nunca acionados em transcrições recentes; incompatibilidade de domínio com o trabalho real do usuário; SKILL.md quebrado ou vazio
2Memória~/.claude/**/memory/*.md + seu índiceMúltiplas entradas de índice para um tópico; conteúdo contradizendo entradas mais recentes; datas que já passaram; arquivos órfãos ausentes do índice; fragmentos com menos de 100 palavras que deveriam ser mesclados
3Hooks~/.claude/hooks/ + configuraçõesScripts presentes no disco, mas não referenciados por nenhuma configuração de hook; versões antigas substituídas por reescritas
4Permissõespermissions.allow em settings.json / settings.local.jsonEntradas duplicadas; entradas específicas já cobertas por um curinga (por exemplo, Bash(git push) quando Bash(*) é permitido); concessões pontuais de experimentos passados
5Servidores MCP~/.claude.json ou .mcp.json do projetoServidores que falham ao conectar; duplicatas funcionais; há muito não usados
6Lembretes / tarefas agendadosonde quer que o usuário os mantenhaDisparos únicos com mais de 30 dias; tarefas cujos scripts de destino não existem mais
7Histórico do projeto~/.claude/projects/*/Snapshots de handoff desatualizados; registros de sessão substituídos por estado mais recente
8Caches de runtimecache/, file-history/, logs/, shell-snapshots/Classificar por tamanho e mtime; propor itens com mais de 30 dias e grandes

Fluxo de Trabalho

  1. Varrer todos os canais (ou o subconjunto que o usuário nomear). Coletar candidatos com: caminho, canal, sinal que o sinalizou, tamanho, última modificação.
  2. Classificar por confiança (quebrado/órfão = alto; apenas antigo = baixo) e apresentar como uma tabela numerada. Limitar cada execução a ~20 candidatos — GC é periódico, não exaustivo.
  3. Confirmar um por um. Para cada candidato, mostrar a evidência, depois perguntar [y/n/skip]. O usuário pode parar a qualquer momento.
  4. Soft-delete itens confirmados: preferir renomear para .disabled para skills/hooks e mover para _gc_trash/<data>/ para arquivos. Entradas de permissão vivem em JSON (sem comentários possíveis): fazer backup do arquivo de configurações, registrar cada entrada removida textualmente em gc_log.md, depois removê-la do array allow com jq. Excluir permanentemente apenas quando o usuário solicitar explicitamente.
  5. Registrar a execução em ~/.claude/gc_log.md: timestamp, itens processados, instruções de desfazer.
  6. Relatar: tamanho recuperado, canais ainda saudáveis, data sugerida para próxima revisão.

Exemplos de Comandos de Varredura

Scripts de hook órfãos (canal 3) — scripts no disco que nenhuma configuração de hook referencia:

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

Entradas de permissão redundantes (canal 4) — duplicatas e concessões específicas ofuscadas por um curinga:

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

Maiores caches obsoletos (canal 8) — du -k em vez de find -printf (apenas GNU), para funcionar também no macOS/BSD:

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

Soft-delete com caminho de desfazer (capturar a data uma vez para que o log não possa discordar do diretório):

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) moveu skills/dead-skill -> _gc_trash/$gc_date/ (desfazer: mv de volta)" >> ~/.claude/gc_log.md

Removendo uma entrada de permissão confirmada como redundante (JSON não tem comentários — fazer backup, registrar, depois editar):

cp ~/.claude/settings.local.json ~/.claude/settings.local.json.bak
echo "$(date -Iseconds) removeu entrada de permissão: Bash(git push) (desfazer: restaurar de .bak ou readicionar)" >> ~/.claude/gc_log.md
jq '.permissions.allow -= ["Bash(git push)"]' ~/.claude/settings.local.json.bak \
  > ~/.claude/settings.local.json

Antipadrões

  • Aprovação em massa. Perguntar "excluir todos os 15? [y/n]" derrota o design. Um item, uma decisão.
  • Exclusão definitiva na primeira passagem. Se não houver uma cópia em _gc_trash/ ou renomeação para .disabled, você fez errado.
  • Tratar "antigo" como "morto". Um skill não tocado por 60 dias pode ser sazonal (temporada de impostos, revisões trimestrais). Idade é um sinal, não um veredito — é por isso que um humano confirma.
  • Limpar memória por truncamento. Mesclar dois arquivos de memória contraditórios requer ler ambos e manter a verdade mais recente, não excluir o mais longo.
  • Tocar qualquer coisa fora de ~/.claude (ou do .claude/ do projeto). O GC de configuração nunca vagueia por árvores de código-fonte.

Melhores Práticas

  • Execute após grandes adições, não apenas em um calendário: instalar um pacote de 50 skills é exatamente quando a sobreposição com skills existentes aparece.
  • Quando dois skills se sobrepõem, prefira desabilitar aquele com a descrição de gatilho mais fraca — é o que provavelmente nunca estava sendo acionado de qualquer maneira.
  • A limpeza de permissões é o canal de maior valor por minuto gasto: entradas allow redundantes dificultam a revisão de segurança.
  • Mantenha gc_log.md para sempre. É pequeno, e "quando desabilitei aquele hook e por quê" surge com mais frequência do que você imagina.

Skills Relacionados

  • skill-stocktake — audita a qualidade do skill; o config-gc audita a existência do skill. Execute stocktake no que sobreviver ao GC.
  • workspace-surface-audit — a contraparte aditiva: recomenda o que instalar. O config-gc é a metade subtrativa do mesmo ciclo de vida.
  • configure-ecc — depois de instalar skills com ele, execute config-gc para reconciliar sobreposições com sua configuração pré-existente.
  • continuous-learning — produz os arquivos de memória que este skill audita posteriormente.
  • security-review — funciona bem em conjunto com o canal de permissões.

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.

Habilidades Relacionadas