Change screens and navigation
Reshape the Expo Router app without burying product logic in routes.
Routes live in src/app. The default structure is:
onboarding
auth + OTP
Today / Scan / Coach / Profile tabs
Activity
Notifications
Paywall
Settings
Account deletion
Deep-link destination
State galleryRename or replace a tab
Replace the Scan tab with a Projects tab. Keep four primary tabs. Make the
route file thin and put the reusable screen behavior in components/hooks.
Update icons, labels, analytics event types, deep-link allow-lists, tests, and
both languages. Preserve the old Scan integration contracts only if another
flow still uses them; otherwise remove them cleanly and run pnpm seams.Remove a feature
Removing a button is not enough. Ask the agent to inventory:
- route and navigation entry,
- components and hooks,
- mock data and tests,
- integration contract and adapter,
- environment/config values,
- permissions and native capabilities,
- analytics events and deep links,
- legal/store disclosures.
Example:
Remove voice input completely. Remove its UI, adapter selection, microphone
permission/config, temporary audio backend resources, tests, analytics, privacy
disclosure, and store declaration. Keep text chat complete. Run all seam and
native config checks after the change.Add a new screen
Describe its user goal and states, not just its title:
Add a Progress screen reachable from Today. It needs week/month tabs, loading,
empty, error, and populated states, a screen-reader summary for charts, large
text support, and mock data. Reuse existing cards and chart patterns. Do not
add a provider yet.After route changes, restart Expo if the file-based router looks stale. Do not put provider SDK calls directly inside a route.