Authoring a skill
A skill is aSKILL.md file: YAML frontmatter plus a Markdown body. Skill bodies are text, not code — they are instructions and reference material, never executed.
SKILL.md
Push and version
Each push creates a new immutable version, content-addressed by a hash over the whole file. An agent references a skill by slug: an unpinned reference (refund-policy) resolves to the latest version at session start, while a pinned reference (refund-policy@3) is frozen to that exact version and never moves.
Pinning a version
Because every push is immutable, you choose per reference whether a skill floats or freezes:
Pushing a new
SKILL.md therefore never silently changes an already-pinned agent; you bump the pin when you’re ready. Use vetta skill versions <slug> to see the numbers you can pin to.
How progressive disclosure works
Skills keep the context window small by loading in two tiers:- Tier 1 — always on. Every attached skill contributes its
nameand a truncateddescriptionto a compact index the agent always sees. The index is capped so dozens of skills cost only a few thousand characters. - Tier 2 — on demand. When the agent decides a skill is relevant, it calls the built-in
read_skilltool to pull the full body into context, with a provenance header identifying the exact version.
Attaching to an agent
CLI
@version to pin it. Updating the array creates a new agent version. Skills survive session deletion — they are independent resources.
Next: files
Where a session’s artifacts live.