MVAS_SUBMISSION_TRACKER.mdView source

Minimal Viable App-Store Submission Tracker

Last updated: 2025-11-11 (evening)

Mission

Deliver a TestFlight-ready build and App Store Connect submission for OpenResponses with the smallest viable scope while maintaining privacy, compliance, and reviewer clarity.

Status Snapshot

  • ✅ App codebase builds and runs on simulator (baseline assumption to verify).
  • ⬜ Build archive validated in Xcode Organizer.
  • ⬜ TestFlight build uploaded and visible to internal testers.
  • ⬜ App Review package (metadata + dossier) submitted.

Workstream Checklist

  • Secrets hygiene – run automated scan, confirm release build requires user-supplied keys only.
  • Info.plist privacy strings – add minimal NS*UsageDescription values needed for shipped capabilities.
  • Privacy documentation – update PRIVACY.md, create AppReviewNotes.md, ensure links wired in metadata.
  • App Store metadata – confirm description, keywords, support URL, privacy policy URL, review notes template.
  • Visual assets – verify 1024×1024 icon in Assets.xcassets; screenshot storyboard ready in docs/ScreenshotGuide.md.
  • Build & upload – archive Release build, validate, and upload to App Store Connect.
  • Internal TestFlight smoke – invite testers, verify onboarding, chat, and computer-use gating.
  • Submit for review – fill App Privacy questionnaire, attach review notes, submit version 1.0.0.

Key Risks & Mitigations

  • Privacy strings missing: Blocked by checklist above; run scripts/preflight_check.sh before archiving.
  • Secret leakage: Run scripts/secret_scan.py; fail build if any token-like string is detected.
  • Reviewer confusion about Computer Use/MCP: Provide clear scripted flow in AppReviewNotes.md and optional screen recording link.
  • Unexpected crash in Release build: Smoke test on latest simulator after archiving; rerun if fixes applied.

Artifacts To Produce

ArtifactLocationOwnerStatus
scripts/secret_scan.pyscripts/Release engComplete
scripts/preflight_check.shscripts/Release engComplete
PRIVACY.md refreshrepository rootRelease engComplete
AppReviewNotes.mddocs/Release engComplete
docs/AppStoreMetadata.mddocs/Release eng + Product copyComplete
docs/ScreenshotGuide.mddocs/Design/devComplete
App icon 1024×1024OpenResponses/Resources/Assets/Assets.xcassets/AppIcon.appiconset/Design/devComplete
Screenshot capturesAppStoreAssets/Design/devNot started

Decision Log

  • 2025-11-11: Adopt Minimal Viable App-Store Submission (MVAS) scope; full CI/CD automation deferred.
  • 2025-11-11: Added scripts/secret_scan.py and verified repo passes automated secret scan.
  • 2025-11-11: Shortened Info.plist privacy copy, removed unused location permission, and added scripts/preflight_check.sh.
  • 2025-11-11: Refreshed PRIVACY.md and published docs/AppReviewNotes.md for App Review handoff.
  • 2025-11-11: Captured detailed MVAS execution plan covering metadata, assets, archive/upload, and submission steps.
  • 2025-11-11 (evening): Verified completed workstreams: secrets hygiene ✅, Info.plist strings ✅, privacy docs ✅, metadata prep ✅, app icon ✅, screenshot guide ✅.
  • 2025-11-12: Added in-app AI accuracy warnings plus pre-permission disclosures for Calendar, Reminders, Contacts, and computer-use local network prompts.

Next Update

Add outcomes after each workstream completes (checkbox status + Decision Log entry).

Outstanding Workstreams Detail

App Store metadata

  • Cross-check docs/AppStoreMetadata.md against the current app feature set; trim or update copy where scope narrowed for MVAS.
  • Populate App Store Connect fields (description, keywords, support URL, privacy policy URL) using the vetted text in docs/AppStoreMetadata.md and PRIVACY.md.
  • Stage review notes template from docs/AppReviewNotes.md in App Store Connect → App Review Information.

