Publish a new version of a skill
Mints a new immutable version from an uploaded zip or a SKILL.md document and returns it, because an author who just published needs the version id to pin an agent to it. Sessions already running keep the version they froze. base_skill_version_id must be the skill’s current latest_skill_version_id or the request is rejected with 409 revision_conflict, so the caller can re-read and retry rather than silently racing another writer. Every field is full content, there is no partial-update or omit-to-inherit semantics, so an omitted display_title or metadata is cleared rather than kept. Filing is not published here — a skill keeps the group it is in, and skill_group_id is rejected rather than ignored; move a skill between groups with updateSkill, which refiles without minting a version.
Authorizations
A Recursion API key, created in the console under API keys.
Path Parameters
Skill id (UUID) as returned by createSkill or listSkills.
Body
Request body for creating a new immutable skill version. Every field means what it means on createSkill -- full content is always required, there is no partial update. base_skill_version_id must be the skill's current version or the request is rejected with revision_conflict so the caller can re-read and retry.
The skill's current latest_skill_version_id, as returned by getSkill. Rejected with 409 revision_conflict if the skill has moved past this version.
The complete SKILL.md: YAML frontmatter delimited by --- on the very first line, then Markdown instructions. name and description are required in the frontmatter and are read from it.
Human-readable title for listings. Defaults to the frontmatter name.
Relative paths of files bundled with the skill, listed to the model when it activates the skill. Paths must stay inside the skill directory.
Caller-owned key/value data stored with the skill and returned unchanged.
Response
An immutable snapshot of a skill's document and metadata, minted on every update. An agent may pin one, so that what a session runs cannot change under it.
An immutable snapshot of a skill's document and metadata, minted on every update. An agent may pin one, so that what a session runs cannot change under it.
Server-assigned RFC 3339 timestamp of when this version was minted.
The skill's routing description as it stood at this version.
The skill's addressable name as it stood at this version.
Organization that owns this record. Resolved from the API key; never accepted from the caller.
Skill this version belongs to.
Identifier for this skill version. Server-assigned. Pass it when attaching a skill that must stay pinned to a specific revision.
Monotonically increasing version counter within the skill, starting at 1. Server-assigned.
SHA-256 checksum of the stored document.
The files bundled with this version, and the archive they are mounted from. Absent for a version that carries only a document.
Identifier of the caller that minted this version.
Path of the document within the bundle. SKILL.md unless the author moved it.
Relative paths of files bundled with the skill. Listed to the model at activation; read only if it uses them.
The parsed SKILL.md frontmatter as authored, including fields this platform does not interpret.
The skill's full Markdown instructions. Returned only when reading a single version, since a listing has no use for it.
Caller-owned key/value data stored with this version and returned unchanged.