Files
leo-claude-mktplace/.claude/skills/claude-plugin-developer/references/manifest-schema.md
lmiranda ba599e342e refactor: update repository URL and rebrand to Bandit Labs
- Update git remote to new Tailscale hostname
- Replace old organization name (hhl-infra) with bandit
- Replace old repository name (claude-code-hhl-toolkit) with support-claude-mktplace
- Update all documentation references to use generic gitea.example.com
- Rebrand from HyperHive Labs to Bandit Labs across all files
- Rename workspace file to match new repository name

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 11:51:13 -05:00

201 lines
4.0 KiB
Markdown

# Plugin Manifest Schema
Complete JSON schema reference for `.claude-plugin/plugin.json` files.
## Required Fields
### Basic Information
```json
{
"name": "string",
"version": "string",
"description": "string",
"author": {
"name": "string",
"email": "string (optional)",
"url": "string (optional)"
}
}
```
### Field Specifications
#### name
- **Type**: string
- **Pattern**: `^[a-z][a-z0-9-]*$`
- **Description**: Plugin identifier in kebab-case
- **Example**: `"deploy-tools"`
#### version
- **Type**: string
- **Format**: Semantic versioning (MAJOR.MINOR.PATCH)
- **Example**: `"1.0.0"`
#### description
- **Type**: string
- **Max length**: 200 characters
- **Purpose**: Brief explanation of plugin functionality
#### author
- **Type**: object
- **Required**: name field
- **Optional**: email, url fields
## Optional Fields
### Dependencies
```json
{
"dependencies": {
"node": ">=18.0.0",
"python": ">=3.9",
"docker": ">=20.0.0"
}
}
```
### Configuration
```json
{
"config": {
"default_shell": "bash",
"require_safety_check": true,
"environment": {
"NODE_ENV": "production",
"PLUGIN_HOME": "${CLAUDE_PLUGIN_ROOT}"
}
}
}
```
### Permissions
```json
{
"permissions": {
"file_access": ["read", "write"],
"network_access": true,
"shell_access": true
}
}
```
### Scripts
```json
{
"scripts": {
"install": "npm install",
"test": "npm test",
"build": "npm run build"
}
}
```
## Complete Example
```json
{
"name": "deploy-automation",
"version": "2.1.0",
"description": "Automated deployment tools for cloud platforms",
"author": {
"name": "Bandit Labs",
"email": "plugins@hyperhivelabs.com",
"url": "https://hyperhivelabs.com"
},
"license": "MIT",
"keywords": ["deployment", "automation", "cloud", "devops"],
"homepage": "https://github.com/hyperhivelabs/deploy-automation",
"repository": {
"type": "git",
"url": "https://github.com/hyperhivelabs/deploy-automation.git"
},
"bugs": {
"url": "https://github.com/hyperhivelabs/deploy-automation/issues"
},
"dependencies": {
"node": ">=18.0.0",
"aws-cli": ">=2.0.0",
"terraform": ">=1.0.0"
},
"config": {
"default_shell": "bash",
"require_safety_check": true,
"timeout": 300,
"environment": {
"DEPLOY_ENV": "production",
"LOG_LEVEL": "info"
}
},
"permissions": {
"file_access": ["read", "write"],
"network_access": true,
"shell_access": true,
"env_access": ["AWS_*", "DEPLOY_*"]
},
"scripts": {
"install": "./scripts/install.sh",
"test": "./scripts/test.sh",
"validate": "./scripts/validate.sh"
}
}
```
## Validation Rules
### Name Validation
- Must start with lowercase letter
- Can contain lowercase letters, numbers, hyphens
- Cannot end with hyphen
- Cannot contain consecutive hyphens
- Length: 2-40 characters
### Version Validation
- Must follow semantic versioning
- Format: `MAJOR.MINOR.PATCH`
- Optional pre-release: `-alpha`, `-beta`, `-rc.1`
- Optional build metadata: `+build.123`
### Description Validation
- Required field
- Maximum 200 characters
- Should describe what the plugin does
- Should include primary use cases
### Author Validation
- Name is required
- Email must be valid format if provided
- URL must be valid HTTP(S) URL if provided
## Security Considerations
### Restricted Fields
These fields require special marketplace approval:
```json
{
"privileged": true,
"system_access": true,
"unrestricted_network": true
}
```
### Environment Variables
- Use `${CLAUDE_PLUGIN_ROOT}` for plugin paths
- Never hardcode sensitive data
- Document all required env vars
### Path Resolution
- All paths relative to plugin root
- No parent directory traversal (`../`)
- No absolute paths unless documented
## Migration Guide
### From v1 to v2
- Add `author` object (previously string)
- Update `dependencies` format
- Add `permissions` field
### Legacy Support
- Old manifests auto-upgraded
- Deprecation warnings shown
- Grace period: 6 months