Automatically validates claude code plugin structure, schemas, and compliance when user mentions validate plugin, check plugin, or plugin errors. runs comprehensive validation specific to claude-code-plugins repository standards.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
assets/README.mdreferences/README.mdscripts/README.mddescription: Automatically validates claude code plugin structure, schemas, and compliance when user mentions validate plugin, check plugin, or plugin errors. runs comprehensive validation specific to claude-code-plugins repository standards. allowed-tools:
Automatically validates Claude Code plugins against repository standards, checking structure, JSON schemas, frontmatter, permissions, security, and marketplace compliance - optimized for claude-code-plugins repository.
.claude-plugin/plugin.json existsREADME.md exists and not emptyLICENSE file exists# Required fields:
- name (kebab-case, lowercase, hyphens only)
- version (semantic versioning x.y.z)
- description (clear, concise)
- author.name
- author.email
- license (MIT, Apache-2.0, etc.)
- keywords (array, at least 2)
# Optional but recommended:
- repository (GitHub URL)
- homepage (docs URL)
For Commands (commands/*.md):
---
name: command-name
description: Brief description
model: sonnet|opus|haiku
---
For Agents (agents/*.md):
---
name: agent-name
description: Agent purpose
model: sonnet|opus|haiku
---
For Skills (skills/*/SKILL.md):
---
name: Skill Name
description: What it does AND when to use it
allowed-tools: Tool1, Tool2, Tool3 # optional
---
Validates proper hierarchy:
plugin-name/
├── .claude-plugin/ # Required
│ └── plugin.json # Required
├── README.md # Required
├── LICENSE # Required
├── commands/ # Optional
│ └── *.md
├── agents/ # Optional
│ └── *.md
├── skills/ # Optional
│ └── skill-name/
│ └── SKILL.md
├── hooks/ # Optional
│ └── hooks.json
└── mcp/ # Optional
└── *.json
# All .sh files must be executable
find . -name "*.sh" ! -perm -u+x
# Should return empty
# All JSON must be valid
jq empty plugin.json
jq empty marketplace.extended.json
jq empty hooks/hooks.json
For hooks:
${CLAUDE_PLUGIN_ROOT} not absolute pathsWhen activated, I will:
Identify Plugin
Run Comprehensive Checks
# Structure validation
./scripts/validate-all.sh plugins/category/plugin-name/
# JSON validation
jq empty .claude-plugin/plugin.json
# Frontmatter check
python3 scripts/check-frontmatter.py
# Permission check
find . -name "*.sh" ! -perm -u+x
# Security scan
grep -r "password\|secret\|api_key" | grep -v placeholder
Generate Report
🔍 PLUGIN VALIDATION REPORT
Plugin: plugin-name
Location: plugins/category/plugin-name/
✅ PASSED CHECKS (8/10)
- Required files present
- Valid plugin.json schema
- Proper frontmatter format
- Directory structure correct
- No security issues
- Marketplace compliance
- README complete
- JSON valid
❌ FAILED CHECKS (2/10)
- Script permissions: 3 .sh files not executable
Fix: chmod +x scripts/*.sh
- Marketplace version mismatch
plugin.json: v1.2.0
marketplace.extended.json: v1.1.0
Fix: Update marketplace.extended.json to v1.2.0
⚠️ WARNINGS (1)
- README missing usage examples
Recommendation: Add ## Usage section with examples
OVERALL: FAILED (2 critical issues)
Fix issues above before committing.
I can automatically fix:
chmod +x)jq reformat)For claude-code-plugins repo:
.claude-plugin/marketplace.extended.jsonclaude-code-plugins-plusValidation results match GitHub Actions:
.github/workflows/validate-plugins.ymlUser says: "Validate the skills-powerkit plugin"
I automatically:
User says: "Check if my plugin is ready to commit"
I automatically:
User says: "Why is my plugin failing CI?"
I automatically: