The Skills module is the catalog of the Skills your organization approves for use by its agents. Each Skill has a stable identity β the name an agent installs it by β and a set of versions, each with its own content package and its own state in the lifecycle.
The split between the two is the heart of the module: the Skill is what the agent asks for, and the version is what it gets. Only the versions you publish are available for consumption; the rest exist here alone, for the people who catalog and review them.
NOTEA newly catalogued Skill starts at version 1.0.0 in Draft and is not available to any agent. It becomes available once a version reaches Published β see Lifecycle.
Learn how to:
The Skills page lists the catalogued Skills with pagination. You can filter by:
Use Search to apply the filters and Clear to reset them.
Columns in the table:
Fill in the three sections of the form β Basic information, Ownership and classification and Skill package (see Form fields).
THE PACKAGE AND THE NAME MUST AGREEThe package needs YAML frontmatter with
nameanddescription, and thenamedeclared there must match the Skill's name. In a.ziparchive, that frontmatter is read from theSKILL.mdat the root.
Click the View icon on the Skill's row. The Skill overview screen has two tabs:
The General info tab shows:
Field | Content |
|---|---|
| ID | The Skill's identifier, with a copy action. |
| Name | The Skill's name. |
| Type | Always Skill in this release. |
| Description | The description on record. |
| Owner | The user or group responsible. |
| Tags | The tags assigned; No tags when there are none. |
| Versions | How many versions exist. |
| Latest | The highest version available for consumption; Not published when there is none. |
| Created by | Who catalogued it; Not recorded when the origin was not captured. |
| Created At / Updated At | Date and time in the user's time zone. |
On the General info tab, click Edit, change the fields and click Save.
THE NAME DOES NOT CHANGEThe name is the Skill's identity: it is the directory the Skill installs into on the consumer's machine, and the API has no field to change it. Description, owner and tags can be edited at any time; the name cannot.
The Versions tab lists every version of the Skill, under the Version, Lifecycle and Updated columns. Select a version to see its content.
For the selected version, the screen shows:
Click Open new version. The form starts from the highest existing version and computes the new number from the increment you pick:
Increment | When to use it |
|---|---|
| Major | A breaking or incompatible change. |
| Minor | New functionality, compatible with what was there. |
| Patch | A bug fix or a small compatible adjustment. |
What changed is required: the reviewer reads it before approving and the consumer before upgrading. An increment that would land on a number that already exists is refused β pick another one.
The new version starts in Draft, with no content; upload the package from the same tab.
A version in Retired never reopens. To carry on from it, select it and click Resume from here: a new version is created in Draft pointing back at the retired one under Derived from. The number is still computed from the Skill's highest version, not from the retired one.
Every version runs through a state machine of its own. The Change status button offers only the destinations the service accepts from the current state; View workflow opens the full diagram, highlighting the current status and the paths available from it.
Status | What it means | Available for consumption |
|---|---|---|
| Draft | The content is editable. | No |
| Pending approval | The content is frozen and under review. | No |
| Approved | Reviewed and immutable, ready to publish. | No |
| Rejected | The review was declined. | No |
| Published | Available to agents. | Yes |
| Unpublished | Taken out of circulation. | No |
| Deprecated | Still available, with a migration warning. | Yes |
| Retired | Ended for good. | No |
When you pick a destination, the screen states the consequence before you confirm β including the effect on the Skill's Latest, which may move to another version or cease to exist.
Reason is optional on most transitions and required when rejecting a version under review.
DEPRECATED IS STILL CONSUMABLEDeprecated does not take the version out of circulation: it is still delivered to anyone who asks for it, carrying the migration warning. To stop delivering it, use Unpublished or Retired.
Each version shows the findings of the check applied to its package, under Security findings, graded Critical, High, Medium and Low. Use the Severity selector to filter β All shows every one.
A finding may belong to a specific file or to the package as a whole, in which case it is marked Package-level check. When the package passes every check, the section shows No findings.
Findings are informative: they do not block a transition. Deciding whether to approve or publish a version that has findings belongs to whoever holds the permission to do it.
Click the Delete Skill icon on the Skill's row and confirm. Deleting removes the Skill and every version under it, and cannot be undone.
A SKILL IN USE IS NOT DELETEDWhile a version is available for consumption β Published or Deprecated β deletion is blocked, and the screen names the version standing in the way. Move that version to Unpublished or Retired before deleting the Skill.
Field | Section | Type | Required | Rules |
|---|---|---|---|---|
| Name | Basic information | Text | Yes | 1β64 characters, lowercase letters, numbers and hyphens only. Example: openapi-linter. It is the directory the Skill installs into and cannot be changed afterwards. |
| Description | Basic information | Text | Yes | The Skill's description, shown in the listing and in search. |
| Owner | Ownership and classification | Searchable select | Yes | The user or group responsible for the Skill. The list comes from Access Control. When users and groups cannot be read, the field accepts free text and the value is stored as given. |
| Tags | Ownership and classification | Tag list | No | Type the tag and press Enter. Used to filter the listing. |
| Package file | Skill package | File | Yes | A .zip archive, or a single .md for a one-file Skill, up to 5 MB. It needs YAML frontmatter with name and description, and that name must match the Skill's β in an archive, read from the SKILL.md at the root. |
Publishing a version makes it available, but it is the agent that fetches it: nothing is pushed to any machine. The agent discovers the catalog, installs what it needs and, at the start of each session, checks what changed.
The recommended path is to expose the catalog as an MCP Server on the AI Gateway itself β the agent then talks to it through the protocol's tools, with no hand-written integration. The step-by-step is in MCP Servers.
Access to each action of the Skills journey depends on its own permission. Without the matching permission, the screen element does not appear β the interface never shows an unavailable action as disabled.
Permissions are granted in Access Control, on the Roles screen, under the AI Gateway product. The table below lists each one exactly as Access Control displays it.
Permission | Group in AC | Description in AC | Identifier |
|---|---|---|---|
| List and View Assets | assets | Allows listing the asset catalog and reading an asset, its versions and the files inside a version | ai-gateway.assets.list-view |
| Create and Update Assets | assets | Allows cataloguing an asset, editing it, opening a version and uploading the version content | ai-gateway.assets.create-update |
| Delete Assets | assets | Allows removing an asset and every version under it, and retiring a version permanently | ai-gateway.assets.delete |
| Submit Assets for Approval | assets | Allows sending a version for review, withdrawing it and returning a rejected version to draft | ai-gateway.assets.lifecycle-submit |
| Approve Assets | assets | Allows approving or rejecting a version submitted for review | ai-gateway.assets.lifecycle-approve |
| Publish Assets | assets | Allows publishing an approved version, taking it out of circulation and deprecating it | ai-gateway.assets.lifecycle-publish |
Action | What it unlocks | Required permissions |
|---|---|---|
| List and view | The Skills item in the side menu; the listing, the Skill overview screen, the versions, the files and the preview | List and View Assets |
| Catalog | The Create Skill button | List and View Assets + Create and Update Assets |
| Edit | The Edit button on the General info tab | List and View Assets + Create and Update Assets |
| Open a version and upload content | The Open new version and Resume from here buttons, and the package upload | List and View Assets + Create and Update Assets |
| Delete a Skill | The Delete Skill icon on the row | List and View Assets + Delete Assets |
In the lifecycle, each transition requires the permission of its own group. The destination you pick is what decides the permission:
Transition to | Required permission |
|---|---|
| Draft, Pending approval | Submit Assets for Approval |
| Approved, Rejected | Approve Assets |
| Published, Unpublished, Deprecated | Publish Assets |
| Retired | Delete Assets |
A control without its permission is not rendered; a Skill reached directly by URL without the matching permission lands on the AI Gateway's own access-denied screen, not Access Control's.
THE SEGREGATION IS DELIBERATEKeeping Submit, Approve and Publish apart lets the person who writes a Skill not be the one who approves it, and the person who approves it not be the one who puts it into circulation. Holding all three in a single profile is possible, but it undoes the review by another person that the lifecycle exists to sustain.
We use cookies to enhance your experience on our site. By continuing to browse, you agree to our use of cookies.Learn more