Skip to main content
Skills are first-class in the composer: declare them under skills: and reference them from an agent’s skills: list. See Composer → skills: for the YAML shape (inline content / directory / MCP-hosted).
Skills are reusable instruction blocks that an agent can discover and load at runtime. orxhestra supports the Agent Skills Protocol — the open standard adopted by Claude Code, Cursor, Gemini CLI, and 30+ other tools.

Progressive Disclosure (3-Tier Model)

Skills use progressive disclosure to minimize token cost: The agent browses the catalog (L1), loads instructions when relevant (L2), and fetches resource files only when needed (L3).

Inline Skills

The simplest way to define skills — no files needed:

Directory Skills (Agent Skills Protocol)

For richer skills with resources, use the standard directory layout:

SKILL.md Format

Loading Directory Skills

On-Demand Resource Loading (L3)

Directory skills can include resource files that the agent loads on demand:
When the agent calls load_skill("code-review"), it sees:
  • Full instructions from SKILL.md
  • Allowed tools, compatibility info
  • A list of available resources (e.g. scripts/lint.sh, references/style-guide.md)
It can then call load_skill_resource("code-review", "scripts/lint.sh") to fetch a specific file.
Resource loading includes path traversal protection — resolved paths must stay within the skill’s base directory.

Skill Models

SkillFrontmatter

Parsed from the YAML header in SKILL.md:

SkillResource

A pointer to a file within the skill directory:

Composer YAML

Skills can be defined inline, loaded from MCP, or loaded from a directory:
Custom backends — Implement BaseSkillStore for any backend (database, API, vector store).