A skill is a set of instructions an agent reads when a task calls for them, rather than carrying them in its own definition: how to fill a PDF form, how to lay out a spreadsheet, the house style for a report. It is one Markdown file, SKILL.md, in the Agent Skills convention, and it lives in a project as a resource, versioned like a query.

The file

SKILL.md
The body is the instructions, as long as they need to be: an agent loads the file only when it decides to, so a long skill costs nothing until then.

The built-in library

The platform ships a library of skills every agent may name: pdf, docx, xlsx, pptx (reading and producing documents), doc-coauthoring, internal-comms, brand-guidelines, frontend-design, canvas-design, theme-factory, web-artifacts-builder, webapp-testing, mcp-builder, skill-creator (how to write a skill). GET /agents/tools lists them under skills.

Skills of a project

A project adds its own skills as resources: POST /skills with the text (definition, the whole file) or the structured fields (name, description, instructions, …); GET /skills?project_id=, GET /skills/{id}, PATCH, DELETE, POST .../restore; the history under GET /skills/{id}/versions. Like a query, the file lives on the organization’s storage with one copy per data branch (?branch=). The resource’s name and description are the file’s: renaming the resource rewrites the frontmatter, and a skill handed to an agent is named after the resource, never after a pasted file’s frontmatter.

In an agent

An agent names the skills it may load in its definition, built-in by name, project skills by slug or id:
A project skill named like a built-in one replaces it for that agent. At the start of a run the platform reads each bound skill and hands the model the library plus those, with their descriptions; the model loads a skill with load_skill when a task matches. Typing /skill quarterly-report … at the start of a message loads it before answering, whatever the task. Klara, the built-in assistant, gets the library plus every skill of the project it works in that the caller may read.
These endpoints are served by the platform and used by the Atlas interface; they are being opened on the public gateway progressively, and the Python library does not wrap them yet. The API reference lists what the gateway exposes today.