Writing Skills
Author skills that Kasetto can sync.
Skills are just directories with a SKILL.md file inside. Here's how to structure yours and what Kasetto looks for.
Directory Layout
Kasetto discovers skills from the source root and from skills/:
Kasetto picks up:
- A top-level
SKILL.md(installed using the repo name, orsub-dirbasename). - Any root-level subdirectory containing
SKILL.md. - Any
skills/<name>/SKILL.mdsubdirectory.
Directory names are used as skill identifiers for folder-based skills.
SKILL.md is required. Directories without one are silently skipped.
SKILL.md Format
SKILL.md is a markdown file. YAML frontmatter is optional but gives you control over how the skill appears in kst list:
Frontmatter Fields
| Field | Required | Description |
|---|---|---|
name | no | Display name shown in kst list and kst doctor |
description | no | Short description shown in the interactive browser |
Both are optional. If you skip them, Kasetto parses the markdown body instead:
- Name: First
#heading in the document, or the directory name if no heading exists. - Description: First non-empty, non-heading paragraph, or
"No description."if none found.
Minimal Example
No frontmatter? No problem:
Kasetto uses "My Skill" as the display name and the first paragraph as the description.
Referencing Skills in Config
Reference skills by their directory name in kasetto.yaml:
Want everything from a source? Use "*":
Custom Source Path
If a skill lives somewhere non-standard within the repo, point to it with the path field:
Limiting Discovery to a Nested Directory
If your skills live under a nested plugin folder, set sub-dir on the source:
Kasetto treats plugins/swift-apple-expert as the source root for discovery.