4.7 KiB
4.7 KiB
Operation: Check Required Fields
Verify all required fields are present and non-empty in plugin or marketplace configuration.
Parameters from $ARGUMENTS
- path: Path to plugin directory or marketplace file (required)
- type: Target type:
pluginormarketplace(required) - strict: Fail on missing recommended fields (optional, default: false)
Workflow
-
Detect Target Type
IF type not specified: Auto-detect based on path structure: - Has plugin.json → plugin - Has marketplace.json or .claude-plugin/marketplace.json → marketplace - Otherwise → error -
Locate Configuration File
For plugin: Check: <path>/plugin.json For marketplace: Check: <path>/marketplace.json OR: <path>/.claude-plugin/marketplace.json IF not found: Return error with searched paths -
Execute Field Validation
Execute .scripts/field-checker.sh "$config_file" "$type" "$strict" Returns: - List of required fields: present ✅ or missing ❌ - List of recommended fields: present ✅ or missing ⚠️ - Overall status: PASS or FAIL -
Aggregate Results
Count: - Required missing: critical errors - Recommended missing: warnings IF any required missing: Exit with status 1 IF strict mode AND any recommended missing: Exit with status 1 Otherwise: Exit with status 0
Required Fields by Type
Plugin (from plugin.json):
name(string, lowercase-hyphen format)version(string, semver X.Y.Z)description(string, 50-200 characters)author(string or object with name field)license(string, SPDX identifier)
Marketplace (from marketplace.json):
name(string, lowercase-hyphen format)owner(object with name field)owner.name(string)owner.email(string, valid email format)plugins(array, at least one entry)
Recommended Fields
Plugin:
repository(object or string, source code location)homepage(string, documentation URL)keywords(array, 3-7 relevant keywords)category(string, one of 10 approved categories)
Marketplace:
version(string, marketplace version)metadata.description(string, marketplace purpose)metadata.homepage(string, marketplace documentation)metadata.repository(string, marketplace source)
Examples
# Check plugin required fields
/schema-validation fields path:. type:plugin
# Check marketplace with strict mode (fail on missing recommended)
/schema-validation fields path:./test-marketplace type:marketplace strict:true
# Auto-detect type
/schema-validation fields path:.
Error Handling
- File not found: List all searched paths
- Invalid JSON: Suggest running json validation first
- Unknown type: Show valid types (plugin, marketplace)
- Empty field: Report which field is present but empty
Output Format
Success (all required present):
✅ Required Fields Validation: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: plugin.json
Type: plugin
Required Fields (5/5):
✅ name: "my-plugin"
✅ version: "1.0.0"
✅ description: "My awesome plugin"
✅ author: "Developer Name"
✅ license: "MIT"
Recommended Fields (3/4):
✅ repository: Present
✅ homepage: Present
✅ keywords: Present
⚠️ category: Missing (improves discoverability)
Status: PASS
Warnings: 1 (non-blocking)
Failure (missing required):
❌ Required Fields Validation: FAIL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: plugin.json
Type: plugin
Required Fields (3/5):
✅ name: "my-plugin"
❌ version: Missing (REQUIRED - use semver X.Y.Z)
✅ description: "My plugin"
❌ license: Missing (REQUIRED - use MIT, Apache-2.0, etc.)
✅ author: "Developer"
Critical Issues: 2
Status: FAIL
Action Required:
Add missing required fields to plugin.json:
- version: "1.0.0"
- license: "MIT"
Marketplace Example:
✅ Required Fields Validation: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: marketplace.json
Type: marketplace
Required Fields (5/5):
✅ name: "my-marketplace"
✅ owner.name: "DevTools Team"
✅ owner.email: "devtools@example.com"
✅ plugins: Array with 3 entries
Status: PASS
Integration
This operation is called by:
full-schema-validation.md- Second validation step after JSON syntaxvalidation-orchestrator- Comprehensive validation checks- Direct user invocation for field checking
Request: $ARGUMENTS