Quality Gates Checklist

Copy this into app proposals and release checklists.

Storage

  • Source-of-truth data is labeled separately from cache and derived indexes.
  • Local store path is deliberate and documented.
  • Attachments have manifest metadata and integrity checks.
  • Derived indexes can be rebuilt from source data.

Migrations

  • Every supported old version migrates to current.
  • Migration tests assert row preservation.
  • Destructive migration is disabled for user-owned data.
  • Risky migrations create a pre-migration backup.

Backup And Restore

  • Export exists for user-owned data.
  • Backup validates before showing success.
  • Clean-install restore test passes.
  • Restore creates a pre-restore backup before replacing data.
  • Unsupported backup versions fail safely.

Encryption

  • Threat model is written.
  • Keys are stored in platform secure storage.
  • Encrypted backup has wrong-password negative test.
  • Key loss behavior is documented.
  • Plaintext export has clear warning or encryption option.

Sync

  • Pending mutations persist through restart.
  • Idempotency keys prevent duplicates.
  • Retry/backoff is bounded and inspectable.
  • Stale update and delete-vs-edit conflicts are tested.
  • Auth expiry does not silently drop queued writes.

Offline UX

  • Users can tell saved, pending, failed, and conflicted states apart.
  • Last successful sync/fetch time is visible where needed.
  • Storage pressure has recovery UX.
  • App launches and reads local data without network.