Back to Resources

How to Check Claude Code Skills Before You Install Them

Scan the candidate, inspect the source and make a deliberate install decision

Jim DeolaJuly 16, 2026
Claude CodeAgent SkillsBuilderArticle

Part of the guide Rhize Plugins for Claude Code: Which Ones Should You Install?

Skill Forge header — pipeline of vetting stages passing through a glowing security gate
On this page
Before you install a Claude Code skill, check the instructions, scripts, requested tools and source. A one-line install is convenient; it is not a substitute for deciding what you want an agent to run.

Skill Forge is a CLI that stages candidates outside the live skill directory, profiles their contents and runs static risk checks. The practical sequence is scan, read the findings, inspect the source, then make an explicit install or reject decision.

What is Skill Forge?

The commands in this guide were checked against @rhize/skill-forge 0.22.0, published from commit 1f7ad9bbc695bc0452e53b156c5e9264353f6694. It adds a local review record and maintenance workflow. It does not prevent installs through other tools or certify a skill as safe.

Skills can contain more than prose: scripts, references and tool bindings may affect what an agent reads or executes. Inspect those resources and the host permissions before installation, especially when the task involves private data or external actions.

The supply-chain problem with agent skills

Marketplaces can provide useful safeguards. Vercel documents partner audits and installation risk information for skills.sh. Skill Forge adds local review of the candidate and your installed set; it should not be described as the only vetting step available.

Different sources and hosts have different controls. A staging directory separates candidate files from the live skill set, but it is not an operating-system security sandbox. The host's permissions, your review and runtime verification remain part of the boundary.

How does the quarantine pipeline work?

Candidates follow six stages: staging, profile, safety scan, overlap analysis when available, report and an explicit decision. Begin with scan when you want to inspect without installing; use add only when ready to review a promotion.

Staging. The candidate is fetched into the configured quarantine directory. Inspecting it there keeps it out of the live skill directory until promotion. Avoid treating the directory itself as proof that arbitrary code would be contained.

  1. Profile. Skill Forge reads the candidate's name, version, license, file structure, and any declared MCP or tool dependencies.
  1. Safety scan. A built-in deny-pattern ruleset runs against every candidate, fully offline: curl/wget-piped-into-shell, base64-obfuscated exec, reverse shells, recursive force-delete, credential-file access or exfiltration, dynamic eval, shell=True subprocess calls, persistence via shell rc files or cron, and sudo usage. A HIGH or CRITICAL finding blocks the candidate outright (verdict block); lower severity produces warn; a clean scan is pass. If SkillSpector (Apache-2.0) is on PATH, Skill Forge shells out to it too — with --no-llm by default, so scanned content never reaches an external LLM — and merges its findings in. SkillSpector's absence never blocks the gate.
  1. Overlap analysis (Pro, free during the 0.x beta). The candidate is ranked against the skills already present in your configured skills root, so you can see whether it duplicates something you already have.
  1. Report. A terminal report (or --json output) summarizes the profile, safety findings, and overlap result in one place.

Promotion. Under default block-high strictness, HIGH or CRITICAL findings block promotion. Lower-severity findings still need review. Do not use an automatic confirmation flag as a substitute for reading the report; an MCP server that serves skills is held for explicit review rather than automatically promoted.

Optional discovery. The find command can search skills.sh, retrieve details or request partner audit results. Search results are unvetted, and discovery requires its documented authentication. Local scanning and the partner-audit layer answer different questions.

What are the three ways to install a skill?

Skill Forge's <source> argument accepts any of three forms, and all three route through the identical quarantine → profile → safety scan → overlap analysis → report → promote/hold/reject pipeline — the gate doesn't care where a skill came from.

Source typeExampleNotes
skills.sh slugowner/nameThe registry shorthand most skills are shared as.
Git URLhttps://github.com/owner/repo.git, git@..., or anything ending in .gitShallow-cloned into quarantine.
Local filesystem path./local-skill-dirCopied into quarantine, same handling as any other source.

Because every source lands in the same sandbox and runs the same ruleset, a skill you wrote yourself gets exactly the same scrutiny as one pulled from a stranger's repo — no shortcut for "trusted" sources is baked into the tool.

How do you review an MCP server?

Use --artifact mcp explicitly when the candidate is a server. The tool statically profiles detectable capabilities without starting the candidate server. Counts and confidence describe what the scan can infer from the package, not everything the server could do at runtime.

You opt in explicitly with --artifact mcp; Skill Forge never guesses between a skill and an MCP server, so an npm package name like @scope/name only resolves as an MCP source with that flag — without it, the same string parses as a skills.sh slug. MCP sources come in the same three shapes as skills, except an npm-sourced MCP candidate is fetched with npm pack --ignore-scripts and only ever tarball-extracted — never npm install, never lifecycle scripts — with every tarball member path checked before extraction so an absolute path or a .. segment refuses instead of writing outside the sandbox.

Safety scanning for MCP candidates adds rules on top of the skill ruleset: inline credential values in config or env, unpinned npx -y launch commands (a moving tag like @latest counts as unpinned), --dangerously-*/--no-sandbox flags, and filesystem-root launch arguments.

