Validate Frontmatter
Checks every skill and agent in the repo against the current frontmatter standard and reports (or fixes) drift.
The standard
Field tables are the single source in docs/frontmatter-standard.md — don't restate them here. The skills-only shape rule (no commands/ directories — skills only) is in .claude/rules/plugin-editing.md.
The rule everyone gets backwards
disable-model-invocation: true marks a user-invoked skill — a human runs it explicitly via /plugin:skill, and the model is disabled from auto-triggering it off its description. user-invocable: false (a different key) marks a CI/background skill nobody explicitly invokes. Getting this backwards tells authors to set every user-invoked skill to the value that lets the model auto-trigger it — the opposite of what "user-invoked" means. Full table: references/checklist.md.
Process
- Glob
plugins/*/skills/*/SKILL.mdandplugins/*/agents/*.md. - For each skill: required fields present;
disable-model-invocation/user-invocablepolarity matches how it's actually invoked;allowed-toolsused (never baretools); nomodelorcategoryfield (skills-only prohibition — agents may carry either). - For each agent:
name,description,toolspresent;namematches the filename (kebab-case). - Report issues grouped by file. For mechanically safe fixes (
tools:→allowed-tools:rename,vX.Y→ semver, a missingversion: 1.0.0), propose the edit and apply withEditafter confirmation. Never auto-fixdisable-model-invocation/user-invocableordescription— both need a human call on intent. Full catalogue: references/checklist.md.
Pairs with audit-references
After a plugin-wide cleanup (skill removals, shape rewrites), run this alongside /catalyst-meta:audit-references — that catches broken path references, this catches frontmatter a cleanup left inconsistent (a rewrite that forgot to drop a stray category field, or flipped disable-model-invocation the wrong way).