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.jsonor.env, environment dumps, and outbound network calls - scans the description text with
warden
It never runs anything and sends nothing.
Flags
| Flag | Effect |
|---|---|
[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.