From skills-janitor
Scans and reports health of all Claude Code skills across scopes, detecting duplicates, broken symlinks, missing frontmatter, and stale plugins. Use for skill inventory and maintenance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills-janitor:janitor-report [--brief][--brief]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings.
Generate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings.
One report covering every place a skill lives: user, project, codex, plugin, and source scopes. Plugin skills appear with their full invocation name (e.g. marketing-skills:image, figma:figma-use) — these were invisible to the v1.2 report. The scan JSON also includes an agents array (subagents from ~/.claude/agents — their descriptions are always-loaded too) and per-plugin update_available (installed commit vs marketplace HEAD) — surface stale plugins and heavy agents in the report.
Modes:
/janitor-report (default) — full health check: inventory + lint + duplicates + broken/janitor-report --brief — inventory only (replaces the old /janitor-audit)scripts/scan.sh, lint.sh, detect_dupes.sh)~/.claude/skills, ~/.claude/agents, and installed plugin metadataFull report:
bash ~/.claude/skills/skills-janitor/scripts/scan.sh
bash ~/.claude/skills/skills-janitor/scripts/lint.sh
bash ~/.claude/skills/skills-janitor/scripts/detect_dupes.sh
Brief mode (inventory only):
bash ~/.claude/skills/skills-janitor/scripts/scan.sh
agents and plugins (with update_available) arrays; broken_symlinks count.marketing-seo-audit (user) ↔ marketing-skills:seo-audit (plugin)).Merge the three outputs into one table with severity levels, then recommend actions.
| Skill | Scope | Status | Issues |
|----------------------------------|----------|-------------|------------------------------------------|
| marketing-copywriting | user | DUPLICATE? | 90% overlap with marketing-skills:copywriting |
| seo-audit | user | WARNING | Description too short |
| old-deploy-helper | user | CRITICAL | Broken symlink |
| figma:figma-use | plugin | OK | - |
Recommended actions per issue type:
/janitor-fix --prune/janitor-fixupdate_available: true) → /plugin update <name>/janitor-value/janitor-securityError: scan.sh: No such file or directory
Solution: The plugin is installed under a different root. Locate it with ls ~/.claude/skills or check the plugin cache, then run the scripts from their actual location.
Error: Scan output is not valid JSON
Solution: Re-run with stderr visible (drop any 2>/dev/null) and report the failing line; a skill directory with unusual characters is the usual cause.
Error: plugins array is empty despite installed plugins
Solution: ~/.claude/plugins/installed_plugins.json is missing or in an unknown format — report which Claude Code version is in use.
Input: "Check my skills for problems."
Output: Run all three scripts, merge into the severity table, and lead with counts: "175 skills scanned: 2 critical (broken symlinks), 5 warnings, 3 likely duplicates, 2 plugins have updates available."
Input: "/janitor-report --brief"
Output: Run scan.sh only and present the inventory grouped by scope with per-scope counts.
{baseDir}/../../scripts/scan.sh, lint.sh, detect_dupes.sh/janitor-fix — auto-fix the issues this report finds/janitor-value — token cost + usage (combined)/janitor-discover — find or evaluate new skillsnpx claudepluginhub khendzel/skills-janitor --plugin skills-janitorAudits Claude skills and commands for quality with quick scans of changed files or full stocktakes using subagents, checklists, and AI verdicts. Invoke via /skill-stocktake.
Internal development tool that performs a comprehensive quality audit of all marketing skills and agents. Reviews description overlap, format consistency, feature adoption, and structural patterns. Use when the user says "audit skills", "skill quality review", "check skill health", "are my skills consistent", "monthly skill review", or before releasing a new version of the skills repo.
Audits Claude Code skills against project state and usage, detects redundancies, consolidates/merges/archives safely with backups, confirmations, and rollbacks.