Skip to main content
Prompts get unwieldy when you pack every instruction into the system message. Skills solve this. They are lazy-loaded instruction packages that keep your initial context window small while providing deep expertise on demand.

How Skills Work

Skills are text documents parsed as Markdown, with a name, description, and body of instructions. At prompt render time, Output builds a summary of available skills and adds it to the system message. The LLM decides which skills are relevant for the task and loads them when necessary.

Providing Skills

List skill paths in the prompt YAML frontmatter. Paths can be individual files of any extension or directories, resolved relative to the prompt file. Explicit files are loaded regardless of extension; directory scans load only .md files. A skills/ folder next to the prompt is not loaded unless you list it.
writing_assistant@v1.prompt
List skill paths in the prompt YAML frontmatter. Skills add a load_skill tool, so set maxSteps in the same frontmatter when the default of 10 is wrong. Omit skills (or set skills: []) when a prompt should load none. That is the default: a sibling skills/ folder used by other prompts in the same directory is not inherited.

Skill File Format

Skill files are parsed as Markdown documents with an optional YAML frontmatter block:
clarity_guidelines.md
If you omit the frontmatter entirely, the filename without a trailing .md is used as both the name and description. Other extensions are retained, so tone.txt defaults to name: "tone.txt" and description: "tone.txt". Write good descriptions. They’re what the LLM uses to decide whether to load a skill. “Rules for writing clear, readable technical content” is better than “clarity_guidelines”.