janitor-report
The janitor-report skill performs a comprehensive health audit of all Claude skills across user, project, plugin, and codex scopes, detecting broken symlinks, quality issues, duplicates, and missing metadata. Use it when you need a complete inventory, want to identify errors in skill definitions, find conflicting or overlapping skills, or get actionable remediation steps.
git clone --depth 1 https://github.com/khendzel/skills-janitor /tmp/janitor-report && cp -r /tmp/janitor-report/skills/janitor-report ~/.claude/skills/janitor-reportSKILL.md
# Health Report Generate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings. As of v1.3, the report covers plugin-namespaced skills (e.g. `marketing-skills:image`, `figma:figma-use`) in addition to user and project scope — these were invisible to the v1.2 report. ## Modes - **`/janitor-report`** (default) — full health check: inventory + lint + duplicates + broken - **`/janitor-report --brief`** — inventory only (replaces the old `/janitor-audit`) ## How to Run Full report: ```bash 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 bash ~/.claude/skills/skills-janitor/scripts/scan.sh ``` ## What the Full Report Covers ### Inventory (scan.sh) - All skills across user, project, codex, plugin, and source scopes - Plugin skills appear with their full invocation name (`<plugin>:<skill>`) - Symlink status, frontmatter fields, line counts ### Quality Checks (lint.sh) - **Critical**: Broken symlinks, missing SKILL.md, missing frontmatter - **Warning**: Missing/empty name or description, description too short/long, missing version - **Info**: No body content, no Gotchas section, large files ### Duplicate Detection (detect_dupes.sh) - **Name collisions** — two distinct skills with the same qualified name at different paths - **Description overlap** — Jaccard similarity >30%, with cross-scope user-vs-plugin pairs explicitly surfaced (e.g. `marketing-seo-audit` (user) ↔ `marketing-skills:seo-audit` (plugin)) ## Report Format Present a unified report with severity levels: ``` | 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 For each issue found, suggest: - Broken symlinks → `/janitor-fix --prune` - Quality issues → `/janitor-fix` - User-vs-plugin duplicates → uninstall the user-scope copy and rely on the plugin (or vice versa) - Token waste → `/janitor-value` ## Related Skills - `/janitor-report --brief` — inventory only - `/janitor-fix` — auto-fix issues - `/janitor-value` — token cost + usage (combined) - `/janitor-discover` — find or evaluate new skills
Show all your installed skills. Deprecated alias — use /janitor-report --brief.
Find new skills on GitHub or check a specific skill before installing. Use when the user wants to search for skills, evaluate a skill URL, check overlap with existing skills before installing, or compare a local skill against alternatives.
Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty directories, and orphaned skills.
Check if a new skill overlaps with existing ones before installing. Deprecated alias — use /janitor-discover with a URL or path.
Search GitHub for new skills to install. Deprecated alias — use /janitor-discover (combines search + pre-install check).
Show how many context window tokens each skill consumes. Deprecated alias — use /janitor-value (which combines tokens with usage).
Show which skills you use. Deprecated alias — use /janitor-value (which now combines usage + token cost).
Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste. Use when the user asks 'are my skills worth it', 'what's my context budget', 'which skills are dead weight', or anything about skill value, token cost, or usage.