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…
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and payload-smuggling patterns. Use when the user asks 'are my skills safe', wants to scan skills for prompt injection or malware
$ npx -y skills add khendzel/skills-janitor --skill janitor-security --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/janitor-securityContext preview
The summary Claude sees to decide when to auto-load this skill.
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and payload-smuggling patterns. Use when the user asks 'are my skills safe', wants to scan skills for prompt injection or malware
name: janitor-security description: "Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and payload-smuggling patterns. Use when the user asks 'are my skills safe', wants to scan skills for prompt injection or malware patterns, or before trusting a newly installed skill. Trigger with '/janitor-security'." allowed-tools: Read, Bash(bash:*) argument-hint: "[--path <dir>] [--json]" version: 1.6.0 author: Krzysztof Hendzel <krzysztoff.hendzel@gmail.com> license: MIT compatibility: Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local skill files only; no network access. tags: - skills - security - prompt-injection - audit - maintenance
Heuristic scan of skill content for prompt-injection and malicious patterns.
A skill is text your agent trusts: its SKILL.md is read as instructions and its scripts run on your machine. Public research (Snyk's ToxicSkills, 2026) found prompt injection in roughly a third of tested community skills. This scan flags the known bad shapes across every installed skill, in every scope (user, project, codex, plugin):
Findings are heuristics, not proof: a RISK verdict means "read this before trusting it". Legit tools trip these rules too (e.g. an installer that pipes curl into bash) — the point is that YOU see it and decide.
bash ~/.claude/skills/skills-janitor/scripts/security.sh # all installed skills bash ~/.claude/skills/skills-janitor/scripts/security.sh --json # machine-readable bash ~/.claude/skills/skills-janitor/scripts/security.sh --path ~/some/skill-dir # one directory
Per-skill verdict: **RISK** (any HIGH finding), **REVIEW** (any MEDIUM), **PASS**. For each flagged skill show the finding titles, the file, and the evidence snippet. Do NOT call a finding "malware" — describe what the pattern does and let the user judge intent (e.g. "media-use pipes a HeyGen installer from the network into bash — a common install pattern, but verify the URL before trusting it").
Summary line (`Scanned: N | RISK: x | REVIEW: y | PASS: z`) followed by flagged skills, each with severity-tagged findings, the file, and an evidence snippet. `--json` emits the full structured report.
1. **Error**: `security.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.
2. **Error**: Everything shows PASS but the user expected a finding **Solution**: The scan covers markdown and script files up to 1MB, 200 files per skill; binaries and huge files are skipped. Check the specific file manually.
3. **Error**: A trusted skill shows RISK **Solution**: Expected for tools that legitimately use flagged patterns (installers, credential helpers). Read the evidence line — if it matches the tool's documented purpose, note it and move on. Verdicts are advisory; nothing is deleted.
**Input**: "Are my skills safe? Check for prompt injection."
**Output**: Run the scan, lead with the summary ("178 scanned, 2 RISK, 0 REVIEW"), then explain each flagged skill in plain language with its evidence, and close with a recommendation per skill.
**Input**: "Scan ~/Downloads/cool-skill before I install it."
**Output**: Run with `--path ~/Downloads/cool-skill` and present the verdict; suggest `/janitor-discover` for the overlap check too.
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…
Automatically fix skill problems (safe preview first). Also use with --prune to find and remove broken symlinks, empty…
Full health check of all your skills in one report. Use when the user wants to check for errors, find duplicates, detect broken…
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…