Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/khendzel-janitor-fix
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/janitor-fix
Tools it pre-approves 2
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Bash(bash:*)
What's inside
- Skill 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'.
- 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.
- Allowed tools
- Read,, Bash(bash:*)
- Instructions
- 86 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Agent Skills spec issues
- files: referenced but missing: scripts/fix.sh
Files (1)
- SKILL.md
SKILL.md (first lines)
# Auto-Fix
Automatically fix common skill issues. Dry-run by default — shows what would change without modifying files.
## Overview
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).
## Prerequisites
- Claude Code with the skills-janitor plugin installed (provides `scripts/fix.sh`)
- bash 3.2+ (the stock macOS bash works; no external dependencies)
- Write access to the user's own skill directories (`~/.claude/skills`, `./.claude/skills`, `~/.agents/skills`)
## Instructions
### Step 1: Preview first (always)
```bash
bash ~/.claude/skills/skills-janitor/scripts/fix.sh # preview fixes
bash ~/.claude/skills/skills-janitor/scripts/fix.sh --prune # preview broken/orphaned removals
```
### Step 2: Show the user the preview and confirm
Never jump straight to `--apply`. Present the `[DRY RUN]` lines and ask before writing.
### Step 3: Apply
```bash
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:
- Adds missing frontmatter delimiters (`---`)
- Fills empty `description` fields with a template
- Adds missing `version` field (defaults to "1.0.0")
- Generates template descriptions using the skill folder name
Prune mode finds and removes:
- **Broken symlinks** — skill folder points to deleted source
- **Empty directories** — skill folder with no SKILL.md
- **Orphaned skills** — user-scope copies of plugin skills
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.
## Output
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."
## Error Handling
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.
## Examples
### Example 1: Safe fix cycle
**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.
### Example 2: Cleanup of broken leftovers
**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.
## Resources
- Fix script (plugin-relative): `{baseDir}/../../scripts/fix.sh`
- Change log of applied fixes: `data/changelog.log` in the plugin directory
- For finding issues: `/janitor-report`
- For usage + token cost: `/janitor-value`From khendzel/skills-janitor, MIT.
More from khendzel/skills-janitor
- 0.775score
janitor-discover
khendzel
Find new skills on GitHub or check a specific skill before installing.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-report
khendzel
Full health check of all your skills in one report.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-security
khendzel
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and…
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-swipe
khendzel
Tinder for your Claude Code skills.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-value
khendzel
Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste.
SkillAFreshness: A★ 122Claude Code +9
Signals
- Stars
- 122
- Forks
- 18
- Open issues
- 1
- Last commit (this folder)
- Jul 11, 2026 (3 months ago)
- Last release
- Sep 30, 2026 (29 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/khendzel/skills-janitor
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from khendzel
- 0.775score
janitor-discover
khendzel
Find new skills on GitHub or check a specific skill before installing.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-report
khendzel
Full health check of all your skills in one report.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-security
khendzel
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and…
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-swipe
khendzel
Tinder for your Claude Code skills.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
janitor-value
khendzel
Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste.
SkillAFreshness: A★ 122Claude Code +9
Cite this page
janitor-fix skill. Agent Mart. https://agentmart.dev/skills/khendzel-janitor-fix (last updated 2026-10-24)