Skip to main content
skill CX Codex

validate-plugin — Claude Code skill: what it does, how to install

Checks a Claude Code plugin’s structure, frontmatter, and MCP tool references before publishing or after changes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ruvnet/ruflo --skill validate-plugin -a claude-code
Open on GitHub

What validate-plugin does

This skill checks for .claude-plugin/plugin.json, required manifest fields, semantic version format, and whether the plugin name matches its directory. It also flags skills, commands, and agents arrays in plugin.json, because Claude Code rejects plugins that contain those legacy arrays.

It scans skills/*/SKILL.md, commands/*.md, and agents/*.md to validate auto-discovered files. The checks cover required frontmatter fields, wildcard-free allowed-tools, and files placed outside .claude-plugin/.

MCP tool names are compared with the output of npx @claude-flow/cli@latest mcp tools to catch typos. Inside the ruflo repository, it also runs audit scripts; fix reported failures before publishing the plugin.

What it helps with

  • check a plugin directory structure
  • find legacy arrays in plugin.json
  • validate SKILL.md frontmatter
  • compare MCP tool names with installed tools
  • detect files placed in the wrong directories

Example prompts for the agent

  • Use validate-plugin to check the plugin in ./my-plugin.
  • Run validate-plugin for plugins/example and report frontmatter errors.
  • Check ./my-plugin for invalid MCP tool references with validate-plugin.

How to install validate-plugin

1Skills CLI (Vercel)

npx skills add ruvnet/ruflo --skill validate-plugin -a claude-code

2Manually: put the files in place

~/.claude/skills/validate-plugin/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/validate-plugin/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about validate-plugin

How do I install validate-plugin in Claude Code?

Run npx skills add ruvnet/ruflo --skill validate-plugin -a claude-code. The skill file is placed at ~/.claude/skills/validate-plugin/SKILL.md.

What does validate-plugin do?

It validates a Claude Code plugin manifest, auto-discovered skills, commands, agents, and file frontmatter. It reports pass or fail for each check and suggests fixes.

How does validate-plugin check MCP tools?

It compares names in allowed-tools against the tool list from npx @claude-flow/cli@latest mcp tools. MCP references must use the mcp__plugin_ruflo-core_ruflo__* prefix.

Source text

SKILL.md · MIT
---
name: validate-plugin
description: Validate a Claude Code plugin structure, frontmatter, and MCP tool references
argument-hint: "[plugin-path]"
allowed-tools: mcp__plugin_ruflo-core_ruflo__transfer_plugin-info Bash Read Glob Grep
---

# Validate Plugin

Validate that a plugin follows the correct Claude Code plugin format.

## When to use

After creating or modifying a plugin, run validation to catch structural issues before publishing.

## Checks performed

1. **Directory structure** — `.claude-plugin/plugin.json` exists at plugin root
2. **plugin.json schema** — required fields present (name, description, version, non-empty keywords array); `name` equals the directory name; version is semver
3. **Skills auto-discovery** — every `skills/<name>/SKILL.md` is a valid skill (Claude Code auto-discovers from directory; `plugin.json` MUST NOT list a `skills` array)
4. **Commands auto-discovery** — every `commands/<name>.md` is a valid command (auto-discovered; no `commands` array in `plugin.json`)
5. **Agents auto-discovery** — every `agents/<name>.md` is a valid agent (auto-discovered; no `agents` array in `plugin.json`)
6. **No legacy arrays in plugin.json** — presence of `skills`, `commands`, or `agents` arrays in `plugin.json` is a validation error (they cause Claude Code to reject the plugin)
7. **SKILL.md frontmatter** — each skill has `name`, `description`, and `allowed-tools` (no wildcards)
8. **Agent frontmatter** — each agent has `name`, `description`, and `model`
9. **No files in wrong locations** — skills/commands/agents not inside `.claude-plugin/`
10. **MCP tool references** — tools in `allowed-tools` use the `mcp__plugin_ruflo-core_ruflo__*` prefix AND exist: list the real tools with `npx @claude-flow/cli@latest mcp tools` and flag any name not in it (typos such as `hooks_post_task` for `hooks_post-task`, or `agentdb_pattern_search` for `agentdb_pattern-search`, are format-valid but do not exist). Also run the repo gates when inside the ruflo repo: `node scripts/audit-skill-frontmatter.mjs`, `audit-plugin-manifest.mjs`, `audit-plugin-mcp-prefix.mjs`

## Steps

1. Read the plugin's `plugin.json` and assert no `skills` / `commands` / `agents` arrays present
2. Glob `skills/*/SKILL.md`, `commands/*.md`, `agents/*.md` and validate each frontmatter
3. For each SKILL.md, verify frontmatter has required fields and `allowed-tools` has no wildcards
4. For each agent .md, verify frontmatter has required fields
5. Report pass/fail for each check with actionable fix suggestions

© ruvnet · MIT · ruvnet/ruflo

Similar skills

Everything for Testing and QA →

From the same set146

safety-scan Scans inputs for prompt injection, jailbreak attempts, and unsafe content before processing. Use it when handling untrusted data from users, APIs, or webhooks. CX Codex +1 743installs chat-format Formats chat messages into local model templates like llama3 or chatml for Ollama and llama.cpp, and routes queries across intents using a compact WASM HNSW index. CX Codex +1 742installs create-plugin Skill that generates a complete plugin scaffold with directories, plugin.json, skills, commands, and agents. Saves time on boilerplate and ensures compliance with ruflo standards. CX Codex +1 742installs llm-config Configures RuVLLM local inference and manages in-memory MicroLoRA and SONA adapters using quality feedback scores. CX Codex +1 741installs trader-portfolio A skill that walks through portfolio allocation with the neural-trader engine: weights, a risk figure and a rebalancing draft. Useful when you want to map holdings onto a target return. CX Codex +1 741installs intelligence-route Selects the right agent and model tier across three tiers using learned patterns. Cuts token costs on routine coding tasks. CX Codex +1 741installs wasm-gallery Skill for browsing, installing, and publishing WASM agents from a community gallery. Useful when you need a ready-made agent or want to share yours. CX Codex +1 741installs adr-create Writes an Architecture Decision Record into docs/adr with the next number, stores it in AgentDB and links it to related decisions. Useful when a decision has to be recorded and findable later. CX Codex +1 741installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor