Skip to content

Step-file frontmatter

An llm or confirmation step can read its prompt from a Markdown file. That file may begin with an optional YAML frontmatter block, fenced by ---, followed by the Liquid prompt body:

---
id: greet
description: Generate a personalized greeting
---
Generate a warm, friendly greeting for {{ inputs.name }}.
Keep it to one sentence.

Everything below the closing --- is the prompt template. The frontmatter is optional — a step file with no fence is treated as a pure prompt.

A step points at its file with the file key in skill.yaml. When a step omits file and has no inline message, Skiller looks for the file at steps/NN-<id>.md, where NN is the step’s two-digit position and <id> is the step id. The first step greet resolves to steps/01-greet.md, the second fact step to steps/02-fact.md, and so on.

Set file explicitly to override this convention.

KeyTypeNotes
idstringStep identifier (see note below)
descriptionstringHuman-readable description of the step
toolstringA tool alias the step invokes
toolslistMCP tool aliases the model may call
tool_modeenumauto (model decides) or required (must call a tool)
requireslistStep ids that must run first

tool, tools, tool_mode, and requires are the same step-level options accepted on a manifest step. Declaring them in the step file keeps a step’s tool configuration next to the prompt it governs, rather than splitting it across the manifest. See the skill.yaml reference for what each option does.

Unlike the strict skill.yaml manifest, step-file frontmatter is parsed leniently — an unrecognized key is ignored rather than rejected.