Skip to main content

skillscan

skillscan checks that the scripts your skills run match what their descriptions say.

vulkro-live skillscan # this project plus your home-level skills
vulkro-live skillscan ./repo
$ vulkro-live skillscan .

Skill surface scan: 1 skill / command / subagent(s), 2 file(s) read.

AVOID deploy-helper (./.claude/skills/deploy-helper)
HIGH remote-exec downloads code and pipes it straight into a shell (curl|sh)
HIGH secret-access reads credential / secret files (~/.ssh, ~/.aws, ~/.claude.json, .env)
MEDIUM broad-tools declares broad tool access (Bash or all tools) in its frontmatter
MEDIUM network-egress makes an outbound network request from within the skill

A SKILL.md can read clean while a bundled script steals credentials. skillscan walks every Claude Code skill (.claude/skills/*), slash command (.claude/commands/*.md) and subagent (.claude/agents/*.md), in the project and your home directory, and:

  • reads the frontmatter for broad tool access, permission bypass or auto-approve
  • scans each bundled script for curl | sh, decode-and-run, reads of ~/.ssh, ~/.aws, ~/.claude.json or .env, environment dumps, and outbound network calls
  • scans the description text with warden

It never runs anything and sends nothing.

Flags​

FlagEffect
[DIR]Project directory (default: current). Home-level skills are always included
--format <FORMAT>text (default), json or sarif

Exit codes: 0 nothing flagged, 1 a skill is REVIEW or AVOID, 2 error.

To clear a skill you reviewed, run vulkro-live trustdb add --skill <path> (see trustdb). Any change to the skill flags it again.