agentleFS
DawnEverDawnEver/claude-code-config/skills/migrate/SKILL.md

migrate

Skill4 starsChanged 5 days agoMITView on GitHub

Use when ~/.claude or ~/.codex symlinks look stale after this repo's layout changed, or when a project's .claude/ files (memory, tasks, sharp-review findings) were generated by an older cc-market plugin version. Brings both up to the latest format.

63 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use incident, sdd and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JkudjoSkill

    incident

    Production incident response — structured triage, hypothesis tree, safe remediation, incident record

    Also in 4 projects that use this

  • liatrio-labsSkill

    sdd

    Execute the Liatrio Spec-Driven Development (SDD) workflow when explicitly invoked by the user. NOTE: this skill is NOT intended to be dynamically loaded or automatically triggered; it should only ever be explicitly called by the user.

    Also in 4 projects that use this

  • BerryKuipersSkill

    scaffold

    Detect project stack, apply architecture patterns, wire quality gates, and scaffold features. Use when bootstrapping a project, adding a vertical slice, wiring CI/CD, adding Docker compose, or setting up quality gates.

    Also in 4 projects that use this

  • MicrosoftSkill

    init

    Also in 8 projects that use this

  • agenticnotetakingSkill

    upgrade

    Apply plugin knowledge base updates to an existing generated system. Consults the Ars Contexta research graph for methodology improvements, proposes skill upgrades with research justification. Never auto-implements. Triggers on "/upgrade", "upgrade skills", "check for improvements", "update methodology".

    Also in 3 projects that use this

  • genomewalkerSkill

    checkpoint

    Save a checkpoint of task status, decisions, active files, and next steps

    Also in 5 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 50 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run this command from the directory of the project you want to migrate (its .claude/ is what step 2 acts on) — cwd is what matters, not …

    line 20
  2. Very specific:

    Overwriting .gitignore is confirmed first: When any repo's .gitignore differs from the template, an interactive TTY run asks: [O]verwrite …

    line 45
  3. Distinctive:

    When running this skill for the user, dry-run first, show which repos would change, and confirm the mode before applying.

    line 63
  4. Very specific:

    If a plugin's migration reports changed: true, read its summary lines — they describe exactly what was moved/rewritten.

    line 80

“Common” is measured: kept by at least 6 in 10 of the 50 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

~/.claude/skills is itself a symlink into this repo's skills/ directory (set up by setup.js), so the migration CLI is reachable from anywhere via a home-relative path — no need to know where this repo is checked out:

node ~/.claude/skills/migrate/migrate.js

On Windows (PowerShell): node "$env:USERPROFILE\.claude\skills\migrate\migrate.js"

Run this command from the directory of the project you want to migrate (its .claude/ is what step 2 acts on) — cwd is what matters, not where migrate.js itself lives. From within this config repo's own root, npm run migrate is a shortcut for the same command.

This does the following, all idempotent (safe to re-run, no-op once current):

  1. Repo links — removes any ~/.claude / ~/.codex symlinks that point into this repo but no longer correspond to an entry in CLAUDE_LINKS / CODEX_LINKS (e.g. a renamed/removed skill or config), then re-runs the normal link-creation pass for the current layout.
  2. Orphaned CLI aliases — removes wrapper files this repo wrote (recognised by their marker comment) whose name is no longer in WRAPPER_NAMES (scripts/setup/install-cli-wrappers.js). This is what stops a retired provider leaving <name>.cmd behind after its <name> is gone. It sweeps the claude bin dir, so on a Codex-only host it is a no-op.
  3. Gitignore hygiene — across the current repo and every nested git repo: (a) normalizes .gitignore to the depth-agnostic .claude/ template this skill owns (CLAUDE_GITIGNORE_TEMPLATE — base **/.claude/** exclusion plus the agents/skills/commands/workflows/settings/output-styles/rules/memory/docs re-includes, with MEMORY.md + _meta.json ignored last), preserving all unrelated lines; (b) untracks (via git rm --cached, keeping files on disk) anything the refreshed rules now ignore but is still committed; (c) deletes stray .gitignore files nested inside a .claude/ tree. This skill is the single writer of the template; rem only ensures ignores for the two files it generates (MEMORY.md, _meta.json).

    Overwriting .gitignore is confirmed first. When any repo's .gitignore differs from the template, an interactive TTY run asks: [O]verwrite (default) / [A]I edit (script writes nothing — you hand-merge afterward) / [S]kip. Choose AI edit / Skip for third-party projects whose .claude/ holds content outside the template's allowlist (e.g. hooks/, settings.local.json), since overwrite + untrack would stop tracking it. Pass --gitignore=overwrite|skip|ai to set it non-interactively.

    AI edit vs. Skip differ only in your follow-up — the script's file behavior is identical (it leaves .gitignore untouched, untracking only per existing rules). Skip abandons the repo. AI edit obligates you to finish the job: the run prints an AI-EDIT REQUIRED block listing the template lines and each target .gitignore. After the run, for every listed file: Read it, splice the template block in as one contiguous group, drop superseded managed lines, keep the repo's own rules, write it back with Edit, then git rm --cached any now-ignored tracked files in that repo. Do not end the turn with the merge undone — an unactioned AI edit is just a Skip.

    When running this skill for the user, dry-run first, show which repos would change, and confirm the mode before applying.

  4. Project .claude/ — for every cc-market plugin that provides a migrations/migrate.mjs (e.g. rem's memory/frontmatter normalization, sharp-review's legacy finding-file consolidation), runs it against the current project.

Preview repo-link changes only, without touching anything:

node ~/.claude/skills/migrate/migrate.js --dry-run

(--dry-run covers steps 1–3 fully — it prints which links, wrappers and files would be removed/untracked, without touching them; for step 4 it lists which plugins have migrations but does not run them, since they are write-only and self-detecting.)

If a plugin's migration reports changed: true, read its summary lines — they describe exactly what was moved/rewritten.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.