skills/plugin-cache-cleanup/SKILL.md
Prune stale cached versions of the prove plugin from Claude Code's plugin cache. Use when superseded versions pile up under plugins/cache and agents read stale skills/references from them, or when reclaiming plugin-cache disk space. Triggers on "clean up cached plugin versions", "prune the plugin cache", "remove old prove versions", "stale plugin cache".
npx skillsauth add mjmorales/claude-prove plugin-cache-cleanupInstall 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.
Claude Code keeps every installed version of a plugin under <plugins-root>/cache/<marketplace>/<plugin>/<version>/ and never prunes superseded ones. Stale prove versions are actively harmful: agents that Glob/Grep or follow skill paths can read superseded SKILL.md, references, and CLI code. This skill removes every cached prove version that no install manifest references — behind one human gate, never touching anything else.
Hard floor: delete only cache/<marketplace>/prove/<version>/ directories classified stale. Never touch installed_plugins.json, known_marketplaces.json, plugin-catalog-cache.json, marketplaces/, data/, or any non-prove plugin's cache; instead leave them exactly as found.
Collect every plugins root that exists — claude-env multiplies them:
for root in ~/.claude/plugins ~/.claude-envs/*/plugins; do
[ -d "$root/cache" ] || [ -f "$root/installed_plugins.json" ] || continue
(cd "$root" && pwd -P) # physical path — roots may be symlinked
done | sort -u
Active = every installPath referenced by any discovered manifest. Manifests in one root may reference paths in another root — collect globally before classifying:
for root in <discovered roots>; do
[ -f "$root/installed_plugins.json" ] || continue
jq -r '.plugins[][].installPath' "$root/installed_plugins.json"
done | sort -u
Resolve each to a physical path (cd <path> && pwd -P; keep unresolvable entries verbatim — a dangling installPath still marks intent).
For each root, list cache/*/prove/*/ version dirs, resolve to physical paths, dedupe, and classify:
Safety overrides, applied in order:
Present one table — version, physical path, du -sh size, classification — plus the total to reclaim. Then AskUserQuestion (header "Cleanup"):
rm -rf <each approved stale version dir>
Then verify: every active path still exists (test -d), and cache/*/prove/ now contains only kept versions. If an active path went missing, report it as an error immediately — do not continue.
Report one line per deleted version plus total disk reclaimed. If the running session's plugin commands came from a deleted version (the skill itself runs from the cache), note that a session restart re-resolves them.
testing
Anchor session context into prove primitives before compaction and rehydrate from them after. Built-in compaction summarizes by recency and drops the claude-prove state an agent needs to reorient; this skill externalizes volatile context into durable anchors (scrum tasks, decisions, run-state, a compact-anchors pointer file) pre-compact, then runs a deterministic reorientation sequence post-compact. Use before a manual /compact, when context is about to auto-compact, or immediately after a compaction. Triggers on "smart compact", "prepare for compaction", "anchor before compact", "context is getting long", "rehydrate", "reorient after compact".
tools
Apply model-driven CONTENT reshaping to stored run artifacts that sit behind the current schema, on explicit operator invocation only. Triggers on "migrate runs", "migrate run artifacts", "run content migration", "reshape run artifacts", "bring runs to current schema". You are the driver: the `run-state migrate-runs` CLI mechanically detects which artifacts are behind and emits a plan naming each one plus its migration-instruction file; you read the instructions and reshape the prose/findings, gated by the operator. The deterministic `schema migrate` handles structural column moves; this skill covers only the content reshaping beyond them. Never run as a background or resident loop — only when the operator asks.
tools
Synthesize the 7-section risk-forward Review Brief from a run's reasoning log. Triggers on "reasoning brief", "review brief", "synthesize the brief", "generate the brief", "brief the run", "brief for review", "story brief". You are the driver: the `acb brief` CLI renders a mechanical preservation-safe backbone and proves preservation; you synthesize the narrative prose (summary + changes), single-pass or multipass over episode chunks, then gate it through Stage-1 (mechanical, blocking) and Stage-2 (prose judge, advisory).
development
Gather charter, team, or decomposition-kickoff answers through a self-contained HTML intake form instead of a conversational interview, then drive the same writer the conversation would. Triggers on "intake form", "fill out a form", "charter form", "team form", "decompose form", "HTML form", "render an intake form", "form instead of questions". You are the driver: render the form with `claude-prove intake render`, hand the operator the file to fill and copy, read the pasted-back payload, validate it with `claude-prove intake validate`, and map the validated answers onto the existing writer (bootstrap for charter, `scrum team` for team, the decompose ladder for decompose). The form and the interview are two front-ends to ONE writer — never a second writer.