Files
Sauci/apps/mobile/AGENTS.md
T
jjbruntonandClaude Fable 5 ecc31a13a2 feat(release): enforce manifest and Info.plist release invariants
Extend release-preflight to reject an Android manifest missing the
READ_MEDIA_IMAGES/READ_MEDIA_VIDEO tools:node="remove" attributes and
an iOS Info.plist that regained dev-launcher-only keys, both
regressions introduced silently by expo prebuild during the SDK 54 to
56 upgrade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:03:04 +01:00

934 B

Mobile application

Expo React Native with Expo Router, Zustand, Supabase, RevenueCat, Firebase, and native iOS/Android targets.

  • Read DESIGN.md before UI changes.
  • Routes belong under app; feature logic belongs under src/features.
  • Reuse existing Zustand stores and clear user-scoped state during sign-out.
  • Check RevenueCat availability before native purchase operations.
  • Use .maybeSingle() when zero rows are valid and handle nullable profiles.
  • Keep route files thin; extract focused components/hooks when responsibilities diverge rather than enforcing a mechanical line limit.
  • Add stable accessibility labels or testID values for critical interactions.
  • Verify focused Jest tests, typecheck, lint, then native/Expo behavior as risk requires. UI work needs observable simulator evidence.
  • Before and after any expo prebuild, follow the "After native regeneration" checklist in docs/releasing.md.