Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Emasoft/claude-plugins-validation --skill cpv-the-skills-menugit clone --depth 1 https://github.com/Emasoft/claude-plugins-validationWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/emasoft/claude-plugins-validation/cpv-the-skills-menu)<a href="https://agentmods.dev/skills/emasoft/claude-plugins-validation/cpv-the-skills-menu"><img src="https://agentmods.dev/badge/skills/emasoft/claude-plugins-validation/cpv-the-skills-menu/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/emasoft/claude-plugins-validation/cpv-the-skills-menu"><img src="https://agentmods.dev/badge/skills/emasoft/claude-plugins-validation/cpv-the-skills-menu.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00158 | $0.03983 |
| Opus 5.5 | $0.00063 | $0.01593 |
| Sonnet 5.5 | $0.00032 | $0.00797 |
| Haiku 4.5 | $0.00016 | $0.00398 |
Grade A, and why
cpv-the-skills-menu scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
cpv-the-skills-menu — universal CPV router + catalog
Overview
CPV has two menus for two audiences: humans get /cpv-main-menu — a real
interactive numbered menu rendered post-turn by the claude-menu-system Stop
hook (zero token cost); agents and any routing Claude get THIS skill — not a
rendered menu, just a plain readable document offering every CPV skill, agent
and script à la carte. Read it, pick what the task needs, invoke it.
It is also the runtime catalog CPV's own agents load skills from on demand (TRDD-478d9687), for one plugin or a whole fleet.
Instructions
How to route a free-form request, autonomously:
- Classify the request into exactly one row of the Intent → Action table. When the request is broad ("check my plugin"), default to validate first, then offer to fix.
- Execute the mapped action — load the skill with
Skill(), run theuvxscript, or dispatch the specialist agent. Chain when the table says so (e.g. validate → fix). - Never hand-edit to fix findings. CPV ships fixer agents
(
cpv-plugin-fixer-agent,cpv-marketplace-fixer-agent,cpv-cache-optimizer-agent) that know the per-rule remediation recipes; hand-rolling one drifts from the rules. - Fleet → batch. For more than one plugin (a marketplace, a list, an
@listfile), prefer the/cpv-batch-*family — it fans out parallel workers from one message. - Surface the downstream result (severity counts + report path), or chain into the next step.
Intent → Action table
Every "Claude Code" cell runs in a session with CPV installed. Every
"Standalone (uvx)" cell runs from a terminal with no install (needs
uv; prefix with
uvx --from git+https://github.com/Emasoft/claude-plugins-validation --with pyyaml cpv-remote-validate).
| # | I want to… | Do this (Claude Code) | Standalone (uvx) |
|---|---|---|---|
| 1 | Validate a whole plugin (structure, hooks, skills, security, compat, quality — 20 validators) | Dispatch cpv-plugin-validator-agent, or Skill(claude-plugins-validation:cpv-plugin-validation-skill) |
… plugin /path |
| 2 | Validate one skill (SKILL.md frontmatter, sections, description quality) | Dispatch cpv-skill-validation-agent, or Skill(claude-plugins-validation:cpv-skill-validation-skill) |
… skill /path --strict |
| 3 | Validate an agent / command / hook / MCP / LSP | Dispatch cpv-plugin-validator-agent (covers all components) |
… agent /path · … command /path · … hook /path · … mcp /path · … lsp /path |
| 4 | Security-scan a plugin (5 external scanners — trufflehog, cc-audit, tirith, semgrep, Cisco — + native skillaudit) | Dispatch cpv-plugin-validator-agent (runs the full security pipeline), or fleet-wide Skill(claude-plugins-validation:cpv-batch-security-audit) |
… security /path |
| 5 | Security-scan BEFORE installing an untrusted plugin / skill / marketplace | /cpv-pre-install-scan <target> (sandboxed; never writes to the plugin cache) |
… security <github-url-or-path> |
| 5b | Full READ-ONLY scan of one folder or repo (structure, rules, security, leaks, cache; no fixes) | /cpv-validate-plugin-folder [path-or-url], or Skill({skill: "claude-plugins-validation:cpv-validate-plugin-folder"}) |
… plugin /path + … security /path |
| 6 | Fix validation findings in a plugin (mechanical per-rule remediation) — do NOT hand-edit | Dispatch cpv-plugin-fixer-agent (validate → fix loop), or fleet-wide /cpv-batch-fix · /cpv-batch-validate-and-fix |
— (fixing needs write access; run in Claude Code) |
| 7 | Fix marketplace findings / migrate marketplace layout (A ⇄ B ⇄ C) | Dispatch cpv-marketplace-fixer-agent, or Skill(claude-plugins-validation:cpv-migrate-marketplace-architecture) |
— |
| 8 | Devitalize security threats (rewrite execution-class code to provably-inert data; never suppresses a rule) | Dispatch cpv-plugin-devitalizer-agent (scan → devitalize → re-scan; flags load-bearing code) |
— (needs write access) |
| 9 | Prevent leaks & harden a plugin (redact / runtime-read secrets, add missing safeguards; never suppresses a rule) | Dispatch cpv-plugin-leaks-preventer-agent (scan → redact/harden → re-scan) |
— (needs write access) |
| 10 | Optimize prompt cache (CA-01..CA-07) | Audit: Skill(claude-plugins-validation:cpv-cache-validation-skill) or /cpv-batch-caching-audit. Fix: dispatch cpv-cache-optimizer-agent or /cpv-batch-caching-optimize |
… cache /path (audit only) |
| 11 | Create a new plugin / marketplace / skill / agent / command / hook / MCP | Dispatch cpv-plugin-creator-agent, or Skill(claude-plugins-validation:cpv-create-plugin) · Skill(…:cpv-scaffold-skill) · …:cpv-scaffold-agent · …:cpv-scaffold-command · …:cpv-add-hook · …:cpv-register-mcp |
— |
| 12 | Publish a plugin to GitHub + add it to a marketplace | Dispatch cpv-plugin-creator-agent (scaffolds repo + CI/CD + publishes), or chain Skill(…:cpv-setup-plugin-repo) → Skill(…:cpv-setup-github-marketplace) → Skill(…:cpv-link-plugin-marketplace) → Skill(…:cpv-publish-to-marketplace) |
— |
| 13 | Bring an old plugin up to the current CPV pipeline standard | Dispatch cpv-plugin-creator-agent, or Skill(claude-plugins-validation:cpv-standardize-plugin) / Skill(…:cpv-canonical-pipeline) |
… standardize /path |
| 14 | Manage installed plugins (install / update / enable / disable / list / search / health-check) | Dispatch cpv-plugin-manager-agent, or Skill(claude-plugins-validation:cpv-plugin-management) |
… doctor (health-check only) |
| 15 | Deep diagnostic (all scanners + pipeline-staleness + cross-platform + marketplace-registration + cache-sync) | Dispatch cpv-plugin-diagnoser-agent; for .claude/ scope (user / project / local) /cpv-batch-scope-diagnose |
… doctor |
| 16 | AI-grade quality (descriptions that won't trigger, unclear instructions, workflows with no exit) — expensive, opt-in | Dispatch cpv-semantic-validator-agent (warns about 10–50× token cost first) |
— (needs Opus) |
| 17 | Do the same op across many plugins (a marketplace / list / @listfile) |
The /cpv-batch-* family — validate, security-audit, caching-audit/optimize, fix, validate-and-fix, full-scan-and-fix, scope-diagnose/fix |
most aliases accept a --marketplace <spec> |
| 18 | Just show me an interactive numbered menu | /cpv-main-menu (human picks a number; zero-token Stop-hook render) |
— |
| 19 | Hand the whole free-form request to one autonomous worker (isolated context; keeps yours clean, returns a report path) | Agent(subagent_type: "cpv-agent", prompt: "<request, verbatim>") |
— |
| 20 | Migrate a compiled-component plugin to ship ONLY the binary — create the separate PUBLIC source repo, extract the source, ship bin/ only (the RC-SHIP-BINARY-ONLY remediation) |
Dispatch cpv-plugin-fixer-agent, or Skill(claude-plugins-validation:cpv-strip-dev-submodules); recipe: cpv-fix-validation/references/ship-binary-only-fixes.md. Confirm with the user before creating a PUBLIC repo. |
— (needs write access + gh auth) |
| 21 | ONE agent + the skills it REACHES — validate, security-scan, convert, or cost-compare variants | agent --closure · agent-security · convert_agent.py --to <mode> · agent-eval |
same |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 169 lines · 158 tokens per session scan A 380ab737ea39
cpv-the-skills-menu is a skill published in the GitHub repository Emasoft/claude-plugins-validation (4 stars, last pushed 3d ago), licensed MIT. It adds 158 tokens to every session and 3,983 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Optimize the meaningful UI available immediately from a Next.js route on an initial load (hard navigation) or named client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route and entry point at a time; the shipped test then guards…