Skip to content
cccskills
FreePublished on GitHubEnglish overview

config-gc

Review Claude Code settings for duplicate skills, outdated memory files, unused permissions, and other clutter. The workflow presents evidence for each candidate, requests individual approval, and records reversible cleanup actions.

OriginalShow the original description

Garbage collection for your Claude Code configuration. Periodically scans ~/.claude (skills, memory, hooks, permissions, MCP servers, caches) for redundant, stale, orphaned, or low-value items, then walks the user through a confirm-each-deletion cleanup. Use when the user says "clean up my config", "config GC", "too many skills", "audit my setup", "my .claude is bloated", or asks for a periodic config review.

AI rating90/ 100See how to install

Good for

  • Reviewing overlaps after installing many skills
  • Checking outdated memory files and unused hooks
  • Organizing duplicate permission entries
  • Running a monthly configuration review

Overview

What it does

This skill reviews accumulated duplicates and unnecessary items in Claude Code settings, then helps organize them with your approval. It examines skills, memory, hooks, permissions, MCP servers, and other configuration items for unreferenced files and outdated information. It lists candidates with reasons, sizes, and modification dates, presenting those with the strongest evidence first. After cleanup, it records the changes and instructions for reversing them in gc_log.md.

When it helps

Use it after adding many skills with overlapping purposes, when growing settings become difficult to manage, or for a monthly review. It does not decide that something is unnecessary simply because it is old. You decide whether to keep settings used seasonally or in similar circumstances.

Example requests

  • “Review my Claude Code settings and list cleanup candidates with reasons.”
  • “Check for duplicate permissions and hooks that are no longer referenced.”
  • “Compare the skills I added with my existing skills for overlap.”

Notes

Each candidate requires individual confirmation; there is no bulk approval. The workflow first disables or moves items aside. Permanent deletion requires an explicit request. Permission edits use jq and include a settings backup. Project source code cleanup is outside its scope.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodConfiguration cleanup and monthly reviews are explicit use cases, and project source code is excluded.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodEight inspection channels, scan commands, and steps from individual confirmation through logging are provided.
SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIndividual confirmation, reversible removal, settings backups before permission edits, and undo records are explicitly required.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingThe workflow uses Claude Code configuration and jq, but does not provide jq installation instructions.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 19, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md7.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Config GC — Garbage Collection for Claude Code Setups

Borrowed from runtime garbage collection: periodically scan for objects that are no longer referenced, redundant, expired, or low-value, and reclaim the space. The critical difference: here, collection requires a human in the loop. Never delete autonomously.

When to Activate

  • The user asks to clean up, audit, or slim down their Claude Code configuration
  • The user complains about too many skills, noisy hooks, or slow session startup
  • A monthly/periodic config review is due
  • After installing a large skill pack (e.g. this repo), to reconcile overlaps with existing setup

