adoptlisted
Install: claude install-skill AnotherSava/claude-code-common
# Adopt
A convention defined in the dotfiles repo is a claim about every repo on this machine, and changing one
leaves the rest in the old shape. Every change an already-conforming repo has to *do something* about
ships as a numbered **version**: a folder of prose saying what changed, how to migrate an existing repo,
when the migration is a no-op, and which continuing rule — if any — the version hands to the checker.
This skill walks the versions this repo has not adopted, one at a time, and moves its number up by one
for each.
A version is a migration, so the walk performs it. Most versions carry prose rather than a script, and
reading that prose and doing what it says *is* the adoption. Where a migration deletes or rewrites a
committed file, the README says what would be lost — show that and get a yes before running it.
The session-start notice that sends the user here is a `systemMessage` — it reaches their screen and
never the transcript — so the gap is re-derived below rather than taken from what they pasted.
## Context
- Repo root: !`git rev-parse --show-toplevel 2>/dev/null || echo "(not a git repo)"`
- This repo, commits it is behind its upstream: !`git fetch -q 2>/dev/null || echo "(fetch failed — what follows compares against the last fetch that worked)"; git log --oneline HEAD..@{upstream} 2>/dev/null || echo "(no upstream configured)"; echo "(end of list)"`
- Dotfiles checkout, commits it is behind its upstream: !`git -C ~/.claude/skills fetch -q 2>/dev/null |