What problem does it solve? SQLite migration reviews routinely accept incorrect semantics claims from plans, PRs, and docs — such as bare ON CONFLICT DO NOTHING supposedly swallowing FK/CHECK errors, or last_insert_rowid staying valid after a swallowed insert — leading to broken migrations, wrong-row reads, and bricked databases. This Skill forces every semantics claim to be verified against a scratch database before approval. ## Core Features & Use Cases - Empirically verified semantics catalog: Nine scratch-DB-confirmed rules covering ON CONFLICT DO NOTHING scope, last_insert_rowid staleness, trigger fire-time failures, UNIQUE-index NULL semantics, expression/partial index conflict targets, and NOT IN dedupe safety. - Migration review checklist: Structured checks for migration placement vs early returns, trigger cleanup on dedupe DELETEs, global vs bucket-scoped re-reads, first-open concurrency with BEGIN IMMEDIATE, FK pragma interplay, and tombstone reasoning. - Scratch-verification recipe: A 5-minute procedure for spinning up a throwaway SQLite database to test any semantics claim before trusting it. - Use Case: A PR adds CREATE UNIQUE INDEX IF NOT EXISTS plus a dedupe migration to a storage layer. Use this Skill to catch that IF NOT EXISTS still throws on a violating table, that the dedupe DELETE must run on open rather than in raw DDL, and that the post-DO-NOTHING re-read is scoped too narrowly — then report numbered MUST-FIX findings with file:line evidence. ## Quick Start Review the SQLite migration and schema changes in this pull request, verifying every semantics claim against a scratch database and reporting numbered findings with severities.