Skip to content
Skillv1.0.0

janitor-fix

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'.

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/community/skills-janitor/skills/janitor-fix/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill janitor-fix. Copyright stays with the author (MIT).

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 ~/.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 ~/.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

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-janitor-fix/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-janitor-fix.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-janitor-fix",
  "kind": "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'.",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "skills",
      "auto-fix",
      "cleanup",
      "symlinks",
      "maintenance",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "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'."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/community/skills-janitor/skills/janitor-fix/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/community/skills-janitor/skills/janitor-fix/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/community/skills-janitor/skills/janitor-fix/SKILL.md"
    },
    "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:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# Auto-Fix\n\nAutomatically fix common skill issues. Dry-run by default — shows what would change without modifying files.\n\n## Overview\n\nRepairs 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).\n\n## Prerequisites\n\n- Claude Code with the skills-janitor plugin installed (provides `scripts/fix.sh`)\n- bash 3.2+ (the stock macOS bash works; no external depe",
  "cost": {
    "context_tokens": 924
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-janitor-fix/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.