5.8 KiB
5.8 KiB
Operation: Validate Formats
Validate format compliance for semver, URLs, email addresses, and naming conventions.
Parameters from $ARGUMENTS
- path: Path to plugin directory or marketplace file (required)
- type: Target type:
pluginormarketplace(optional, auto-detect) - strict: Enforce HTTPS for all URLs (optional, default: false)
Workflow
-
Locate Configuration File
Auto-detect or use specified type: Plugin: plugin.json Marketplace: marketplace.json or .claude-plugin/marketplace.json -
Execute Format Validation
Execute .scripts/format-validator.py --file "$config" --type "$type" --strict "$strict" Validates: - Semantic versioning (X.Y.Z) - Lowercase-hyphen naming (^[a-z0-9]+(-[a-z0-9]+)*$) - URL formats (http/https) - Email addresses (RFC 5322 compliant) - License identifiers (SPDX) - Category names (10 approved categories) -
Report Results
For each field: ✅ Valid format ❌ Invalid format with specific error and remediation Summary: - Total fields checked - Passed count - Failed count - Exit code: 0 (all pass) or 1 (any fail)
Format Validation Rules
Semantic Versioning (version field):
- Pattern:
X.Y.Zwhere X, Y, Z are non-negative integers - Valid:
1.0.0,2.5.3,10.20.30 - Invalid:
1.0,v1.0.0,1.0.0-beta(pre-release allowed but optional)
Lowercase-Hyphen Naming (name field):
- Pattern:
^[a-z0-9]+(-[a-z0-9]+)*$ - Valid:
my-plugin,test-marketplace,plugin123 - Invalid:
My-Plugin,test_plugin,plugin.name,-plugin,plugin-
URL Format (homepage, repository fields):
- Must start with
http://orhttps:// - Strict mode: Only
https://allowed - Valid:
https://example.com,http://localhost:3000 - Invalid:
example.com,www.example.com,ftp://example.com
Email Format (owner.email, author.email fields):
- RFC 5322 compliant pattern
- Valid:
user@example.com,name.surname@company.co.uk - Invalid:
user@,@example.com,user example.com
License Identifier (license field):
- SPDX identifier or "Proprietary"
- Common: MIT, Apache-2.0, GPL-3.0, BSD-3-Clause
- Valid:
MIT,Apache-2.0,ISC,Proprietary - Invalid:
mit,Apache 2.0,BSD
Category (category field):
- One of 10 approved categories
- Valid: development, testing, deployment, documentation, security, database, monitoring, productivity, quality, collaboration
- Invalid: coding, devops, tools, utilities
Examples
# Validate plugin formats
/schema-validation formats path:.
# Validate marketplace with strict HTTPS enforcement
/schema-validation formats path:./test-marketplace type:marketplace strict:true
# Validate specific plugin
/schema-validation formats path:./my-plugin type:plugin
Error Handling
- File not found: Show expected locations
- Invalid JSON: Suggest running json validation first
- Format violation: Specific error with correct pattern
- Unknown field: Warn but don't fail
Output Format
Success (all formats valid):
✅ Format Validation: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: plugin.json
Type: plugin
Format Checks (7/7):
✅ name: "my-plugin" (lowercase-hyphen)
✅ version: "1.0.0" (semver)
✅ description: Valid length (73 chars)
✅ license: "MIT" (SPDX identifier)
✅ homepage: "https://example.com" (valid URL)
✅ repository: "https://github.com/user/repo" (valid URL)
✅ category: "development" (approved category)
Status: PASS
Failure (format violations):
❌ Format Validation: FAIL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: plugin.json
Type: plugin
Format Checks (4/7):
❌ name: "My-Plugin"
Invalid: Must use lowercase-hyphen format
Pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
Example: my-plugin, test-tool, plugin123
❌ version: "1.0"
Invalid: Must use semantic versioning (X.Y.Z)
Expected: Three version numbers separated by dots
Example: 1.0.0, 2.1.5
✅ description: Valid (80 characters)
❌ license: "Apache 2.0"
Invalid: Must be SPDX identifier
Expected: Apache-2.0
Valid identifiers: MIT, Apache-2.0, GPL-3.0, BSD-3-Clause
⚠️ homepage: "http://example.com"
Warning: Consider using HTTPS for security
Current: http://example.com
Recommended: https://example.com
✅ repository: "https://github.com/user/repo"
❌ category: "coding"
Invalid: Must be one of 10 approved categories
Valid: development, testing, deployment, documentation,
security, database, monitoring, productivity,
quality, collaboration
Failed: 4
Warnings: 1
Status: FAIL
Action Required:
Fix format violations:
- name: Convert to lowercase-hyphen (my-plugin)
- version: Use semver format (1.0.0)
- license: Use SPDX identifier (Apache-2.0)
- category: Choose approved category (development)
Marketplace Example:
✅ Format Validation: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target: marketplace.json
Type: marketplace
Format Checks (4/4):
✅ name: "enterprise-marketplace" (lowercase-hyphen)
✅ owner.email: "devtools@company.com" (valid email)
✅ metadata.homepage: "https://company.com/plugins" (valid HTTPS URL)
✅ metadata.repository: "https://github.com/company/plugins" (valid HTTPS URL)
Status: PASS
Strict HTTPS: Enforced ✅
Integration
This operation is called by:
full-schema-validation.md- Third validation step after fields checkbest-practicesskill - Naming and versioning validation- Direct user invocation for format checking
Request: $ARGUMENTS