migratelisted
Install: claude install-skill nhhthong/clio
**Run only when the user asked for it, this turn** — by slash command, or in plain words ("tidy up
.claude", "migrate the ledgers", "dọn lại .claude"). None of these is a trigger: Clio's drift nudge ·
`validate.sh` output you saw while doing something else · a plan you made earlier in the session.
Unsure → ask in one line, don't run.
Mode (may be empty): $ARGUMENTS — anything other than `--fix` is a **dry run**.
This is the only Clio skill that writes across the whole memory layer, so it is also the only one
with a rollback story. Three rules, none of them negotiable:
1. **Never edit, reorder or delete a line in `index.jsonl` or `debt.jsonl`.** Migration is an
**append** of a full record under the same key; readers take the last line per key. This is the
same rule `/clio:memo` follows, and it is what makes the ledgers history rather than state.
2. **Never invent content.** You may move a file, append a record, add an empty heading and strip a
comment. Anything that needs a *fact* you do not have — which `req` a doc serves, who owes an
answer on a ⚠️ row, what a missing `## Testing Done` should say — is reported and asked, never
filled in. A memory layer with invented facts is worse than one with gaps.
3. **Never re-implement `validate.sh`.** It is the diagnosis engine; this skill runs it and acts on
what it says.
## 1. Preconditions
```bash
[ -d .claude/clio ] || { echo "no .claude/clio — run /clio:setup first"; exit 1; }
cat .claude/clio/VERSION 2>/dev