Skills-janitor janitor-fix
Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty directories, and orphaned skills.
install
source · Clone the upstream repo
git clone https://github.com/khendzel/skills-janitor
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/khendzel/skills-janitor "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/janitor-fix" ~/.claude/skills/khendzel-skills-janitor-janitor-fix && rm -rf "$T"
manifest:
skills/janitor-fix/SKILL.mdsource content
Auto-Fix
Automatically fix common skill issues. Dry-run by default - shows what would change without modifying files.
How to Run
bash ~/.claude/skills/skills-janitor/scripts/fix.sh # preview fixes bash ~/.claude/skills/skills-janitor/scripts/fix.sh --apply # apply fixes bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune # find broken/orphaned skills bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune --apply # remove broken skills
What It Fixes
- Adds missing frontmatter delimiters (
)--- - Fills empty
fields with a templatedescription - Adds missing
field (defaults to "1.0.0")version - Generates template descriptions using the skill folder name
Prune Mode (--prune
)
--pruneFinds and removes broken skills:
- Broken symlinks - skill folder points to deleted source
- Empty directories - skill folder with no SKILL.md
- Orphaned skills - user-scope copies of plugin skills
Dry-run by default. Pass
--apply to actually remove them.
Safety
- Dry-run by default - must pass
to write changes--apply - Skips plugin/marketplace skills (changes get overwritten on update)
- Skips broken symlinks (unless
mode)--prune - Logs ALL changes with timestamps to
data/changelog.log - Always asks for confirmation before removing
Related Skills
- For finding issues:
/janitor-report - For usage analytics:
/janitor-usage - For token cost:
/janitor-tokens