What problem does it solve? In an offline-first app, the on-device SQLite database is the only copy of user data, and a bad schema migration silently destroys rows that exist nowhere else. This Skill enforces a strict, ordered migration ritual for Drift databases so schema changes never corrupt or lose user records. ## Core Features & Use Cases - Snapshot-before-open guard: Takes a file-level backup of the database and its WAL/SHM sidecars before any connection opens, and restores it automatically if the migration throws. - Append-only stepwise migrations: Enforces bumping schemaVersion by exactly one, adding new fromNToM steps without ever editing shipped steps or writing down migrations. - Content-level verification: Requires tests covering every from-to version path, write-at-v(n)/read-at-v(n+1) content checks with hostile fixtures, PRAGMA integrity_check and foreign_key_check, and a forced mid-migration throw that proves snapshot restore works. - Use Case: When adding a new column to a Drift table in a Flutter app, run this workflow to bump the schema version, generate the committed schema snapshot, write the forward step, and prove with tests that existing user data survives the upgrade byte-for-byte. ## Quick Start Ask the AI to run the migration workflow to add a new column to the Drift database and verify the upgrade preserves all existing rows.