| name | janitor-report |
| description | Full health check of all your skills in one report. Use when the user wants to check for errors, find duplicates, detect broken skills, or get a complete overview of skill health. Pass --brief for inventory only. Trigger with '/janitor-report'. |
| allowed-tools | Read, Bash(bash:*) |
| argument-hint | [--brief] |
| version | 1.5.1 |
| author | Krzysztof Hendzel <krzysztoff.hendzel@gmail.com> |
| license | MIT |
| compatibility | Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local Claude Code data only (~/.claude/skills, ~/.claude/agents, installed plugin metadata). |
| tags | ["skills","health-check","duplicates","maintenance","inventory"] |
Health Report
Generate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings.
Overview
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)
Prerequisites
- Claude Code with the skills-janitor plugin installed (provides
scripts/scan.sh, lint.sh, detect_dupes.sh)
- bash 3.2+ (the stock macOS bash works; no external dependencies)
- Read access to
~/.claude/skills, ~/.claude/agents, and installed plugin metadata
- No authentication or API keys required — the scripts read local files only
Instructions
Step 1: Run the scripts
Full 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
Step 2: What each script covers
- Inventory (scan.sh) — all skills across scopes, symlink status, frontmatter fields, line counts;
agents and plugins (with update_available) arrays; broken_symlinks count.
- 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) and description overlap (Jaccard similarity >30%), with cross-scope user-vs-plugin pairs explicitly surfaced (e.g. (user) ↔ (plugin)).