janitor-discover
Find new skills on GitHub or check a specific skill before installing. Use when the user wants to search for skills, evaluate a…
Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty directories, and orphaned skills. Trigger with '/janitor-fix'.
$ npx -y skills add khendzel/skills-janitor --skill janitor-fix --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/janitor-fixContext preview
The summary Claude sees to decide when to auto-load this skill.
Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty directories, and orphaned skills. Trigger with '/janitor-fix'.
name: janitor-fix description: "Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty directories, and orphaned skills. Trigger with '/janitor-fix'." allowed-tools: Read, Bash(bash:*) argument-hint: "[--apply] [--prune]" 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). Modifies only user/project/codex-scope skill files, never plugin content. tags: - skills - auto-fix - cleanup - symlinks - maintenance
Automatically fix common skill issues. Dry-run by default — shows what would change without modifying files.
Repairs frontmatter problems (missing delimiters, empty descriptions, missing version fields) across user, project, and codex-scope skills, and — in `--prune` mode — removes broken symlinks and empty skill directories. Plugin/marketplace skills are never modified (changes would be overwritten on update).
bash ~/.claude/skills/skills-janitor/scripts/fix.sh # preview fixes bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune # preview broken/orphaned removals
Never jump straight to `--apply`. Present the `[DRY RUN]` lines and ask before writing.
bash ~/.claude/skills/skills-janitor/scripts/fix.sh --apply # apply fixes bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune --apply # remove broken skills
What it fixes:
Prune mode finds and removes:
Safety model: dry-run by default (must pass `--apply` to write), skips plugin/marketplace skills, logs ALL changes with timestamps to `data/changelog.log`, always asks for confirmation before removing.
Per-skill action lines (`[DRY RUN]` / `[FIXED]` / `[PRUNED]` / `[SKIP]`) followed by a summary of fixable issues, skipped items, and prunable entries. In dry-run mode the summary ends with "Run with --apply to make these changes."
1. **Error**: A fix produced an unexpected result in a SKILL.md **Solution**: Every applied change is logged in `data/changelog.log` with a timestamp — show the log entry and restore the affected field manually; template descriptions are meant to be replaced by the author.
2. **Error**: `[SKIP] Plugin/marketplace skill - don't modify` **Solution**: Expected behavior, not an error. Plugin content is fixed upstream — suggest the user report the issue to the plugin author instead.
3. **Error**: Prune lists a skill the user wants to keep **Solution**: Do not run `--apply`. A "broken symlink" that should be kept means its target moved — recreate the link (`ln -sfn <new-target> <link>`) instead of pruning.
**Input**: "Fix my skills."
**Output**: Run the dry-run, present the `[DRY RUN]` list ("3 fixable: 2 missing descriptions, 1 missing version"), ask for confirmation, then run `--apply` and report the `[FIXED]` lines.
**Input**: "Remove broken skills."
**Output**: Run `--prune` (dry-run), show what would be removed and why (broken symlink targets, empty dirs), confirm, then `--prune --apply` and report the `[PRUNED]` lines.
Tinder for your Claude Code skills. Swipe through your collection and delete what's wasting context, in seconds. Works with Claude Code and OpenAI Codex. 6 commands, zero dependencies. Status (v1.8, September 2026): maintenance mode.
Find new skills on GitHub or check a specific skill before installing. Use when the user wants to search for skills, evaluate a…
Full health check of all your skills in one report. Use when the user wants to check for errors, find duplicates, detect broken…
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access,…
Tinder for your Claude Code skills. Reviews a sorted deck of every installed skill and lets you swipe keep / delete / skip on…
Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste. Use when the user asks…