Run the scanner:
bun ~/.claude/LIFEOS/TOOLS/MigrateScan.ts --source <path>
# or
echo "$CONTENT" | bun ~/.claude/LIFEOS/TOOLS/MigrateScan.ts --stdin
# preview the routing without writing the approval queue
bun ~/.claude/LIFEOS/TOOLS/MigrateScan.ts --source <path> --dry-run
Scanner output includes total chunks found, the proposed routing table (how many chunks per target), average classification confidence, the count of UNCLEAR chunks, and the count of low-confidence (<40%) chunks.
Then approve along the path the user picks:
Fast path (they say "approve all trusted"):
bun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve-all
Commits pending chunks at ≥60% confidence. The tool itself skips, reports, and leaves pending: anything under 60%, UNCLEAR, any PRINCIPAL_IDENTITY.md or IDEAL_STATE/ target, and any chunk whose text already appears in its target. Then walk through what it skipped conversationally.
Category path (they say "approve goals and wisdom, skip knowledge"; the tool refuses a protected target here and skips duplicates):
bun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve-target TELOS/GOALS.md
bun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve-target TELOS/WISDOM.md
Walk-through path (they want careful review):
bun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --review
For each pending chunk, show preview + proposed target + confidence + alternatives, and commit the user's decision: approve (--approve <id>), modify target (--modify <id> --target <new_target>), or reject (--reject <id>).
Protected targets (PRINCIPAL_IDENTITY.md, anything under IDEAL_STATE/): show the full chunk, get the user's yes on that one chunk, then:
bun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve <id> --confirm-protected <id>
The confirm value must equal the id; bulk commands reject the flag.
UNCLEAR chunks are ones where no classification rule matched strongly. Display each one's full content (not just the preview), offer the likely destinations plus Knowledge/Ideas as a catch-all, and commit the user's choice via --modify <id> --target <chosen>.