verdict: NEEDS_CHANGES
gaps:
  - severity: high
    claim: "Plan does not assign cmd_migrate_storage to any new module, even though it is a live dispatch entry in cli.py and must move (or be explicitly kept) under the refactor's `move handlers out of cli.py` requirement."
    evidence: "mempalace_code/cli.py:595 defines `def cmd_migrate_storage(args)` and `mempalace_code/cli.py:1861` registers `\"migrate-storage\": cmd_migrate_storage` in the dispatch map. The plan's Design Notes 'Suggested ownership' list (docs/plans/CLI-COMMAND-MODULES.md:188–197) covers alias/model/ingest/query/maintenance/watch/backup_restore/diary/export_import but omits cmd_migrate_storage entirely. The `files:` section in the same plan also does not name a target module for it."
    suggested_fix: "Add cmd_migrate_storage to an explicit owner — most naturally `cli_commands/maintenance.py` (alongside health/cleanup/repair) — or define a new `cli_commands/migrate.py` and list it under `files:` and Design Notes. Also state whether the existing handler-local `from .migrate import VerificationError, migrate_chroma_to_lance` stays lazy after the move."
  - severity: medium
    claim: "REQ-3 asserts argparse validation 'remains in the entry-point path before handler dispatch where it is today', and INV-5 reinforces this, but no acceptance criterion or verification row pins the `migrate-storage` or `mine --include-emotional` validation boundaries beyond the already-covered mine spellcheck and watch --dry-run cases. With cmd_migrate_storage's home undecided, there is no verification that its parser path keeps working after the split."
    evidence: "docs/plans/CLI-COMMAND-MODULES.md acceptance section (AC-1..AC-6) and verification section (VER-1..VER-6) only cover alias, mine spellcheck, mine include-emotional, watch dry-run, backup defaults, restore force, backup list empty, diary write/bare, health JSON, cleanup dependency-error. mempalace_code/cli.py:1851–1873 shows `migrate-storage` is in the dispatch map but no AC/VER references it."
    suggested_fix: "Either explicitly scope migrate-storage out of behavior verification (call it out under out_of_scope or in the design notes) or add a small AC plus VER row that exercises `mempalace-code migrate-storage --help` / dispatch wiring after the move. This closes the gap that opens once cmd_migrate_storage is assigned to a new module."
