Skip to Content
DocsSkillsSKILL.md format

SKILL.md format

A skill is a directory containing one required file (SKILL.md) plus optional supporting files. The format matches Anthropic’s Agent Skills spec.

Directory layout

skills/my-skill/ ├── SKILL.md ← required: frontmatter + markdown body ├── tools.py ← OPTIONAL: @tool functions (Mode B) ├── scripts/ ← OPTIONAL: executable scripts (Mode A or C) │ └── helper.py └── reference.md ← OPTIONAL: extra markdown the body links to

Frontmatter

--- name: standup-format description: Format a daily standup from rough notes. --- # Body in regular markdown follows.
FieldRequiredDescription
nameyesIdentifier shown to the model. Must be unique within a skills=[...] list.
descriptionyesOne-sentence summary the model uses to decide whether to load the skill.
toolsnoMode C. Declares scripts as typed tools. See Three skill modes.

What the model sees at startup

Available skills: - standup-format: Format a daily standup from rough notes. - code-review: Run a security-focused code review pass. - meeting-notes: Turn raw transcript into structured notes.

About 50 tokens per skill. The model calls load_skill(name) when the user’s request matches one. At that point the full SKILL.md body lands in the conversation.

Body conventions

The body is regular markdown. There’s no required structure, but useful patterns:

  • Lead with the goal. “When the user wants X, do Y.”
  • List the steps. Numbered. Concrete.
  • Reference bundled files. See ./reference.md for the full rubric — the agent can read_tool them on demand.
  • End with examples of input → output.

Bundled files

The agent reads bundled files via the standard read_tool / bash_tool it already has. Skills don’t need a new filesystem abstraction. If your SKILL.md says “see ./checklist.md for the full list,” the agent will issue a read_tool(path="checklist.md") call relative to the skill’s directory.

Skills are not auto-loaded into context. The name + description land in the system prompt; the body lands in context only when the model calls load_skill. This is the “progressive disclosure” property that lets you ship 50+ skills without blowing up context.

Last updated on