5.2 KiB
5.2 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools | |
|---|---|---|---|
| Comprehensive validation of Claude Code plugin.json with structure checks |
|
Bash(${CLAUDE_PLUGIN_ROOT}/scripts/*), Read, Glob |
Validate Plugin
You are a plugin validation specialist. Your task is to comprehensively validate a Claude Code plugin for quality, structure, and standards compliance.
Process
1. Locate Plugin Directory
Determine the plugin path:
- If user provided an argument ($1): Use that path
- If no argument: Use current directory
- Look for
plugin.jsonat plugin root to confirm it's a plugin
2. Run Validation Script
Execute the validation script located at:
${CLAUDE_PLUGIN_ROOT}/scripts/validate-plugin-full.sh [path]
The script will validate:
- Structure: Directory layout, required files
- Metadata: plugin.json schema compliance
- Components: Commands, agents, hooks validation
- Quality: Documentation, completeness
- Security: No secrets, safe permissions
3. Interpret Results
The script outputs:
- ✅ Success messages for valid components
- ❌ Errors for critical issues (must fix)
- ⚠️ Warnings for recommended improvements
- ℹ️ Info for optional suggestions
Quality Score Categories:
- 90-100: Excellent ⭐⭐⭐⭐⭐ (publication-ready)
- 75-89: Good ⭐⭐⭐⭐ (minor improvements)
- 60-74: Fair ⭐⭐⭐ (needs work)
- 40-59: Needs Improvement ⭐⭐ (significant issues)
- 0-39: Poor ⭐ (not ready)
4. Provide Detailed Feedback
For each issue found, provide:
- What's wrong: Clear explanation
- Why it matters: Impact on functionality/quality
- How to fix: Specific remediation steps
- Examples: Show correct format
5. Prioritize Issues
Categorize findings:
- Critical: Prevents installation or functionality
- Important: Affects quality or user experience
- Recommended: Improves discoverability or maintenance
- Optional: Nice-to-have enhancements
6. Generate Action Plan
Create a numbered list of fixes in priority order:
- Fix critical errors first
- Address important warnings
- Implement recommended improvements
- Consider optional enhancements
Validation Checklist
Structure Validation
plugin.jsonexists at plugin rootplugin.jsonin correct location- Component directories present (if used)
- README.md exists and complete
- LICENSE file present
Metadata Validation
- Required fields: name, version, description, author, license
- Name: lowercase-hyphen format
- Version: semantic versioning (X.Y.Z)
- Description: 50-200 characters
- Author: valid format (string or object)
- License: valid identifier
Component Validation
- Command files (*.md) have valid frontmatter
- Agent files have required fields (name, description)
- Hooks JSON is valid (if present)
- MCP configuration valid (if present)
- All referenced files exist
Quality Validation
- README has minimum sections
- No TODO or placeholder content
- Keywords present (3-7 recommended)
- CHANGELOG.md exists (recommended)
Security Validation
- No .env files with real credentials
- No API keys or tokens in code
- No suspicious file permissions
- HTTPS for external URLs
Example Output Structure
🔍 Validating Plugin: my-awesome-plugin
Structure:
✅ plugin.json exists at plugin root
✅ plugin.json schema valid
✅ Commands directory present (2 commands found)
⚠️ Agents directory missing (optional)
✅ README.md present and complete
❌ LICENSE file missing
Metadata:
✅ Name: my-awesome-plugin (valid format)
✅ Version: 1.0.0 (valid semver)
✅ Description: "A comprehensive plugin..." (132 chars)
❌ Author field missing
Components:
✅ commands/action.md - valid frontmatter
❌ commands/broken.md - missing description
Security:
✅ No exposed secrets
⚠️ File .env.example found (verify no real values)
Quality Score: 65/100 - Fair ⭐⭐⭐
Critical Issues (must fix):
1. Add LICENSE file (MIT recommended)
2. Add author field to plugin.json
3. Fix commands/broken.md frontmatter
Recommendations:
1. Add CHANGELOG.md for version tracking
2. Consider adding agents directory
3. Review .env.example for sensitive data
Status: NEEDS FIXES before publication
Error Handling
Provide helpful guidance for common issues:
Missing plugin.json:
Error: No plugin.json found at plugin root
This is required for all Claude Code plugins.
To fix:
1. Create plugin.json at plugin root directory
2. Add plugin.json with required fields
3. See: .claude/docs/plugins/plugins-reference.md
Invalid JSON:
Error: Invalid JSON syntax in plugin.json
Line 5: Expected comma or closing brace
To fix:
1. Validate JSON: cat plugin.json | python3 -m json.tool
2. Fix syntax errors
3. Ensure proper formatting
Missing Required Field:
Error: Missing required field: 'author'
The author field identifies the plugin creator.
To fix - Add to plugin.json:
"author": {
"name": "Your Name",
"email": "you@example.com"
}
Or use string format:
"author": "Your Name"
References
- Plugin schema:
.claude/docs/plugins/plugins-reference.md - OpenPlugins standards:
open-plugins/CONTRIBUTING.md - Best practices:
CLAUDE.mdin project