# Skills A skill provides reference documentation for a specific tool or service. Skills are used by tasks to accomplish their goals. Each skill lives in its own directory under `skills/` and is defined by a `SKILL.md` file. ## File Structure ``` skills/ / SKILL.md ``` ## SKILL.md Format A skill file has two parts: **frontmatter** (YAML metadata) and **body** (Markdown documentation). ### Frontmatter ```yaml --- name: skill-name description: What this skill does and when to use it. --- ``` #### Fields | Field | Type | Required | Description | |-------|------|----------|-------------| | `name` | string | yes | Identifier for the skill. | | `description` | string | yes | What the skill does and when to use it. Should include trigger phrases (e.g., "Use when the user wants to..."). | ### Body The body contains reference documentation for the tool or service. The structure varies depending on the type of skill, but typically includes: - **Title** — `# Skill Name` - **Overview** — What the tool is and how it works. - **Usage** — How to invoke the tool (endpoints, CLI synopsis, etc.). - **Parameters/Options** — Detailed reference tables. - **Examples** — Common usage patterns and recipes. - **Source** — Links to official documentation and repositories. ### Existing Skills | Skill | Type | Description | |-------|------|-------------| | `whisper.cpp` | HTTP API | Speech-to-text transcription via a local whisper.cpp server. | | `ffmpeg` | CLI | Audio/video processing, conversion, and analysis. |