validate-components

Validates YAML frontmatter and body structure of plugin skills, agents, and commands.

1|Updated Mar 22, 2026
One-click install
npx skills add https://github.com/JaviMontano/mao-plugin-qa --skill validate-components-javimontano
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: validate-components
Source: https://github.com/JaviMontano/mao-plugin-qa/tree/main/skills/validate-components
Command: npx skills add https://github.com/JaviMontano/mao-plugin-qa --skill validate-components-javimontano

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Plugin components fail at runtime when their YAML frontmatter is missing required fields, uses wrong types, or contains forbidden keys, and these errors are hard to spot manually across many files. ## Core Features & Use Cases - Frontmatter Validation: Checks required fields, types, and formats for skills (name, description, allowed-tools), agents (name, description, tools), and commands (description, user-invocable). - Body Structure Checks: Verifies each skill body has a title heading, a procedural section, and non-empty content. - Duplicate and Forbidden Field Detection: Flags duplicate component names and forbidden agent fields like hooks, mcpServers, and permissionMode. - Use Case: Before publishing a Claude Code plugin, run this validation to produce a severity-classified report (CRITICAL, WARNING, INFO) with per-type pass rates for all skills, agents, and commands. ## Quick Start Validate the frontmatter and body structure of all skills, agents, and commands in this plugin and report any findings by severity.

Frequently Asked Questions about validate-components

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate skill frontmatter in a Claude Code plugin?▼

Enumerate all skills via skills/*/SKILL.md, parse the YAML frontmatter, and check that name and description are non-empty strings and allowed-tools is a YAML array of recognized tool names. Report missing fields as CRITICAL findings with the exact file path.

What fields are required in Claude Code command frontmatter?▼

Command files require a non-empty description string and user-invocable set to the boolean true. Alias commands must also include alias-of pointing to the canonical command, and a self-referencing alias is a critical error.

Which fields are forbidden in Claude Code agent frontmatter?▼

Agents cannot define hooks, mcpServers, or permissionMode because subagents inherit the host permission model and cannot declare their own hooks or MCP connections. These fields cause runtime errors or silent overrides and are flagged as CRITICAL.

Why does allowed-tools validation fail when it looks correct?▼

The check fails when allowed-tools is written as a comma-separated string instead of a YAML array. Frontmatter must use list syntax with dash-prefixed items, and only recognized tool names like Read, Write, Bash, Glob, and Grep are accepted.

What are the limitations of automated frontmatter validation?▼

It only checks presence, type, and format of fields, not semantic quality such as whether a description is useful. It is read-only, cannot judge whether an allowed-tools list fits the skill's procedure, and treats only the literal boolean true as valid for user-invocable.