What problem does it solve? Canister upgrades on the Internet Computer wipe heap memory, silently destroying user data stored in ordinary variables. This Skill shows how to store data in stable memory so it survives every redeploy, in both Rust and Motoko. ## Core Features & Use Cases - Rust stable structures: Implement StableBTreeMap, StableCell, and StableLog with MemoryManager partitioning, Storable trait implementations, and CBOR serialization via ciborium. - Motoko persistent actors: Use mo:core 2.0 persistent actor syntax where all let and var declarations auto-persist without stable keywords or upgrade hooks. - Upgrade trap prevention: Avoid pre_upgrade instruction-limit traps, MemoryId collisions, and schema-change failures that brick canisters. - Use Case: You deploy a Rust canister, add user records, redeploy with new code, and verify with get_user_count that all data survived the upgrade. ## Quick Start Ask the AI to implement stable memory persistence for your ICP canister so user data survives upgrades, then deploy and verify the record count is unchanged after redeploying.