Codebase Health Dashboard
garrytan/gstack
Runs a project's own type checker, linter, test runner, dead-code detector and shell linter, combines them into a weighted 0-10 score and tracks the trend.
Full health check of all your skills in one report. An agent skill from khendzel/skills-janitor.
$ npx skills add khendzel/skills-janitor --skill janitor-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install khendzel/skills-janitor janitor-report --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/janitor-report .claude/skills/janitor-report && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .claude/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-reportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add khendzel/skills-janitor --skill janitor-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install khendzel/skills-janitor janitor-report --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/janitor-report .agents/skills/janitor-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .agents/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add khendzel/skills-janitor --skill janitor-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install khendzel/skills-janitor janitor-report --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/janitor-report .cursor/skills/janitor-report && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .cursor/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/khendzel/skills-janitor.git --path skills/janitor-report--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add khendzel/skills-janitor --skill janitor-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install khendzel/skills-janitor janitor-report --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/janitor-report .gemini/skills/janitor-report && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .gemini/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install khendzel/skills-janitor janitor-reportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add khendzel/skills-janitor --skill janitor-report -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/janitor-report .github/skills/janitor-report && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .github/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add khendzel/skills-janitor --skill janitor-report -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install khendzel/skills-janitor janitor-report --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/khendzel/skills-janitor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/janitor-report .opencode/skills/janitor-report && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "janitor-report" agent skill from https://github.com/khendzel/skills-janitor/tree/main/skills/janitor-report into .opencode/skills/janitor-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "janitor-report", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
janitor-reportFull health check of all your skills in one report. An agent skill from khendzel/skills-janitor.
Janitor Report is an agent skill from khendzel/skills-janitor. 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'.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local Claude Code data only (~/.claude/skills, ~/.claude/agents, installed plugin…
The repository describes itself as: Tinder for your Claude Code skills, subagents and MCP servers. Swipe away what wastes context, scan for prompt injection, get honest token costs. Fixes what it finds and actually… The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4b42f39. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBash(bash:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local Claude Code data only (~/.claude/skills, ~/.claude/agents, installed plugin metadata).
From compatibility in the SKILL.md frontmatter.
Janitor Report loads about 1.4k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 504 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from khendzel/skills-janitor at commit 4b42f39, republished under its MIT licence (© khendzel). 504 words, ~1,426 tokens.
.claude/skills/janitor-report/SKILL.md (or your agent's skills folder).Generate a comprehensive health report combining inventory, quality checks, duplicate detection, and broken skill findings.
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)scripts/scan.sh, lint.sh, detect_dupes.sh)~/.claude/skills, ~/.claude/agents, and installed plugin metadataFull 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.shBrief mode (inventory only):
bash ~/.claude/skills/skills-janitor/scripts/scan.shagents and plugins (with update_available) arrays; broken_symlinks count.marketing-seo-audit (user) ↔ marketing-skills:seo-audit (plugin)).Merge the three outputs into one table with severity levels, then recommend actions.
| 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:
/janitor-fix --prune/janitor-fixupdate_available: true) → /plugin update <name>/janitor-value/janitor-securityscripts/mcp.sh for the inventory) → remove the config entry or /janitor-swipeError: 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.
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.
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.
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."
Input: "/janitor-report --brief"
Output: Run scan.sh only and present the inventory grouped by scope with per-scope counts.
{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© khendzel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/janitor-report of khendzel/skills-janitor.
Open the folder on GitHubat commit 4b42f39
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in khendzel/skills-janitor, which our catalogue first saw on October 7, 2026.
Janitor Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Janitor Report this skillkhendzel/skills-janitor | 123 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Codebase Health Dashboardgarrytan/gstack | 136k | — | ~11k | Automated safety check: Notes | MIT | |
| Healthagenticnotetaking/arscontexta | 3.5k | — | ~7.1k | Automated safety check: Notes | MIT | |
| Health Wellnesssickn33/agentic-awesome-skills | 47k | 1 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Cost Healthruvnet/ruflo | 74k | 1 repos | ~901 | Automated safety check: Notes | MIT | |
| OmniRoute Health CLIdiegosouzapw/OmniRoute | 74k | 1 repos | ~327 | Automated safety check: Pass | MIT |
garrytan/gstack
Runs a project's own type checker, linter, test runner, dead-code detector and shell linter, combines them into a weighted 0-10 score and tracks the trend.
agenticnotetaking/arscontexta
Run condition-based vault health diagnostics. An agent skill from agenticnotetaking/arscontexta.
sickn33/agentic-awesome-skills
Wellbeing check-in register: anonymous flag, department, check-in date, wellbeing score, stress and energy levels, support and resource flags, confidentiality and status.
ruvnet/ruflo
Composite CI gate — runs cost-budget-check + cost-burn + cost-anomaly + cost-projection in parallel and surfaces a single combined health status with max exit code.
diegosouzapw/OmniRoute
Checks OmniRoute server health, per-component status, and circuit breakers from the command line, with a live watch dashboard.
sickn33/agentic-awesome-skills
Sexual Health Analyzer
khendzel/skills-janitor
Tinder for your Claude Code skills. An agent skill from khendzel/skills-janitor.
khendzel/skills-janitor
Automatically fix skill problems (safe preview first). An agent skill from khendzel/skills-janitor.
khendzel/skills-janitor
Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste.
khendzel/skills-janitor
Find new skills on GitHub or check a specific skill before installing.
Full health check of all your skills in one report. An agent skill from khendzel/skills-janitor. Janitor Report is an agent skill from khendzel/skills-janitor. Full health check of all your skills in one report.
Janitor Report fits situations like: the user wants to check for errors; find duplicates; detect broken skills; get a complete overview of skill health.
Run `npx skills add khendzel/skills-janitor --skill janitor-report -a claude-code`. Or copy the skill folder (skills/janitor-report in khendzel/skills-janitor) into .claude/skills/janitor-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add khendzel/skills-janitor --skill janitor-report -a codex`. Or copy the skill folder (skills/janitor-report in khendzel/skills-janitor) into .agents/skills/janitor-report in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add khendzel/skills-janitor --skill janitor-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/janitor-report, .gemini/skills/janitor-report, .github/skills/janitor-report and .opencode/skills/janitor-report in your project.
Going by SKILL.md and its folder, Janitor Report needs the command-line tools its instructions call (bash). Its frontmatter pre-approves these tools: Read, Bash(bash:*). Compatibility (from SKILL.md): Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local Claude Code data only (~/.claude/skills, ~/.claude/agents, installed plugin metadata)..
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Janitor Report is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Janitor Report: Codebase Health Dashboard (garrytan/gstack, 136k stars), Health (agenticnotetaking/arscontexta, 3.5k stars), Health Wellness (sickn33/agentic-awesome-skills, 47k stars) and Cost Health (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
khendzel (a GitHub user) maintains it in khendzel/skills-janitor, which has 123 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 30, 2026.
Source: khendzel/skills-janitor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.