mcpField
S
skill-vetter

skill-vetter

github.com/dtyqSecurity5.1k79 installsUpdated 6d ago
Repository

About skill-vetter

Skill Vetter is a security-focused protocol for reviewing AI agent skills before installation or execution. It guides source checks, inspection of all files in a temporary install, code review, permission assessment, and risk classification.

Key features

  1. 01Check a skill's source and author
  2. 02Preview installation in a temporary directory
  3. 03Review all skill files
  4. 04Assess permissions and access scope
  5. 05Classify risk and escalate decisions

Use cases

  1. 01Evaluate a skill before installing it
  2. 02Inspect skills from a marketplace or repository
  3. 03Decide whether a skill needs human approval

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dtyq/magic --skill skill-vetter

After installing, type/skill-vetterin Claude Code to confirm it loaded.

Details

From the project README

Skill Vetter

Security-first vetting protocol for AI agent skills. Never install a skill without vetting it first.

When to Use

  • Before installing any skill from the platform skill market
  • Before installing external skills from skillhub
  • Before running skills from GitHub repositories
  • When evaluating skills shared by other agents
  • Anytime you are asked to install unknown code

Vetting Protocol

Step 1: Source Check

Questions to answer:

  • Where did this skill come from? (platform market / skillhub / GitHub / other)
  • Is the author known or reputable?
  • How many downloads or stars does it have?
  • When was it last updated?
  • Are there reviews from other agents?
Step 2: Preview Install to Temp Dir, Then Read All Files

Do not install to the real skills directory yet. Install to a temp directory first for inspection.

Choose the preview method based on the source:

skillhub source (supports --dir for temp directory):

skillhub --dir /tmp/skillhub-preview/ install <slug>

After install, use shell_exec to list and read all files:

# List all files
shell_exec(command="find /tmp/skillhub-preview/<skill-name> -type f | sort")

# Read each file
shell_exec(command="cat /tmp/skillhub-preview/<skill-name>/SKILL.md")
shell_exec(command="cat /tmp/skillhub-preview/<skill-name>/scripts/<file>.py")
# ... read all scripts, configs, and reference files

If approved, run the normal install without --dir. Either way, clean up the temp dir:

shell_exec(command="rm -rf /tmp/skillhub-preview/")

Platform market / my skill library source (also supports --dir for temp directory):

shell_exec(command="skillhub install-platform-me <code> --dir /tmp/skillhub-preview/")
# or
shell_exec(command="skillhub install-platform-market <code> --dir /tmp/skillhub-preview/")

After install, use shell_exec to list and read all files:

# List all files
shell_exec(command="find /tmp/skillhub-preview/<skill-name> -type f | sort")

# Read each file
shell_exec(command="cat /tmp/skillhub-preview/<skill-name>/SKILL.md")
shell_exec(command="cat /tmp/skillhub-preview/<skill-name>/scripts/<file>.py")
# ... read all files

If approved, run the normal install without --dir. Either way, clean up the temp dir:

shell_exec(command="rm -rf /tmp/skillhub-preview/")
Step 3: Code Review (MANDATORY)

Read ALL files in the skill. Reject immediately if any of the following are present:

REJECT IMMEDIATELY IF YOU SEE:
─────────────────────────────────────────
- curl/wget to unknown URLs
- Sends data to external servers
- Requests credentials, tokens, or API keys
- Reads ~/.ssh, ~/.aws, ~/.config without clear reason
- Accesses MEMORY.md, USER.md, SOUL.md, IDENTITY.md
- Uses base64 decode on anything
- Uses eval() or exec() with external input
- Modifies system files outside the workspace
- Installs packages without listing them explicitly
- Network calls to raw IP addresses instead of domains
- Obfuscated code (compressed, encoded, or minified)
- Requests elevated or sudo permissions
- Accesses browser cookies or sessions
- Touches credential files
─────────────────────────────────────────
Step 4: Permission Scope

Evaluate:

  • What files does it need to read?
  • What files does it need to write?
  • What commands does it run?
  • Does it need network access? To where?
  • Is the scope minimal for its stated purpose?
Step 5: Risk Classification
Risk LevelExamplesAction
LOWNotes, weather, formattingBasic review, install OK
MEDIUMFile ops, browser, external APIsFull code review required
HIGHCredentials, trading, system commandsHuman approval required
EXTREMESecurity configs, root accessDo NOT install

Output Format

After vetting, produce this report:

SKILL VETTING REPORT
=======================================
Skill: [name]
Source: [platform market / skillhub / GitHub / other]
Author: [username]
Version: [version]
---------------------------------------
METRICS:
- Downloads/Stars: [count]
- Last Updated: [date]
- Files Reviewed: [count]
---------------------------------------
RED FLAGS: [None / list them]

PERMISSIONS NEEDED:
- Files: [list or "None"]
- Network: [list or "None"]
- Commands: [list or "None"]
---------------------------------------
RISK LEVEL: [LOW / MEDIUM / HIGH / EXTREME]

VERDICT: [SAFE TO INSTALL / INSTALL WITH CAUTION / DO NOT INSTALL]

NOTES: [Any observations]
=======================================

Trust Hierarchy

  1. Official platform skills (published via platform market) — lower scrutiny (still review)
  2. High-star repos (1000+) — moderate scrutiny
  3. Known authors — moderate scrutiny
  4. New or unknown sources — maximum scrutiny
  5. Skills requesting credentials — human approval always required

Principles

  • No skill is worth compromising security
  • When in doubt, do not install
  • Escalate high-risk decisions to the user
  • Document what you vet for future reference

Comments

Markdown supported