claude-plugin-validate 0.1.1

CLI validator for Claude Code plugin manifests and plugin content schemas.
Documentation

claude-plugin-validate

Deferring plugin validation until RUNTIME is painful, especially in TEAM DEVELOPMENT: teammates can hit errors during INSTALLATION, which increases ADOPTION FRICTION, and malformed plugin content may be silently ignored. So why not SHIFT VALIDATION LEFT and catch these issues before release?

This tool validates Claude Code plugin manifest schema (plugin.json) and plugin content schemas (markdown frontmatter and hooks/hooks.json structure).

Features

  • Validate plugin.json schema + semantic constraints
  • Optional validation for plugin markdown component frontmatter
  • Optional hooks JSON structural validation
  • CLI text and JSON output

CLI

Installation

cargo install claude-plugin-validate
claude-plugin-validate /path/to/plugin.json
claude-plugin-validate /path/to/plugins-dir
claude-plugin-validate /path/to/plugins-dir --all

Exit codes:

  • 0: all valid
  • 1: one or more validation failures
  • 2: runtime/argument errors

Run Example

Basic validation

 claude-plugin-validate ./plugins
OK  ./plugins/agent-sdk-dev/.claude-plugin/plugin.json
OK  ./plugins/claude-opus-4-5-migration/.claude-plugin/plugin.json
OK  ./plugins/code-review/.claude-plugin/plugin.json
OK  ./plugins/commit-commands/.claude-plugin/plugin.json
OK  ./plugins/explanatory-output-style/.claude-plugin/plugin.json
OK  ./plugins/feature-dev/.claude-plugin/plugin.json
OK  ./plugins/frontend-design/.claude-plugin/plugin.json
OK  ./plugins/hookify/.claude-plugin/plugin.json
OK  ./plugins/learning-output-style/.claude-plugin/plugin.json
OK  ./plugins/pr-review-toolkit/.claude-plugin/plugin.json
OK  ./plugins/ralph-wiggum/.claude-plugin/plugin.json
OK  ./plugins/security-guidance/.claude-plugin/plugin.json

Summary: 12/12 valid

Full validation

 claude-plugin-validate ./plugins --all
OK  ./plugins/agent-sdk-dev/.claude-plugin/plugin.json
OK  ./plugins/claude-opus-4-5-migration/.claude-plugin/plugin.json
OK  ./plugins/code-review/.claude-plugin/plugin.json
OK  ./plugins/commit-commands/.claude-plugin/plugin.json
OK  ./plugins/explanatory-output-style/.claude-plugin/plugin.json
OK  ./plugins/feature-dev/.claude-plugin/plugin.json
OK  ./plugins/frontend-design/.claude-plugin/plugin.json
OK  ./plugins/hookify/.claude-plugin/plugin.json
ERR ./plugins/hookify/agents/conversation-analyzer.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 124. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
OK  ./plugins/learning-output-style/.claude-plugin/plugin.json
OK  ./plugins/pr-review-toolkit/.claude-plugin/plugin.json
ERR ./plugins/pr-review-toolkit/agents/code-reviewer.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 717. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
ERR ./plugins/pr-review-toolkit/agents/code-simplifier.md
  - frontmatter: YAML frontmatter failed to parse: could not find expected ':' at line 7 column 1, while scanning a simple key at line 6 column 1. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
ERR ./plugins/pr-review-toolkit/agents/comment-analyzer.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 140. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
ERR ./plugins/pr-review-toolkit/agents/pr-test-analyzer.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 272. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
ERR ./plugins/pr-review-toolkit/agents/silent-failure-hunter.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 393. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
ERR ./plugins/pr-review-toolkit/agents/type-design-analyzer.md
  - frontmatter: YAML frontmatter failed to parse: mapping values are not allowed in this context at line 2 column 111. At runtime this agent loads with empty metadata (all frontmatter fields silently dropped).
OK  ./plugins/ralph-wiggum/.claude-plugin/plugin.json
OK  ./plugins/security-guidance/.claude-plugin/plugin.json

Summary: 12/19 valid