Skip to main content
Manage skills — persisted, versioned expertise loaded with progressive disclosure.

Commands

push

Each push is content-addressed by a hash over the whole file, so an identical push is a no-op and any change creates a new immutable version.

push-version

push is addressed at a slug and creates the skill when that slug is unknown. push-version is addressed at a skill that already exists — by id or by slug — and answers 404 not_found when it does not. A release pipeline pinned to a skill id wants this one, so a rename cannot silently mint a second skill.
An unknown skill is a hard error rather than a create — that is the entire difference from push:
The same operation is client.skills.pushVersion in the SDK and POST /v1/skills/{id}/versions in the API reference.

Attaching to an agent

Skills are referenced on the agent by slug. A bare slug floats to the latest version at session start; a slug@N reference pins an immutable version that never moves when someone pushes a new SKILL.md:
Here refund-policy@3 is frozen to version 3 for reproducibility, while escalation-matrix resolves to the latest version at session start. Use vetta skill versions <slug> to see the pinnable version numbers. A naive/ prefix names the platform catalogue instead of your organization’s skills: naive/landing-page-copy floats and naive/landing-page-copy@1 pins, with the same rules. Your own landing-page-copy and the platform’s never collide.

catalog

The platform publishes a small catalogue of skills any agent can reference as naive/<slug>. Without a slug, catalog lists the newest version of each; --tag narrows it to one family (agency, seo, media, …) and --search is free text over the slug, name and description.
With a slug it prints the latest version including its content — the text a floating naive/<slug> ref hands an agent today. The version in the answer is the number to pin.
The same reads are client.skills.catalog.list(), client.skills.catalog.get() and client.skills.catalog.retrieve() in the SDK and GET /v1/skills/catalog in the API reference.

version

vetta skill versions lists the version numbers; vetta skill version returns one of them in full, and it is the only command that returns the skill’s content. That split is deliberate — a history listing stays small no matter how large the skills are.
The sha256 is over the content exactly as stored, so a pin of slug@N is reproducible: re-pushing identical bytes is a no-op and mints no new version.