What problem does it solve? Migrating from dfx and operating the modern icp CLI involves many breaking changes — YAML array syntax, version-pinned recipes, environments instead of --network ic, and no dfx generate — that cause confusing build and deployment failures. This Skill guides correct usage of the icp CLI so projects build, deploy, and sync without hitting those pitfalls. ## Core Features & Use Cases - Project configuration: Authors correct icp.yaml files with pinned recipes (@dfinity/rust, @dfinity/motoko, @dfinity/asset-canister), environments, networks, and canister settings. - Deployment workflows: Covers local network startup, icp deploy build/deploy/sync phases, install modes, identity management, and mainnet funding checks. - dfx migration: Maps every dfx command and config field to its icp equivalent, including identity export, canister ID migration, and frontend package replacement with @icp-sdk/core and @icp-sdk/bindgen. - Use Case: A developer with a Rust backend and Vite/React frontend asks to deploy locally — the Skill produces icp network start -d followed by icp deploy, with the correct recipe configuration and binding generation setup. ## Quick Start Ask the assistant to create an icp.yaml and deploy your Rust backend and asset frontend to the local network using the icp CLI.