migration-standardslisted
Install: claude install-skill erclx/aitk
# Claude standards relocate
## Guards
- If neither `standards/` nor `snippets/` exists at `pwd`, stop: `❌ No root standards/ or snippets/ to relocate.`
- If `pwd` is not a git work tree, stop: `❌ Not a git repository. git mv needs version control.`
## Step 1: read the report
Run `aitk sync --check . --json` from the project root. Its `unmigrated` array is the detection. Each entry carries `domain`, `rootPath`, `installPath`, and `files`, and a domain appears only when the root folder holds a file the toolkit ships and nothing sits at the install path. Report `files` as the count, since it excludes files the project wrote into the same folder.
Run these beside it, in parallel. The report answers which domains to move and neither of these is derivable from it:
- `ls .claude/standards/ 2>/dev/null`: separate a domain already relocated from one never installed, which the report cannot, since both are absent from `unmigrated`
- `ls .claude/snippets/ 2>/dev/null`: the same, for the other domain
- `git status --short 2>/dev/null`: confirm a clean tree before proposing moves
Keep the two listings as separate commands. `ls` labels its output with a `dir:` header only when more than one operand succeeds, so a combined call with one directory present prints that directory's filenames bare while the redirect swallows the other's failure, and the result reads as whichever directory was expected.
### When the report is unavailable
Fall back to `ls standards/*.md` and `ls snippets/