| 1 | # Release checklist |
| 2 | |
| 3 | ## Before tagging |
| 4 | |
| 5 | - [ ] iPhone app builds cleanly |
| 6 | - [ ] macOS app builds cleanly |
| 7 | - [ ] tvOS app builds cleanly |
| 8 | - [ ] visionOS app builds cleanly |
| 9 | - [ ] watchOS companion builds cleanly |
| 10 | - [ ] README is current |
| 11 | - [ ] LICENSE files are present |
| 12 | - [ ] SECURITY.md is present |
| 13 | - [ ] App Store metadata in `AppStore/metadata/en-US/` is current |
| 14 | - [ ] Screenshots are captured and reviewed |
| 15 | |
| 16 | ## Product quality |
| 17 | |
| 18 | - [ ] Core browse flows feel polished |
| 19 | - [ ] Ask flow works on device with acceptable latency |
| 20 | - [ ] Watch app content is readable and useful at a glance |
| 21 | - [ ] macOS window flows feel native and polished enough for v1 |
| 22 | - [ ] tvOS focus and remote navigation feel polished enough for v1 |
| 23 | - [ ] visionOS window flows feel polished enough for a simple v1 |
| 24 | - [ ] No obvious sample-app copy remains |
| 25 | |
| 26 | ## Signing and distribution |
| 27 | |
| 28 | - [ ] iPhone bundle identifier is correct |
| 29 | - [ ] macOS bundle identifier is correct |
| 30 | - [ ] tvOS bundle identifier is correct |
| 31 | - [ ] visionOS bundle identifier is correct |
| 32 | - [ ] watch bundle identifier is correct |
| 33 | - [ ] App Group entitlement is correct for the shipping account |
| 34 | - [ ] macOS App Sandbox entitlement is enabled for the shipping build |
| 35 | - [ ] Apple platform Info.plists set `ITSAppUsesNonExemptEncryption = false` |
| 36 | - [ ] Provisioning profiles and signing identities are valid |
| 37 | |
| 38 | ## Final gate |
| 39 | |
| 40 | - [ ] TestFlight build installed on at least one real iPhone |
| 41 | - [ ] macOS archive validates cleanly for App Store submission |
| 42 | - [ ] tvOS archive validates cleanly for App Store submission |
| 43 | - [ ] visionOS archive validates cleanly for App Store submission |
| 44 | - [ ] Watch companion installed and tested on at least one real Apple Watch |
| 45 | - [ ] Release notes are written |
| 46 | - [ ] Git status is clean before tagging |