Use it when
- When the user asks to migrate a project from claude-code-blueprint or an in-project blueprint copy to Agent Blueprint v4
Pick another skill
Not for a project's own dependencies or for anything the blueprint did not install.
Name it in your tool
This skill is manual-only: it runs only when you name it.
Claude Code
/ab-migrateManual-only skills in Claude Code: Kept out of the model's list.
Codex
$ab-migrateIn Codex's pickerMigrate to v4Clean an old v2 or v3 install out of a project
Manual-only skills in Codex: Kept out of the model's list.
Antigravity
/ab-migrateManual-only skills in Antigravity: Kept out of the model's list (smoke test on 1.2.16).
Grok Build
/ab-migrateManual-only skills in Grok Build: Kept out of the model's list.
Pi
/skill:ab-migrateManual-only skills in Pi: Kept out of the model's list.
Cursor CLI
/ab-migrateManual-only skills in Cursor CLI: Kept out of the model's list.
Hermes
/ab-migrateManual-only skills in Hermes: Cannot be enforced.
Amp
use the ab-migrate skillAsk for it in plain words.
Manual-only skills in Amp: Cannot be enforced.
What it does
Cleans an old Agent Blueprint install out of a project so v4 runs alone: finds the v3 plugin and the v2/v3 copies (.claude/skills, agents, commands and hooks copied by install.sh --legacy, scripts/ship.sh, the old manifest, ship state files), shows the list, asks once, removes only the blueprint's own files, renames CLAUDE.md to AGENTS.md with a one-line CLAUDE.md that imports it, and prints the uninstall command for the v3 plugin.
Find the traces
Run
scripts/detect-v3.sh <project directory>.Show the list and ask once
Show the report as it is.
Back up, then apply
If the project is a git repository with uncommitted changes, ask the user to commit or stash them first and stop; the backup below only protects committed work.
Finish
SKILL.md
The instructions the agent follows, from skills/ab-migrate/SKILL.md.
Read SKILL.md on GitHubIts references/ folder
Migrate a project to v4
The project ends up with one blueprint: the v4 skills from the tool’s own install, none of the v3 copies, and an AGENTS.md that every tool reads. Files the blueprint did not install are never touched, so a project’s own skills, agents, hooks and scripts stay where they are.
Say at the start: “Checking this project for Agent Blueprint v3 traces.”
Step 1: Find the traces
Bundled scripts. Paths such as scripts/ are relative to this skill’s own folder, the one holding its SKILL.md, not to the project. Run a script through its interpreter (bash for .sh; python3, or python if that is missing, for .py) instead of relying on its executable bit, and if the interpreter is missing, say so and stop that step.
Run scripts/. It reports one line per trace and changes nothing:
removelines: the blueprint’s own copies (files with a v3 skill, command, agent or hook name, fromreferences/and the script, whose content, line endings aside, is a file the blueprint shipped, by its checksum inv4-skill-names.tsv references/; the blueprint’sv3-file-sums.txt scripts/; aship.sh .claude-plugin/namedplugin.json claude-code-blueprint);unsurelines: files with a v3 name that the script cannot show are the blueprint’s, because the project shows no other sign of a blueprint install or the file is not a version the blueprint shipped (another skill pack’s file of the same name, or a copy someone edited). A skill folder stays whole and isunsurewhen any file in it is not one the blueprint shipped, or it holds a symlink; its line names that file. The script leaves these alone; show them to the user and remove one only when they confirm it is the blueprint’s;asidelines: v3 run state files (.claude/,ship-*.local.md team-active.local.md) that move to.agent-blueprint/;run/ v3/ - a
renameline whenCLAUDE.mdis a regular file and noAGENTS.mdexists; - a
pluginline when the v3 plugin is still installed in Claude Code.
If it prints nothing to migrate (its exit code is then 3, not an error), say so and stop: there is nothing to do. If it prints nothing to remove automatically (exit code 4, not an error either), every line is unsure: do not stop, go on to step 2 and ask about them.
Step 2: Show the list and ask once
Show the report as it is. Then check that v4 is installed (the ab-project-start skill answers to its name, or the tool’s plugin list shows agent-blueprint); if it is not, say the project would be left with no blueprint, name the installer (install.sh from a checkout, or the tool’s own plugin command) and stop.
Asking the user. Ask with your question tool if you have one, offering at most three options; otherwise ask in plain text with a numbered list. In a headless or unattended run nobody will answer: take the default named below, say so in your output, and log it in the run state’s decisions if there is a run state.
Options: apply the list, apply it but keep CLAUDE.md as it is, or stop. Default when nobody answers: stop, change nothing, and set the run state to needs-human if there is one, because deleting files is the user’s call and a wrong deletion cannot be undone.
When every line is unsure (exit code 4), offer instead: remove the items the user names as the blueprint’s, or leave them all. Default when nobody answers: leave them all and change nothing, for the same reason.
Step 3: Back up, then apply
If the project is a git repository with uncommitted changes, ask the user to commit or stash them first and stop; the backup below only protects committed work. If it is not a git repository there is no backup at all: say so when you ask, and treat an unanswered question as stop. Otherwise create the branch blueprint-v3-backup at the current commit when it does not exist yet, so every removed file stays one checkout away.
Run scripts/; the script removes only what its report listed. When the user chose to keep CLAUDE.md, add --keep-instructions, which leaves CLAUDE.md and any AGENTS.md exactly as they are. Skip this run when every line was unsure, since it would change nothing.
Then remove each unsure item the user named as the blueprint’s, at the path its line gives, and nothing else.
Step 4: Finish
- If the report had a
pluginline, print its uninstall command; the skill never uninstalls a plugin itself. - Suggest the ab-project-start skill next: its scaffold merges the v4 sections into the renamed
AGENTS.mdand addsdocs/files the project lacks, without overwriting anything.context/ - Report what was removed, moved and renamed, the backup branch, and the commit the user should now make (
chore: migrate to Agent Blueprint v4); the skill makes no commit, since the change is the user’s to review.