Files
app-store-optimization/skills/writing-skills/references/standards/metadata-standard.md

66 lines
1.4 KiB
Markdown

# SKILL.md Metadata Standard
Official frontmatter fields recognized by OpenCode.
## Required Fields
```yaml
---
name: skill-name
description: >-
Use when [trigger condition].
metadata:
triggers: keyword1, keyword2, error-message
---
```
| Field | Rules |
|-------|-------|
| `name` | 1-64 chars, lowercase, hyphens only, must match directory name |
| `description` | 1-1024 chars, should describe when to use |
## Optional Fields
```yaml
---
name: skill-name
description: Purpose and triggers.
metadata:
license: MIT
compatibility: opencode
author: "your-name"
version: "1.0.0"
category: "reference"
tags: "tag1, tag2"
---
```
| Field | Purpose |
|-------|---------|
| `license` | License identifier (e.g., MIT, Apache-2.0) |
| `compatibility` | Tool compatibility marker |
| `metadata` | String-to-string map for custom key-values |
## Name Validation
```regex
^[a-z0-9]+(-[a-z0-9]+)*$
```
**Valid**: `my-skill`, `git-release`, `tdd`
**Invalid**: `My-Skill`, `my_skill`, `-my-skill`, `my--skill`
## Common Metadata Keys
Use these conventions for consistency across skills:
| Key | Example | Purpose |
|-----|---------|---------|
| `author` | `"your-name"` | Skill creator |
| `version` | `"1.0.0"` | Semantic version |
| `category` | `"reference"` | Type: reference, technique, discipline, pattern |
| `tags` | `"react, hooks"` | Searchable keywords |
> [!IMPORTANT]
> Any field not listed here is **ignored** by OpenCode's skill loader.