Do NOT activate for: cleaning project source code (that's refactoring), clearing chat history, or uninstalling Claude Code itself.

Design Philosophy

  1. Append-only configs leak. Skills, memory files, hooks, and permission entries only ever get added. Without periodic review they rot silently.
  2. Regular audits beat one-time purges. Scan every ~30 days, propose a small batch of candidates each time.
  3. Per-channel strategies. Each accumulation type (skills, hooks, permissions, ...) has its own staleness signals — don't apply one rule everywhere.
  4. Soft-delete first. Rename to .disabled > move to ~/.claude/_gc_trash/ > real deletion. Always keep an undo path.
  5. Forced human-in-the-loop. Every candidate gets its own [y/n/skip] confirmation. No "yes to all" shortcut.
  6. Keep a log. Every GC run appends to ~/.claude/gc_log.md: what was touched, why, and how to undo it.

Scan Channels

#ChannelPathStaleness / redundancy signals
1Skills~/.claude/skills/*/Heavily overlapping names; never triggered in recent transcripts; domain mismatch with the user's actual work; broken or empty SKILL.md
2Memory~/.claude/**/memory/*.md + its indexMultiple index entries for one topic; contents contradicting newer entries; dates that have passed; orphan files missing from the index; sub-100-word fragments that should merge
3Hooks~/.claude/hooks/ + settingsScripts present on disk but referenced by no hook config; old versions superseded by rewrites
4Permissionspermissions.allow in settings.json / settings.local.jsonDuplicate entries; specific entries already covered by a wildcard (e.g. Bash(git push) when Bash(*) is allowed); one-off grants from past experiments
5MCP servers~/.claude.json or project .mcp.jsonServers that fail to connect; functional duplicates; long-unused
6Scheduled reminders / jobswherever the user keeps themFired one-shots older than 30 days; jobs whose target scripts no longer exist
7Project history~/.claude/projects/*/Stale handoff snapshots; session records superseded by newer state
8Runtime cachescache/, file-history/, logs/, shell-snapshots/Sort by size and mtime; propose items >30 days old and large

Workflow

  1. Scan all channels (or the subset the user names). Collect candidates with: path, channel, signal that flagged it, size, last-modified.
  2. Rank by confidence (broken/orphaned = high; merely old = low) and present as a numbered table. Cap each run at ~20 candidates — GC is periodic, not exhaustive.
  3. Confirm one by one. For each candidate show the evidence, then ask [y/n/skip]. The user can stop at any point.
  4. Soft-delete confirmed items: prefer .disabled rename for skills/hooks and _gc_trash/<date>/ move for files. Permission entries live in JSON (no comments possible): back up the settings file, record each removed entry verbatim in gc_log.md, then remove it from the allow array with jq. Only hard-delete when the user explicitly asks.
  5. Log the run to ~/.claude/gc_log.md: timestamp, items actioned, undo instructions.
  6. Report: reclaimed size, channels still healthy, suggested next review date.

Example Scan Commands

Orphaned hook scripts (channel 3) — scripts on disk that no hook config references:

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

Redundant permission entries (channel 4) — duplicates, and specific grants shadowed by a wildcard:

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

Largest stale caches (channel 8) — du -k instead of GNU-only find -printf, so it works on macOS/BSD too:

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

Soft-delete with undo path (capture the date once so the log can't disagree with the directory):

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

Removing a confirmed-redundant permission entry (JSON has no comments — back up, log, then edit):

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

  • Bulk approval. Asking "delete all 15? [y/n]" defeats the design. One item, one decision.
  • Hard-deleting on first pass. If there's no _gc_trash/ copy or .disabled rename, you did it wrong.
  • Treating "old" as "dead". A skill untouched for 60 days may be seasonal (tax season, quarterly reviews). Age is a signal, not a verdict — that's why a human confirms.
  • Cleaning memory by truncation. Merging two contradicting memory files requires reading both and keeping the newer truth, not deleting the longer one.
  • Touching anything outside ~/.claude (or the project's .claude/). Config GC never wanders into source trees.

Best Practices

  • Run after big additions, not just on a calendar: installing a 50-skill pack is exactly when overlap with existing skills appears.
  • When two skills overlap, prefer disabling the one with the weaker trigger description — it's the one that was probably never firing anyway.
  • Permission cleanup is the highest-value channel per minute spent: redundant allow-entries make security review harder.
  • Keep gc_log.md forever. It's tiny, and "when did I disable that hook and why" comes up more often than you'd think.

Related Skills

  • skill-stocktake — audits skill quality; config-gc audits skill existence. Run stocktake on what survives GC.
  • workspace-surface-audit — the additive counterpart: recommends what to install. config-gc is the subtractive half of the same lifecycle.
  • configure-ecc — after installing skills with it, run config-gc to reconcile overlaps with your pre-existing setup.
  • continuous-learning — produces the memory files this skill later audits.
  • security-review — pairs well with the permissions channel.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

accessibility

FreeSummaryAI rating 100

Design and audit interfaces for Web, iOS, and Android using WCAG 2.2 accessibility guidance. Check screen-reader labels, keyboard navigation, contrast, and control sizes to identify barriers and guide implementation for people using assistive technology.

  • Adding descriptive labels to icon-only buttons
  • Reviewing keyboard navigation and modal focus
  • Checking contrast and control sizes
affaan-m/ECC284KUpdated Oct 16, 2026

agent-architecture-audit

FreeSummaryAI rating 80

Investigate unreliable AI agents across 12 layers, including instructions, memory, tool execution, and display. Use code and logs to trace failures, rank findings by severity, and produce an ordered repair plan that prioritizes code changes.

  • Investigating failures that appear only inside an agent application
  • Tracing old conversation content leaking into new sessions
  • Checking skipped or falsely claimed tool execution
affaan-m/ECC284KUpdated Oct 16, 2026

agent-eval

FreeSummaryAI rating 80

Compare coding agents on tasks from your own codebase. Define success checks, run agents in separate Git working directories, and report pass rates, available API costs, completion time, and consistency across repeated trials.

  • Comparing coding agents on real development tasks
  • Evaluating a new tool or model before adoption
  • Checking performance after agent updates
affaan-m/ECC284KUpdated Oct 16, 2026

agent-harness-construction

FreeSummaryAI rating 100

Design and refine an AI agent’s available actions, tool inputs, and result formats. Define recovery steps for errors, manage the information kept in context, and evaluate changes through completion rates, retries, and cost per successful task.

  • Define an AI agent’s tool set and input formats
  • Make tool results and next steps easier to interpret
  • Specify safe retries and stopping conditions
affaan-m/ECC284KUpdated Oct 16, 2026

agent-introspection-debugging

FreeSummaryAI rating 100

Diagnose failed AI agent runs by capturing errors, checking likely causes, and choosing small, reversible recovery actions. The workflow produces a structured report of the failure, recovery steps, and evidence, helping explain repeated retries or stalled progress.

  • Diagnosing repeated tool calls with no progress
  • Investigating quality loss as context grows
  • Checking file paths and environment mismatches
affaan-m/ECC284KUpdated Oct 16, 2026

agent-introspection-debugging

FreeSummaryAI rating 100

Diagnose AI agent runs that fail repeatedly, loop through tools, or lose track of the task. Capture errors and environment details, test a focused recovery action, and produce a report explaining the evidence and outcome.

  • Diagnosing repeated failures in an agent run
  • Investigating loops through the same tool calls
  • Reviewing output degradation as context grows
affaan-m/ECC284KUpdated Oct 5, 2026

See all skills by affaan-m

Report a problem with this skill