Skip to main content
A skill is a directory bundle — a SKILL.md primary plus any declared companion files — containing domain-specific instructions, guidelines, or best practices. Skills follow the Agent Skills specification. They are the passive knowledge layer of a facet — text that shapes how an AI assistant approaches a domain without defining a persona or a user-invokable action. Each skill lives in its own directory at skills/<name>/SKILL.md and is declared in facet.json under the skills map. The normative rules — placement, descriptor shape, and the no-front-matter contract — live at Text assets in the manifest specification.

Example

A “code-review” skill (skills/code-review/SKILL.md):
skills/code-review/SKILL.md

Companion files

A skill can ship more than its SKILL.md. Declare companion files — references, scripts, templates — in the skill descriptor’s files array, as exact paths relative to the skill directory:
Companions ship inside the archive and install and remove atomically with their skill; files you add to a skill directory yourself are left untouched on removal. They ship as opaque bytes (binary and empty files are fine), the skill name is still a single segment (the / in a companion path is directory depth, not part of the name), and a companion can’t be SKILL.md itself. See Supplementary files for the full rules.

When to use skills

Skills are passive knowledge — they inform how the assistant thinks and works but do not define who it is or what the user can invoke. Use skills for:
  • Coding standards and conventions
  • Review checklists
  • Domain-specific guidelines (API design, security practices, accessibility)
  • Framework best practices
Use agents when you need to define a persona with a specific role and behavior. Use commands when you need a user-invokable workflow that performs a specific task.

Further reading