What problem does it solve? Changing a saved-state format risks silently destroying user data: fields get dropped, renames hit unrelated structures, and upgrade steps run twice on already-migrated files. This Skill turns a schema change into a safe, idempotent upgrade procedure grounded in nine real migrations recorded in the repository. ## Core Features & Use Cases - Field ownership classification: Separates saved fields into file-owned, appearance-owned, and user-owned categories before touching anything, with an explicit "undecided" bucket instead of guessing. - Idempotent migration rules: Enforces rename tables that skip already-migrated names, restricts recursion to known structures (blocks, inputs, next chains), and forbids blanket field renames. - Consistency and guardrails: Requires both load paths (auto-load and file import) to share one version judgment, keeps SAVED_STATE_FIELDS authoritative via TypeScript satisfies, and mandates running the audit-storage-integrity injection tests plus a real old-save browser test. - Use Case: When bumping CURRENT_VERSION from 9 to 10 because a block field was renamed, follow the checklist to write an idempotent upgrade step, verify the guardrail metrics, and confirm a v9 save still loads intact. ## Quick Start Ask the AI to apply the migrate-storage skill to plan a safe storage schema upgrade for the field change you are making, listing every affected field and its fate.