How to Version and Roll Back AI Agent Skills Across a Team
TL;DR
- AI agent skills are reusable
SKILL.mdfolders that give coding agents like Claude Code and Codex domain-specific instructions, and teams accumulate dozens of them fast once more than one person is writing skills. - Bifrost's Skills Repository lets a team create, publish, and version agent skills from a central dashboard instead of copy-pasting
SKILL.mdfiles between machines. - Every save creates an immutable version using SemVer (
MAJOR.MINOR.PATCH), and older versions stay available even after a newer one is published. - Rolling back means shifting which version is served, not deleting anything: pick an older version from the version history and shift to it, and newer versions remain in the history for later.
- Registering Bifrost as a marketplace exposes each skill as its own installable plugin in Claude Code and Codex, so a team installs and updates skills the same way it installs any other plugin.
Agent skills solve a specific problem: a team writes a workflow once, in a SKILL.md file, and every AI coding agent that supports Agent Skills can load it on demand instead of the workflow being re-explained in every conversation. The problem that shows up next is operational, not technical. Once five engineers are each maintaining their own skills, "which version of the deploy-checklist skill is everyone actually running" stops being a rhetorical question. Bifrost, the open-source AI gateway built by Maxim AI and available on GitHub, addresses this with a Skills Repository that versions every skill with SemVer and lets a team roll the served version forward or back from one place. This guide covers how that versioning and rollback model works end to end.
What Are Agent Skills?
An agent skill is a portable folder containing a SKILL.md file plus any scripts, templates, or reference material an AI agent needs to perform a specific, repeatable task. Google Cloud describes agent skills as reusable packages of instructions and context that extend an agent's capabilities without bloating its base system prompt, and the open Agent Skills specification defines the shared folder format that Claude Code, Codex, and other skill-aware agents all read.
The appeal is straightforward: instead of re-explaining a deploy process, a code-review checklist, or a compliance workflow in every new conversation, a team writes it once as a skill, and any compatible agent loads it when the task matches. The complication is equally straightforward: a skill is a file a person edits, and files a person edits need version history the moment more than one person depends on them.
The Claude Skills explainer covers how Anthropic's implementation of the pattern works in more depth; this guide picks up from there and focuses specifically on managing skills as a team, not writing an individual one. Skills are one of two ways Bifrost extends what an agent can do at runtime; the other is connecting to external tool servers over MCP, which solves a related but distinct problem, giving an agent live actions rather than packaged instructions.
Why Version Agent Skills Across a Team
A skill that only one person edits does not need a version history; a shared skill does, for the same reason shared code does. Someone changes the deploy-checklist skill to add a new rollback step, and three other engineers are still running the version without it. Someone tightens the wording of a compliance skill and it breaks a workflow that depended on the old phrasing. Without a version history, the only way to answer "what changed and when" is to compare SKILL.md files by hand.
Bifrost's Skills Repository treats every published skill the way a package registry treats a library: each save produces a new, immutable version, the currently served version is explicit rather than implied, and the full history stays inspectable. That turns "which version is everyone running" from a Slack thread into a dashboard lookup. Publishing and editing a skill are authenticated and permission-gated actions, so a team can decide who is allowed to change a shared skill without restricting who can install one, and audit logs record every version change with a timestamp and an actor for later review.
How Agent Skill Versioning Works
Skill versions in Bifrost follow SemVer: MAJOR.MINOR.PATCH, with an optional suffix such as -beta.1 for pre-release iterations. The bump you choose signals what changed.
| Bump | Use for |
|---|---|
| Patch | Typo fixes, clearer instructions, small changes safe for existing users |
| Minor | New behavior, new files, or backward-compatible improvements |
| Major | Breaking changes, removed workflows, renamed required files |
| Suffix | Pre-release or iteration labels; a different suffix still counts as a new version |
Version numbers only move forward. If 3.0.0 has already been published, a later version has to be greater than or compatible with it, such as 3.0.1 or 4.0.0, even if an older version is what is currently being served. A skill's name is locked at creation, since it is the stable identifier that marketplace plugin names and install URLs are built from; everything else, the description, frontmatter, SKILL.md body, and attached files, can change from version to version. The full SemVer rules for skills live alongside the rest of the Skills Repository documentation, and the same discipline extends to any Bifrost CLI agent integration that consumes a skill's version metadata.
Publishing and Updating a Skill
Creating a skill happens from the Bifrost dashboard's Skills Repository: fill in the name, description, and optional license and compatibility fields, write the SKILL.md body in the markdown editor, attach any supporting files, and choose a version number in the dialog that appears when you click Create Skill. That publishes the first immutable version and serves it immediately.
Updating an existing skill works the same way, through Add New Version, with one decision that matters for a team: whether the new version becomes the one agents actually install.
| Action | Result |
|---|---|
| Save | Creates a new version, but the currently served version stays unchanged |
| Save & Serve | Creates a new version and makes it the one users install from the marketplace |
Save without serving is the useful option for staging a change: publish 2.1.0, let one person test it, and only switch the team over once it checks out. Storage stays efficient across all of this. Bifrost copies only the lightweight metadata (the SKILL.md content, frontmatter, and file paths) for each new version; the underlying file objects are shared across versions unless the content of a file actually changes, so publishing many versions of a skill with large attached files does not multiply storage.
This staging step is where team access control matters most, since the same access-gated dashboard that governs which engineers can call which models is the one deciding who can push a new skill version live.
Rolling Back a Skill Version
A rollback in Bifrost's Skills Repository is a change to which version is served, not a deletion. Every saved version stays in the skill's version history, searchable by version string, and rolling back means opening that history and shifting the served pointer to an earlier entry.
The mechanics matter here: shifting to an older version does not remove the newer ones, and the next version you publish still has to be numbered ahead of the highest version ever created, not just ahead of the one currently being served. If a team had published up to 3.0.0 and then shifts back to serve 1.0.0 after finding a regression, the next new version still needs to be 3.0.1, 3.1.0, or 4.0.0, not 1.0.1 or 2.0.0. That rule keeps version numbers meaningful even after a rollback: 3.0.0 still means what it meant before, for anyone who pinned to it.
This is available through the same Skills API that handles publishing, via the shift-served-version endpoint, which is what makes rollback something a team can script into an incident-response runbook rather than a manual dashboard click reserved for whoever remembers where the button is. The reference architecture for governing coding-agent access covers the broader incident-response pattern this fits into, beyond skills specifically.
Registering a Claude Code and Codex Marketplace
Versioning solves the history problem; a marketplace solves the distribution problem. Once a Skills Repository has published skills, clicking Register as Marketplace in Bifrost's dashboard generates the CLI commands to register Bifrost itself as a skills source for Claude Code and Codex:
claude plugin marketplace add <your-bifrost-url>/api/skills/serve/claude-code/.claude-plugin/marketplace.json
codex plugin marketplace add <your-bifrost-url>/api/skills/serve/codex
After registration, every skill in the repository shows up as its own installable plugin, named bifrost-{skill-name}. A skill named deploy-checklist becomes bifrost-deploy-checklist, installable and updatable through the same plugin flow engineers already use for any other Claude Code plugin or Codex plugin. Marketplace and download URLs are public, so a CLI agent can fetch and clone a skill without carrying dashboard credentials, while the management actions that create or edit skills stay authenticated and permission-gated.
Versioning the Bundled bifrost-all-skills Plugin
Installing skills one at a time is fine for a handful of them; a team running twenty or more skills usually wants everyone on the full set at once. The synthetic bifrost-all-skills plugin bundles every currently served skill under a single install, and it carries its own SemVer that Bifrost maintains automatically rather than requiring a manual bump for every change underneath it.
| Repository event | All-skills version bump |
|---|---|
| First skill is published | 0.0.0 → 1.0.0 |
| Another skill is added | Minor |
| A skill is deleted | Major |
| A served skill gets a patch bump | Patch |
| A served skill gets a minor bump | Minor |
| A served skill gets a major bump | Major |
| Served version is shifted (rollback) | Patch |
A manual patch, minor, or major bump is also available from the dashboard as a way to nudge a marketplace client into refreshing, for the case where a client has cached an older manifest and needs an explicit signal to pull the update. The full all-skills versioning table is documented alongside the rest of the Skills Repository.
Automating Skill Versioning Through the API
Interactive editing through the dashboard works for most day-to-day changes, but a team that treats skills as part of its codebase usually wants them synced from CI rather than edited by hand. Bifrost's skill management API covers the same operations the dashboard does: create a skill and its first version, upload files, publish new immutable versions with save-only or save-and-serve semantics, list version history, and shift the served version. That last operation is the one worth building into a deployment pipeline: a CI job can publish a new skill version on merge, run it against a staging agent, and only call the shift-served-version endpoint once the check passes, which keeps a bad skill change from reaching every engineer's agent the moment it lands on main. The complete guide to AI agent monitoring covers the staging-then-promote pattern this borrows from, applied more broadly to agent behavior rather than skill versions specifically.
FAQ About Versioning and Rolling Back Agent Skills
What is an AI agent skill?
An AI agent skill is a folder containing a SKILL.md file and any supporting scripts or reference material, written so an AI coding agent can load it on demand and use it to perform a specific, repeatable task. It is the file-based unit that Claude Code, Codex, and other compatible agents all read the same way.
How do you version an agent skill?
Bifrost's Skills Repository versions each skill with SemVer (MAJOR.MINOR.PATCH), and every time a skill is saved, that save becomes a new immutable version. Patch bumps cover safe fixes, minor bumps cover backward-compatible additions, and major bumps cover breaking changes, so the version number on its own tells a team roughly what changed.
Can you roll back an agent skill to an older version?
Yes. Rolling back means shifting which published version is currently served, which is done from the version history in Bifrost's dashboard or through the shift-served-version API endpoint. The rollback does not delete any newer versions; they stay in the history and remain available to shift forward to again.
What happens to newer skill versions after a rollback?
They remain in the version history and are not deleted. The one rule to know: the next version published after a rollback still has to be numbered ahead of the highest version ever created for that skill, not just ahead of the version currently being served.
How do teams install agent skills from a shared repository?
After registering Bifrost as a marketplace, each skill in the repository becomes its own installable plugin (bifrost-{skill-name}) in Claude Code and Codex. A team can also install the bundled bifrost-all-skills plugin to get every currently served skill in one install, which stays in sync automatically as skills are added, updated, or removed.
Is agent skill versioning specific to Claude Code?
No. The open format Bifrost publishes against is not tied to any single agent, and Anthropic's Agent Skills docs describe one implementation of it. Bifrost's marketplace registration currently covers Claude Code and Codex, with skills served over the same API regardless of which compatible agent installs them, and the full resources hub has more on how this fits into the rest of the platform.
Do I need to set anything up before using the Skills Repository?
No dedicated setup beyond a running gateway. Bifrost's zero-configuration startup means the Skills Repository is available in the dashboard as soon as the gateway is running, the same way Bifrost's custom plugin system is available alongside it for teams that need organization-specific logic beyond what a skill covers.
To set up versioned, rollback-ready agent skills for your team, book a demo with the Bifrost team.