janitor-security
Heuristic security scan of installed skills — prompt-injection phrases, hidden unicode instructions, credential-store access, network-pipe-to-shell and…
Skill by khendzel
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-security
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
Use cases: security, agent-building
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-security
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-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'.
- License
- MIT
- Compatibility
- Designed for Claude Code. Requires bash 3.2+ (macOS default works). Reads local skill files only; no network access.
- Allowed tools
- Read,, Bash(bash:*)
- Instructions
- 77 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
- Instructions call the network
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Agent Skills spec issues
- files: referenced but missing: scripts/security.sh
Files (1)
- SKILL.md
SKILL.md (first lines)
# Security Scan
Heuristic scan of skill content for prompt-injection and malicious patterns.
## Overview
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):
- **Injection phrases** — "ignore all previous instructions", "do not tell the user"
- **Hidden instructions** — imperative text in HTML comments (invisible when rendered), zero-width/bidi unicode between plain characters
- **Payload smuggling** — large decodable base64 blobs in markdown
- **Dangerous scripts** — network piped into a shell (`curl … | bash`), decode-and-execute, credential-store access (`~/.ssh`, `~/.aws`, keychain), URL shorteners, plain-HTTP calls, uploads of variable data
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.
## Prerequisites
- Claude Code with the skills-janitor plugin installed (provides `scripts/security.sh`)
- bash 3.2+ (the stock macOS bash works; no external dependencies, no network access)
## Instructions
### Step 1: Run the scan
```bash
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
```
### Step 2: Present verdicts honestly
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").
### Step 3: Recommend next steps
- RISK on a skill the user doesn't recognize or need → `/janitor-swipe` or delete it outright
- RISK on a known/trusted tool → read the flagged file once, then move on
- Before installing something new → `/janitor-discover <url>` runs this same scan pre-install
## Output
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.
## Error Handling
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.
## Examples
### Example 1: Full audit
**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.
### Example 2: One suspicious folder
**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.
## Resources
- Scan engine (plugin-relative): `{baseDir}/../../scripts/security.sh`
- `/janitor-discover <url>` — pre-install check (overlap + this security scan on the fetched SKILL.md)
- `/janitor-report` — general health check (errors, duplicates, broken skills)
- `/janitor-swipe` — delete what you don't trustFrom 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-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 - 0.771score
janitor-fix
khendzel
Automatically fix skill problems (safe preview first).
SkillAFreshness: A★ 122Claude Code +9
Signals
- Stars
- 122
- Forks
- 18
- Open issues
- 1
- Last commit (this folder)
- Jul 15, 2026 (3 months ago)
- Last release
- Sep 30, 2026 (28 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-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 - 0.771score
janitor-fix
khendzel
Automatically fix skill problems (safe preview first).
SkillAFreshness: A★ 122Claude Code +9
Cite this page
janitor-security skill. Agent Mart. https://agentmart.dev/skills/khendzel-janitor-security (last updated 2026-10-24)