What problem does it solve? Shipping a Flutter app fails in ways CI never catches: reused build numbers, debug-signed artifacts, lost obfuscation symbols, permissions injected by transitive plugins, and store declarations that contradict the code. This Skill enforces the full path from a green CI run to a verified, staged store release. ## Core Features & Use Cases - Release hygiene gates: Runs check-release-hygiene.sh to catch tracked keystores, malformed version: x.y.z+N, debug signing configs, and debug affordances reachable in shipped code, plus check-ipa-slices.sh to reject IPAs containing simulator slices before upload. - Ordered release ritual: A 10-step sequence covering version bumping in pubspec.yaml, obfuscated builds with per-build symbol archives, real-hardware verification of the exact artifact, size and cold-start budgets, and staged rollout with a written halt criterion. - Store declaration reconciliation: Asserts the merged Android permission set and iOS NS*UsageDescription keys whole, keeps Play Data Safety, nutrition labels, and PrivacyInfo.xcprivacy provable in the repo, and reads store-side state (price, availability, IAPs, screenshots) back before submission. - Use Case: Before tagging release 1.4.0+42, run the hygiene script, build the appbundle and IPA with --obfuscate --split-debug-info, archive symbols off-machine, install the artifact over the previous release on a real device, then upload to the internal track and start a staged rollout. ## Quick Start Ask the assistant to run the release hygiene checks and walk through the ordered release ritual for the next Flutter build before uploading to Play or TestFlight.