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.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add BbgnsurfTech/claude-skills-collection --skill plugin-validator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Plugin Validator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bbgnsurftech-plugin-validator-01381eac)More formats (shields.io, HTML) on the badges page.
---
name: plugin-validator
description: |
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: Read, Grep, Bash
version: 1.0.0
---
# Plugin Validator
## Purpose
Automatically validates Claude Code plugins against repository standards, checking structure, JSON schemas, frontmatter, permissions, security, and marketplace compliance - optimized for claude-code-plugins repository.
## Trigger Keywords
- "validate plugin"
- "check plugin"
- "plugin validation"
- "plugin errors"
- "lint plugin"
- "verify plugin"
## Validation Checks
### 1. Required Files
- ✅ `.claude-plugin/plugin.json` exists
- ✅ `README.md` exists and not empty
- ✅ `LICENSE` file exists
- ✅ At least one component directory (commands/, agents/, skills/, hooks/, mcp/)
### 2. Plugin.json Schema
```bash
# 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)
```
### 3. Frontmatter Validation
**For Commands (commands/*.md):**
```yaml
---
name: command-name
description: Brief description
model: sonnet|opus|haiku
---
```
**For Agents (agents/*.md):**
```yaml
---
name: agent-name
description: Agent purpose
model: sonnet|opus|haiku
---
```
**For Skills (skills/*/SKILL.md):**
```yaml
---
name: Skill Name
description: What it does AND when to use it
allowed-tools: Tool1, Tool2, Tool3 # optional
---
```
### 4. Directory Structure
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
```
### 5. Script Permissions
```bash
# All .sh files must be executable
find . -name "*.sh" ! -perm -u+x
# Should return empty
```
### 6. JSON Validation
```bash
# All JSON must be valid
jq empty plugin.json
jq empty marketplace.extended.json
jq empty hooks/hooks.json
```
### 7. Security Scans
- ❌ No hardcoded secrets (API keys, tokens, passwords)
- ❌ No AWS keys (AKIA...)
- ❌ No private keys (BEGIN PRIVATE KEY)
- ❌ No dangerous commands (rm -rf /, eval())
- ❌ No suspicious URLs (non-HTTPS, IP addresses)
### 8. Marketplace Compliance
- ✅ Plugin listed in marketplace.extended.json
- ✅ Source path matches actual location
- ✅ Version matches between plugin.json and catalog
- ✅ Category is valid
- ✅ No duplicate plugin names
### 9. README Requirements
- ✅ Has installation instructions
- ✅ Has usage examples
- ✅ Has description section
- ✅ Proper markdown formatting
- ✅ No broken links
### 10. Path Variables
For hooks:
- ✅ Uses `${CLAUDE_PLUGIN_ROOT}` not absolute paths
- ✅ No hardcoded /home/ or /Users/ paths
## Validation Process
When activated, I will:
1. **Identify Plugin**
- Detect plugin directory from context
- Or ask user which plugin to validate
2. **Run Comprehensive Checks**
```bash
# 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
```
3. **Generate Report**
- List all issues by severity (critical, high, medium, low)
- Provide fix commands for each issue
- Summary: PASSED or FAILED
## Validation Report Format
```
🔍 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.
```
## Auto-Fix Capabilities
I can automatically fix:
- ✅ Script permissions (`chmod +x`)
- ✅ JSON formatting (`jq` reformat)
- ✅ Marketplace version sync
- ✅ Missing LICENSE (copy from root)
## Repository-Specific Checks
**For claude-code-plugins repo:**
- Validates against `.claude-plugin/marketplace.extended.json`
- Checks category folder matches catalog entry
- Ensures marketplace slug is `claude-code-plugins-plus`
- Validates against other plugins (no duplicates)
- Checks compliance with CLAUDE.md standards
## Integration with CI
Validation results match GitHub Actions:
- Same checks as `.github/workflows/validate-plugins.yml`
- Compatible with CI error format
- Can be run locally before pushing
## Examples
**User says:** "Validate the skills-powerkit plugin"
**I automatically:**
1. Run all validation checks
2. Identify 2 issues (permissions, version mismatch)
3. Provide fix commands
4. Report overall status: FAILED
**User says:** "Check if my plugin is ready to commit"
**I automatically:**
1. Detect plugin from context
2. Run comprehensive validation
3. Check marketplace compliance
4. Report: PASSED or list issues
**User says:** "Why is my plugin failing CI?"
**I automatically:**
1. Run same checks as CI
2. Identify exact failure
3. Provide fix command
4. Validate fix works
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!