Visual assets

  • Align screenshot storyboard with docs/ScreenshotGuide.md; confirm the eight required frames cover chat streaming, settings, tools, and dark mode.
  • Capture 6.9” iPhone simulator shots via xcrun simctl io booted screenshot and drop assets into AppStoreAssets/ with final filenames.
  • Re-verify the 1024×1024 app icon in OpenResponses/Resources/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json matches current branding specs.

Build & upload

  • Run scripts/secret_scan.py and scripts/preflight_check.sh prior to any archive to catch regressions introduced since the last pass.
  • Clean, build, and archive the Release configuration in Xcode 16.1+; validate the archive via Organizer before uploading.
  • Upload the validated archive to App Store Connect (Transporter or Organizer) and confirm processing kicks off.

Internal TestFlight smoke

  • Once the build appears in App Store Connect, add internal testers and install on-device to confirm onboarding, chat flow, and computer-use gating.
  • Record any regressions in TONIGHT_CHECKLIST.md and remediate prior to external submission.

Submit for review

  • Complete the App Privacy questionnaire with the zero-data collection answers already documented in docs/PRODUCTION_CHECKLIST.md.
  • Attach review notes, privacy links, and required contact info; double-check that uploaded screenshots and metadata are marked Ready for Review.
  • Submit version 1.0.0 for App Review once TestFlight smoke tests pass.

Workstream Owners & Dependencies

WorkstreamPrimary OwnerDependenciesTarget Window
App Store metadataRelease eng + Product copyFinal feature scope locked, docs/AppStoreMetadata.md currentBefore archive
Visual assetsDesign/devSimulator build stable, storyboard approvedBefore metadata submission
Build & uploadRelease engSecrets/preflight scripts green, signing assets currentImmediately after metadata ready
Internal TestFlight smokeRelease eng + QABuild processed in App Store ConnectSame day as upload
Submit for reviewRelease engMetadata + screenshots + privacy answers + passing smoke testWithin 24h of successful TestFlight

Monitoring & Reporting

  • Track progress nightly in this document; update the Decision Log with each completed workstream.
  • Mirror status in docs/PRODUCTION_CHECKLIST.md once archive validation, metadata, and screenshots reach done.
  • Flag blockers (build failures, asset issues, App Store Connect validations) immediately in the team channel; capture mitigations here for continuity.

Execution Timeline (Draft)

Day & Time (local)MilestoneOwnerNotes
Nov 11 – 20:00Finalize metadata copy and review notesRelease eng + Product copyLeverage docs/AppStoreMetadata.md; confirm privacy links resolve.
Nov 11 – 21:00Prepare simulator scenes for screenshotsDesign/devFollow docs/ScreenshotGuide.md; lock UI state before capture.
Nov 11 – 22:00Capture & export 6.9” screenshotsDesign/devSave into AppStoreAssets/ with final filenames, verify crop margins.
Nov 11 – 22:30Run preflight scripts (secret_scan, preflight_check)Release engCapture console output for release notes.
Nov 11 – 23:00Archive Release build + validateRelease engOrganizer validation must be green before upload.
Nov 11 – 23:30Upload to App Store ConnectRelease engMonitor processing status; expect ~30 minutes.
Nov 12 – 00:15Internal TestFlight smokeRelease eng + QAUse TONIGHT_CHECKLIST.md and log results inline.
Nov 12 – 01:00Submit metadata + build for reviewRelease engEnsure privacy questionnaire + review notes attached.

Cross-References & Daily Ritual

  • Each evening, reconcile this tracker with TONIGHT_CHECKLIST.md; mark any completed checks in both places to maintain a single source of truth.
  • When a workstream reaches ✅, add a Decision Log entry with outcome, owner, and any lingering follow-ups.
  • Before lights out, confirm App Store Connect status (Processing, Ready to Test, Waiting for Review) and log it here alongside the date.