On each machine
Install the new version the way you installed the first:npx -y @outerlayer/cli@latest. Without it, npx can run a copy from its cache. Then run outerlayer init --local on a machine where a person works. It installs the maintained skills in ~/.agents/skills/. Then run outerlayer doctor. It names anything else on the machine that still needs a step.
The CLI names a newer version after a command in a terminal and at session start. That version is the newest release, or the version that the factory pins. The notice gives an exact-version install command, such as npm install -g @outerlayer/cli@0.26.1. It repeats until the machine runs that version. A machine with no login gets no notice. Set OUTERLAYER_NO_UPDATE_NOTICE to turn it off. At session start the CLI also tells you when the maintained skills in ~/.agents/skills/ come from another CLI version. Run outerlayer init --local to fix it.
Keep one CLI version across a team. In a repository that still keeps its own .outerlayer/ directory, a teammate on an older version sees the maintained skills as changed, and their context emit --check fails.
In each repository
A repository on theAGENTS.md layout needs one command and a commit. The command also removes the copies of the maintained skills that the repository still commits:
.outerlayer/ directory needs two:
context emitrewrites the maintained skills to the installed version and recompiles every tool’s copy.init --updatebrings the template skills, the policy and the two checks up to date where you have not edited them. In theAGENTS.mdlayout, it also rewrites the maintained skills. See Update the files init wrote.
On each build host
A runner started as a service updates itself and needs nothing. A runner with updates off is upgraded by hand. See Keep the runner up to date. Then check the commands in its config file withouterlayer runner check. A command that names a skill by a name it no longer has is listed under note.
Changes that need you to act
Maintained skills start with outerlayer-
The maintained skills have new names, so they can no longer land on a skill of your own:
What to do:
- In a repository with its own
.outerlayer/, runouterlayer context emitand commit. It writes each skill under its new name, then deletes the old directory and every copy compiled from it, such as.claude/skills/amend/. Until you do,context emit --checkreports the old files asretired. A skill of your own with one of the earlier names is left alone: only a directory the CLI wrote, whoseSKILL.mdsays “maintained by OuterLayer”, is removed. - In your template skills, replace the earlier names.
outerlayer init --updatedoes this for a template you have not edited. For one you edited,outerlayer doctorlists each file that still names a skill by an earlier name. - On a build host, change
/amendto/outerlayer-amendinrunner.commands.amend. Until you do, the runner runs/outerlayer-amendin its place and says so in the build’s log and inrunner check. - When you start a skill by hand, type
/outerlayer-amendinstead of/amend.
The build skill splits in two
The build process now lives inouterlayer-build, a maintained skill that follows the CLI. Your build skill holds only your repository’s changes, so later changes to the process reach you when you upgrade.
What to do:
- If you never edited
build, runouterlayer init --updateand commit. It replacesbuild/SKILL.mdwith the short skill. It removes the files underbuild/that the CLI no longer ships, such asreferences/andscripts/. A file there that you edited is kept. The short skill readsouterlayer-buildfrom~/.agents/skills/. - If you edited
build,init --updatekeeps it as it is, with thereferences/andscripts/beside it.outerlayer doctorsays it gets no updates from the core, and shows the shortbuild. To move onto it:- Replace the contents of
build/SKILL.mdwith the short skill. It starts withRead ~/.agents/skills/outerlayer-build/SKILL.md and follow it from start to finish. - Under
## Changes for this repository, add each of your edits under a###heading with the name of the phase it applies to: Intake, Criteria, Implement, Review, Pull request or Evidence. Express an edit as an added step, a setting, or a step turned off. - Run
outerlayer context emitand commit.
- Replace the contents of
- If your criteria check names a brief under
build/references/, changebrief:in.outerlayer/validators/acceptance-criteria.yamlto.agents/skills/outerlayer-build/references/criteria-judge.md. A repository that has not moved to theAGENTS.mdlayout keeps the skills in.outerlayer/skills/, so use that folder there.init --updatedoes this for a check you have not edited. Afterinit --update, the repository no longer holds that file. A runner host reads the brief from its own CLI, so the check still runs.
outerlayer doctor after. It names a heading that matches no phase, and an agent’s skills folder that holds build without outerlayer-build.
The maintained skills move to each machine
The CLI now keeps the five maintained skills once per machine, in~/.agents/skills/. Each skill has a link in ~/.claude/skills/. A repository in the AGENTS.md layout carries none of them. outerlayer init installs them, and each later outerlayer command keeps them at its own version.
A CLI from before this release does not read ~/.agents/skills/. Do these steps in this order:
- Upgrade the CLI on every machine and runner host. This covers every laptop and every host that runs builds.
- Run
outerlayer init --localon each machine a person works on. It installs the skills and makes no network call. A build host installs them when a build starts its agent, so it needs no more. - Run
outerlayer init --updatein each repository that carries copies of the maintained skills. It removes each maintained skill folder that carries the “maintained by OuterLayer” line. It keeps a folder without the line. It changes each path to a removed folder to~/.agents/skills/, inAGENTS.md,CLAUDE.mdand the repository’s skills. In an editedbuild,../outerlayer-build/SKILL.mdbecomes~/.agents/skills/outerlayer-build/SKILL.md, and the rest of the file stays as it was. Review the diff and commit it.
outerlayer init --update checks for you. With a login, it lists the factory’s runner hosts from the gateway. It names each host on a CLI older than 0.27.0, and it says not to commit until each one updates. It cannot check the machines people work on. A machine that has not finished them has no maintained skills after it pulls your commit. When a session starts on such a machine, the agent tells the person to run outerlayer init --local.
Run outerlayer doctor after. It names the maintained skill folders a repository still commits. It also names missing per-machine copies, in a repository whose build reads ~/.agents/skills/outerlayer-build/SKILL.md.
A repository that has not moved to the AGENTS.md layout keeps its compiled copies. outerlayer init --update moves it first, then removes the copies. A cloud session on a machine with no CLI gets no maintained skills once a repository stops carrying them.