agentsclimarketplace

Skill manager

Skill potocibi/skills-manager/skills/skill-manager

Your Claude Code skills, deduplicated. Audits 100+ hoarded skills down to the few good ones - merges duplicates, routes tasks to the right skill, gates new installs. Plain English, never deletes, 2-command install.

Install
npx -y skills add potocibi/skills-manager --skill skill-manager

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Manage, audit, deduplicate, merge, route, and APPLY the user's installed Claude Code skills, agents, commands, and plugins. Use when the user says "audit my skills", "dedupe skills", "merge skills", "skill registry", "which skill handles X", "skill health", "skill intake", "propose a skill", "should this be a skill?", "turn this into a skill", or BEFORE creating any new skill or agent (gap-check first). Also use when the user asks in plain English to run/use/apply whatever skill or agent handles a task ("use the right skill for this", "run the reviewer on this file", "apply whatever handles X") — resolve it from the registry and invoke it, chaining multi-step asks. Also use when the user shares a GitHub repo or folder of skills to compare against or import from ("is this skill better than mine", "check this skills repo", "add skills from this repo"), and to restore archived skills or fix registry drift.

SKILL.md

5.6 KB, as published. Nobody here has run it

skill-manager

Meta-skill that keeps the installed skill/agent ecosystem small, deduplicated, and correctly routed. Deterministic work is done by stdlib-only Python scripts in scripts/; judgment (clustering, merging, scoring) is done by Claude using the scripts' JSON output.

Subcommands

SubcommandWhat it doesRead firstKey scripts
auditInventory everything, cluster by job, propose merge/archive/keepreferences/audit.mdinventory.py, refcheck.py, usage_report.py
mergeConsolidate one approved cluster into one skillreferences/merge.mdarchive.py
registryGenerate/verify registry, inject routing into CLAUDE.mdreferences/registry.mdregistry.py
healthDrift check, never-used flags, description bloatreferences/health.mdregistry.py --verify, usage_report.py, intake_scan.py
intakeJudge newly installed items vs registry: accept/replace/rejectreferences/intake.mdintake_scan.py
compareAnalyze an external GitHub repo of skills: better than mine? missing? viable/safe to add?references/repo-compare.mdrepo_scan.py
applyPlain-English invocation: resolve the right skill/agent/command from the registry and run it (chaining multi-step asks)references/apply.md
newGap-check before creating a skill; delegate to skill-creatorreferences/gap-check.mdinventory.py
proposeProactively suggest a new skill from recurring uncovered work (reuses CL-v2 instincts, registry-gated)references/propose.mdpropose_scan.py
restoreUn-archive an item via the manifestarchive.py --restore

If the user's request doesn't name a subcommand, infer it: "too many skills" → audit; "just installed X" → intake; "I need a skill that does Y" → new.

Ground rules (always apply)

  1. Never delete — archive only. All removals go through archive.py, which writes an undo manifest. Archives are kept indefinitely.
  2. Never touch plugin files. Plugins are inventoried and may be recommended for disabling (claude plugin disable / config edit by the user) — nothing more.
  3. Never archive a referenced item. refcheck.py output blocks archiving; review its match contexts (short names false-positive) and fix real references first.
  4. Every merge/archive/replace requires explicit user approval, presented per cluster or per item — never batch-approve silently.
  5. Delegate, don't duplicate: quality verdicts → /skill-stocktake (reuse its results.json if under 30 days old); new-skill authoring → skill-creator; instinct promotion → evolve/prune (out of scope).
  6. After any state change (merge, archive, restore, intake accept), update registry.json and refresh the snapshot: python scripts/intake_scan.py --update-snapshot.
  7. External skills are untrusted code. Clone repos only into the session scratchpad, never execute their scripts during analysis, read every flagged executable file before recommending install, and never register third-party hooks into settings.json automatically.

Running scripts

All scripts live in ~/.claude/skills/skill-manager/scripts/ and are stdlib-only Python 3. Run with absolute paths; use a scratch directory for the JSON outputs:

python "%USERPROFILE%\.claude\skills\skill-manager\scripts\inventory.py" --out inventory.json
python "%USERPROFILE%\.claude\skills\skill-manager\scripts\refcheck.py" --inventory inventory.json --out refcheck.json
python "%USERPROFILE%\.claude\skills\skill-manager\scripts\usage_report.py" --inventory inventory.json --out usage.json
python "%USERPROFILE%\.claude\skills\skill-manager\scripts\intake_scan.py"            # diff vs snapshot
python "%USERPROFILE%\.claude\skills\skill-manager\scripts\registry.py" --verify --inventory inventory.json
python "%USERPROFILE%\.claude\skills\skill-manager\scripts\archive.py" --list

Data files

FilePurpose
~/.claude/skills/skill-manager/registry.jsonCategory-keyed source of truth: canonical item per job
~/.claude/skills/skill-manager/inventory_snapshot.jsonBaseline for new-install detection
~/.claude/skills-archived/ + manifest.jsonArchived items + undo manifest
~/.claude/observations.jsonlUsage log (written by hooks/log_skill_usage.py; also read by skill-stocktake)
CLAUDE.md between <!-- skill-manager:routing --> markersThe always-loaded routing table (≤50 lines)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.