# 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-name>/
    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. |
