Skip to content
OpenSmartRoute
Skillv1.0.0

janitor-report

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 inv

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-report/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill janitor-report. Copyright stays with the author (MIT).

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. marketing-seo-audit (user) ↔ marketing-skills:seo-audit (plugin)).

Step 3: Present a unified report

Merge the three outputs into one table with severity levels, then recommend actions.

Output

| Skill                            | Scope    | Status      | Issues                                   |
|----------------------------------|----------|-------------|------------------------------------------|
| marketing-copywriting            | user     | DUPLICATE?  | 90% overlap with marketing-skills:copywriting |
| seo-audit                        | user     | WARNING     | Description too short                    |
| old-deploy-helper                | user     | CRITICAL    | Broken symlink                           |
| figma:figma-use                  | plugin   | OK          | -                                        |

Recommended actions per issue type:

  • Broken symlinks → /janitor-fix --prune
  • Quality issues → /janitor-fix
  • User-vs-plugin duplicates → uninstall the user-scope copy and rely on the plugin (or vice versa)
  • Stale plugins (update_available: true) → /plugin update <name>
  • Token waste → /janitor-value

Error Handling

  1. Error: scan.sh: No such file or directory Solution: The plugin is installed under a different root. Locate it with ls ~/.claude/skills or check the plugin cache, then run the scripts from their actual location.

  2. Error: Scan output is not valid JSON Solution: Re-run with stderr visible (drop any 2>/dev/null) and report the failing line; a skill directory with unusual characters is the usual cause.

  3. Error: plugins array is empty despite installed plugins Solution: ~/.claude/plugins/installed_plugins.json is missing or in an unknown format — report which Claude Code version is in use.

Examples

Example 1: Full health check

Input: "Check my skills for problems."

Output: Run all three scripts, merge into the severity table, and lead with counts: "175 skills scanned: 2 critical (broken symlinks), 5 warnings, 3 likely duplicates, 2 plugins have updates available."

Example 2: Inventory only

Input: "/janitor-report --brief"

Output: Run scan.sh only and present the inventory grouped by scope with per-scope counts.

Resources

  • Scripts (plugin-relative): {baseDir}/../../scripts/scan.sh, lint.sh, detect_dupes.sh
  • /janitor-fix — auto-fix the issues this report finds
  • /janitor-value — token cost + usage (combined)
  • /janitor-discover — find or evaluate new skills

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-report/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-report.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-janitor-report",
  "kind": "skill",
  "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'.",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "skills",
      "health-check",
      "duplicates",
      "maintenance",
      "inventory",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "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'."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/community/skills-janitor/skills/janitor-report/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/community/skills-janitor/skills/janitor-report/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/community/skills-janitor/skills/janitor-report/SKILL.md"
    },
    "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).",
    "allowed_tools": [
      "Read,",
      "Bash(bash:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# Health Report\n\nGenerate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings.\n\n## Overview\n\nOne 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) — su",
  "cost": {
    "context_tokens": 1203
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-janitor-report/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.