6.1 KiB
6.1 KiB
Operation: Check Plugin Entries
Validate plugin entries in marketplace configuration for completeness and format compliance.
Parameters from $ARGUMENTS
- marketplace: Path to marketplace.json file (required)
- strict: Require all recommended fields in plugin entries (optional, default: false)
- index: Validate specific plugin entry by index (optional, validates all if not specified)
Workflow
-
Load Marketplace Configuration
Locate marketplace.json: - Direct path: <marketplace> - Relative: <marketplace>/marketplace.json - Claude plugin: <marketplace>/.claude-plugin/marketplace.json Validate JSON syntax first -
Extract Plugin Entries
Parse plugins array from marketplace.json Count total entries Determine which entries to validate (all or specific index) -
Validate Each Plugin Entry
For each plugin entry, execute .scripts/schema-differ.sh Check required fields: - name (string, lowercase-hyphen) - source (string, valid format: ./path, github:, https://) - description (string, non-empty) Check recommended fields: - version (string, semver) - author (string or object) - keywords (array, 3-7 items) - license (string, SPDX identifier) Validate field formats: - name: lowercase-hyphen pattern - version: semantic versioning - source: valid source format - license: SPDX identifier -
Aggregate Results
Per-entry summary: - Entry index - Plugin name - Status: PASS/FAIL - Missing required fields - Missing recommended fields - Format violations Overall summary: - Total entries - Passed count - Failed count - Total issues
Plugin Entry Required Fields
name: Unique plugin identifier (lowercase-hyphen)source: Where to locate plugin (./path, github:user/repo, https://url)description: Brief plugin description (non-empty)
Plugin Entry Recommended Fields
version: Plugin version (semver)author: Plugin author (string or object)keywords: Search keywords (array of 3-7 strings)license: License identifier (SPDX)homepage: Documentation URLrepository: Source code URL
Source Format Validation
Relative Path:
- Pattern:
./or../ - Example:
./plugins/my-plugin
GitHub Format:
- Pattern:
github:owner/repo - Example:
github:anthropics/claude-plugin
Git URL:
- Pattern:
https://...git - Example:
https://github.com/user/plugin.git
Archive URL:
- Pattern:
https://....(zip|tar.gz|tgz) - Example:
https://example.com/plugin.zip
Examples
# Validate all plugin entries in marketplace
/schema-validation entries marketplace:./test-marketplace
# Validate with strict mode (require recommended fields)
/schema-validation entries marketplace:marketplace.json strict:true
# Validate specific plugin entry by index
/schema-validation entries marketplace:marketplace.json index:0
Error Handling
- Marketplace not found: Show searched paths
- Invalid JSON: Suggest running json validation
- No plugins array: Error - required field
- Empty plugins array: Warning - marketplace has no plugins
- Invalid index: Error with valid range
Output Format
Success (all entries valid):
✅ Plugin Entries Validation: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Marketplace: ./test-marketplace/marketplace.json
Total Entries: 3
Entry 0: code-review ✅
Required (3/3):
✅ name: "code-review"
✅ source: "./plugins/code-review"
✅ description: "Automated code review..."
Recommended (4/4):
✅ version: "2.0.0"
✅ author: Present
✅ keywords: 3 items
✅ license: "MIT"
Entry 1: deploy-tools ✅
Required (3/3):
✅ name: "deploy-tools"
✅ source: "github:company/deploy"
✅ description: "Deployment automation..."
Recommended (3/4):
✅ version: "1.5.0"
✅ author: Present
⚠️ keywords: Missing
Entry 2: security-scan ✅
Required (3/3):
✅ name: "security-scan"
✅ source: "https://example.com/plugin.zip"
✅ description: "Security vulnerability scanning..."
Summary:
Total: 3 entries
Passed: 3 (100%)
Failed: 0
Warnings: 1 (non-blocking)
Status: PASS
Failure (validation errors):
❌ Plugin Entries Validation: FAIL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Marketplace: marketplace.json
Total Entries: 2
Entry 0: my-plugin ❌
Required (2/3):
❌ name: "My-Plugin"
Invalid: Must use lowercase-hyphen format
Expected: my-plugin
❌ source: Missing (REQUIRED)
✅ description: "My awesome plugin"
Recommended (1/4):
✅ version: "1.0.0"
❌ author: Missing
❌ keywords: Missing
❌ license: Missing
Issues: 5 (2 critical, 3 warnings)
Entry 1: test-tool ✅
Required (3/3):
✅ name: "test-tool"
✅ source: "./plugins/test-tool"
✅ description: "Testing utilities"
Recommended (2/4):
⚠️ version: Missing
⚠️ author: Missing
Summary:
Total: 2 entries
Passed: 1 (50%)
Failed: 1 (50%)
Critical Issues: 2
Warnings: 5
Status: FAIL
Action Required:
Fix plugin entry #0 (my-plugin):
- Change name to lowercase-hyphen: "my-plugin"
- Add source field: "./plugins/my-plugin"
- Consider adding: author, keywords, license
Empty Marketplace:
⚠️ Plugin Entries Validation: WARNING
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Marketplace: marketplace.json
⚠️ No plugin entries found
- plugins array is empty
- Add at least one plugin entry to marketplace
Status: WARNING (empty marketplace)
Integration
This operation is called by:
full-schema-validation.md- When validating marketplace typevalidation-orchestrator- Marketplace comprehensive validation- Direct user invocation for plugin entry checking
Request: $ARGUMENTS