Problem
Migration failures are hard to review when operators cannot see which records would be lossy or ambiguous before execution.
Scope
Add a read-only migration dry run that reports counts, incompatible records, and required manual decisions without mutating storage.
Acceptance criteria
- Dry runs are deterministic and side-effect free.
- Every rejected conversion includes a stable reason code.
- The execution path refuses to proceed when a lossy record is detected.
Validation
Test clean, partially compatible, and irreconcilable datasets.
Problem
Migration failures are hard to review when operators cannot see which records would be lossy or ambiguous before execution.
Scope
Add a read-only migration dry run that reports counts, incompatible records, and required manual decisions without mutating storage.
Acceptance criteria
Validation
Test clean, partially compatible, and irreconcilable datasets.