본문으로 건너뛰기
cccskills
무료GitHub에 공개

janitor-security

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Find new skills on GitHub or check a specific skill before installing. Use when the user wants to search for skills, evaluate a skill URL, check overlap and security risk before installing, or compare a local skill against alternatives. Trigger with '/janitor-discover'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

khendzel/skills-janitor1222026년 9월 30일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

khendzel/skills-janitor1222026년 9월 30일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

khendzel/skills-janitor1222026년 9월 30일 업데이트

Tinder for your Claude Code skills. Reviews a sorted deck of every installed skill and lets you swipe keep / delete / skip on each one. Use when the user wants to bulk-clean their skill collection, triage unused skills, or do interactive skill cleanup. Trigger with '/janitor-swipe'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

khendzel/skills-janitor1222026년 9월 30일 업데이트

Show whether each skill is earning its context-window cost — combined tokens-used view sorted by waste. Use when the user asks 'are my skills worth it', 'what's my context budget', 'which skills are dead weight', or wants to audit skill value, token cost, or usage. Trigger with '/janitor-value'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

khendzel/skills-janitor1222026년 9월 30일 업데이트

khendzel의 스킬 모두 보기

이 스킬의 문제 신고