Skill Manifest
Skill Manifest
Section titled “Skill Manifest”The skill_manifest.yaml file defines your skill metadata, capabilities, and configuration.
Full specification
Section titled “Full specification”# Required fieldsname: my-skill # kebab-case, lowercaseversion: 1.0.0 # semver formatauthor: your-name # kebab-case, lowercasedescription: Short description # 1-2 sentences
# Optional fieldslicense: MITrepository: https://github.com/you/my-skillkeywords: - analysis - datacapabilities: - custom-analysis - data-processingpermissions: - file_read - network_outboundtags: - utility - beginner-friendlyentry_point: main:MySkill # module:ClassName format
# Dependenciesdependencies: - name: kazma-core version: ">=0.1.0" - name: httpx version: ">=0.27.0" optional: true
# MCP server configurationmcp_servers: - name: my-mcp-server type: stdio command: ["python", "-m", "my_mcp_server"] env: API_KEY: "${MY_API_KEY}"
# Skill-specific configconfig: default_model: openai/gpt-4o-mini max_retries: 3 timeout_seconds: 30Field reference
Section titled “Field reference”| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Kebab-case skill name |
| version | Yes | string | Semver version |
| author | Yes | string | Author identifier |
| description | Yes | string | Short description |
| license | No | string | SPDX license identifier |
| capabilities | No | list | Capabilities this skill provides |
| permissions | No | list | Required permissions |
| tags | No | list | Discovery tags |
| entry_point | No | string | Module:ClassName entry point |
| dependencies | No | list | Required packages |
| mcp_servers | No | list | MCP server configs |
Validation
Section titled “Validation”The manifest is validated by SkillManifest.validate():
from kazma_core.hub.manifest_schema import SkillManifest
manifest = SkillManifest.from_dict(data)result = manifest.validate()
if result.passed: print("Manifest is valid")else: for error in result.errors: print(f"Error: {error}")Validation checks:
- Name is kebab-case and lowercase
- Version is valid semver
- All required fields present
- Permissions are in the allowed list
- Entry point module exists (if specified)