MCP promotion writes a server entry to the reviewed target config with credential values left empty. Supply secrets through the host's supported setup after reviewing the exact server and launch command. A static profile cannot inspect unreachable live content; that content remains unverified.

Key commands

CommandWhat it does
npx @rhize/skill-forge@0.22.0 initDetects supported local coding agents and lets you review gate targets, a default promotion target and an optional handoff agent.
npx @rhize/skill-forge@0.22.0 add <source>Installs a source into quarantine and runs the full gate: profile → safety scan → overlap analysis → report, then prompts you to promote, hold, or reject.
npx @rhize/skill-forge@0.22.0 scan <source>Runs the same gate pipeline without ever promoting — the quarantine sandbox is always cleaned up afterward, whether the scan passes or fails.
npx @rhize/skill-forge@0.22.0 listShows what's currently held in quarantine — installed, answered "hold," not yet promoted or rejected.
npx @rhize/skill-forge@0.22.0 statusShows the resolved configuration (skills roots, quarantine directory, strictness) plus a count of held entries.

First run npx @rhize/skill-forge@0.22.0 init and review the roots and target. Next run npx @rhize/skill-forge@0.22.0 scan owner/name --json. Read the report and relevant files. Only then run npx @rhize/skill-forge@0.22.0 add owner/name if the candidate is appropriate for the task.

For a local candidate, replace owner/name with its path. A nonzero scan result needs investigation; do not suppress it in CI. After installation, test a small, non-sensitive example and verify that the host loaded the intended skill.

How is Skill Forge different from npx skills add?

skills.sh already provides partner security reports and risk information during installation. Skill Forge adds a local staging decision, configured overlap checks and ongoing provenance and maintenance commands. Choose the combination that fits your workflow rather than assuming every direct installer has no safeguards.

If you never configure a skills root, add/scan still run — profiling and the safety scan work independent of a configured root. Overlap analysis is the one stage that gets skipped (non-fatal, a message to stderr) if skillsRoots[0] doesn't resolve to a directory of existing skills.

Maintain the collection after installation

Use audit --json to review configured skills and add --claude-plugins to include enabled Claude Code plugin skills. Use watch for upstream drift. A recommendation to review or an unobserved-usage label is advisory; investigate it before removing a useful tool.

The former rhize-meta plugin was removed from the marketplace. Its governance capabilities now live in this CLI, including refinement. For a targeted fix, preview a project override, activate the exact skill and test it in a fresh host task. The companion guide explains that maintenance cycle.

Free vs. Pro and licensing

The project separates the installation gate from additional curation features. Check the release's license files and Pro documentation for the exact terms. Do not assume a future major release has the same access or pricing as the current beta.

CapabilityFreePro
Quarantine install (skills.sh slug / git / local path)YesYes
Profile (name, version, license, structure, MCP/tool deps)YesYes
Safety gate — built-in ruleset + SkillSpector shell-outYesYes
Terminal report + --jsonYesYes
Promote / hold / reject decisionYesYes
init setup wizardYesYes
Overlap analysis against your configured skill setYes
Provenance ledger (SOURCES.md audit trail)Yes
Pending-ingestion queue + --ingest handoffYes

In the checked 0.22.0 release, the documentation says Pro features are free during the 0.x beta. That is a release-bound statement, not a promise about 1.0. Verify the published package and license terms when adopting or upgrading.

When should you use it?

Use this workflow when a new skill or MCP server deserves review before it reaches your working setup. It can also inspect your own candidates for known risky patterns. Keep the task small, review the result and verify runtime behavior before granting broader access.

Frequently Asked Questions

Is this the same as the skillforge package?
No. @rhize/skill-forge is the hyphenated package described here. Check the complete npm package name and repository before installing.
Does it replace skills.sh safeguards?
No. skills.sh has partner audit and installation risk information. Skill Forge adds local staging, review and collection maintenance; it does not make other install paths impossible.
Does the safety scan send content to an AI provider?
The built-in scanner is offline. The default optional SkillSpector path uses --no-llm. Fetching a remote candidate and optional discovery still require network access; review the flags and dependencies you enable.
Are Pro features free?
The checked 0.22.0 documentation describes Pro features as free during the 0.x beta. Check the license and release terms when installing or upgrading; do not assume that future releases use the same terms.
What happens when a scan finds a HIGH or CRITICAL issue?
Under the default block-high policy, promotion is blocked. Review and resolve the issue or reject the candidate. Interactive confirmation is not a way to override that blocking verdict.

Release and command reference: https://github.com/Rhize-Media/skill-forge/tree/v0.22.0

skills.sh security audit announcement: https://vercel.com/changelog/automated-security-audits-now-available-for-skills-sh

Want this working in your business — not just on paper?

Book a 30-min call to talk through your workflow, ask your questions, and discuss a useful next step. No pitch, no obligation.

Book a 30-min call

Get insights like this in your inbox

Join our newsletter for actionable SEO, marketing, and growth strategies — no fluff, just results.

No spam. Unsubscribe anytime.

See exactly where your business
runs through you.

The next step is a 30-minute call.

Book a 30-minute call and we'll map where the business depends on you — and what it looks like once a system you own runs the routine. You leave with a plan, whether you hire us or not.

No pitch — you leave with a plan. We'll tell you exactly what we'd do, whether you hire us or not.