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

18 lines
934 B
Markdown

# 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`.