Expo Foundation
Purpose
Plan a clean Expo project foundation once mobile-stack-selection chose Expo: the build model (Expo Go vs development builds), EAS pipelines, OTA strategy, and the baseline libraries — each justified, not blanket-installed.
When to Use
- After Expo is the approved runtime, before feature work.
- When standardizing an existing Expo app's foundation.
- Not for React Native CLI projects (
react-native-cli-foundation).
Inputs
- Approved runtime (Expo) and stack area decisions.
- Requirement baseline; native-capability needs from
mobile-stack-selection.
Discovery Questions
- Does the app need native modules requiring development builds (vs Expo Go)?
- Will EAS Build/Submit and OTA updates be used?
- TypeScript (default yes)? Which navigation, and is safe-area needed?
- Which config plugins are required for native capabilities?
Responsibilities
- Decide build model: Expo Go for prototyping vs development builds for real native packages.
- Plan EAS Build / EAS Submit and OTA update strategy where valuable.
- Evaluate baseline libraries (install only what's needed): TypeScript, navigation (
mobile-navigation), Safe Area Context, vector icons (mobile-vector-icons), ESLint, Prettier.
- Plan config plugins for required native capabilities.
- Keep the foundation minimal; defer feature libraries to their skills.
Required Workflow
- Confirm Expo is approved.
- Choose build model (dev builds if native packages/plugins are needed).
- Plan EAS + OTA strategy.
- Select baseline libraries by need; delegate navigation/icons/state to their skills.
- Record the foundation plan; install nothing without approval.
Decision Rules
- Use development builds the moment a native package/config plugin is required — Expo Go is prototyping only.
- Enable EAS Submit/OTA only when they add value; document the release model (
mobile-release).
- TypeScript by default unless the project mandates otherwise.
- Add a library only when a requirement needs it (
../../stack-recommendation).
Rules
- No dependency installation without approval.
- Match Expo SDK conventions; don't eject to CLI to add something Expo supports.
- Defer feature concerns (auth, forms, state) to their dedicated skills.
Anti-Patterns
- Staying on Expo Go when native packages are needed.
- Installing a broad "starter kit" of libraries up front.
- Ejecting to CLI for capabilities Expo dev builds already cover.
Validation Checklist
Definition of Done
A recorded Expo foundation plan: build model, EAS/OTA strategy, justified baseline libraries, and config plugins — proportional and approval-pending, with feature libraries deferred to their skills.
Related Skills
mobile-stack-selection, mobile-navigation, mobile-vector-icons, mobile-environment-config, mobile-builds, mobile-release, ../../stack-recommendation.
Related Knowledge
../../../knowledge/ (mobile architecture decisions).
Related References
../../../references/mobile/ (screens, navigation) when populated.
Context Loading Guidance
- Requires: approved Expo runtime, requirement baseline, native-capability needs.
- Does not require: the full mobile skill set, app source, unrelated references.
- May load:
mobile-navigation, mobile-vector-icons, mobile-builds as foundation is assembled.
- Stop when: the foundation plan is recorded.
Token Efficiency Guidance
Plan from the requirement summary. Delegate to sub-skills rather than restating navigation/icon/state detail; keep the foundation list terse.
1---2name: expo-foundation3description: Use to plan an Expo mobile foundation after Expo is chosen — development builds vs Expo Go, EAS Build/Submit, OTA updates, TypeScript, navigation, safe-area, linting, and config plugins. Evaluates each option against need; installs nothing without approval.4---56# Expo Foundation78## Purpose910Plan a clean Expo project foundation once `mobile-stack-selection` chose Expo: the build model (Expo Go vs development builds), EAS pipelines, OTA strategy, and the baseline libraries — each justified, not blanket-installed.1112## When to Use1314- After Expo is the approved runtime, before feature work.15- When standardizing an existing Expo app's foundation.16- **Not** for React Native CLI projects (`react-native-cli-foundation`).1718## Inputs1920- Approved runtime (Expo) and stack area decisions.21- Requirement baseline; native-capability needs from `mobile-stack-selection`.2223## Discovery Questions2425- Does the app need native modules requiring **development builds** (vs Expo Go)?26- Will EAS Build/Submit and OTA updates be used?27- TypeScript (default yes)? Which navigation, and is safe-area needed?28- Which config plugins are required for native capabilities?2930## Responsibilities3132- Decide **build model**: Expo Go for prototyping vs **development builds** for real native packages.33- Plan **EAS Build / EAS Submit** and **OTA update** strategy where valuable.34- Evaluate baseline libraries (install only what's needed): TypeScript, navigation (`mobile-navigation`), Safe Area Context, vector icons (`mobile-vector-icons`), ESLint, Prettier.35- Plan **config plugins** for required native capabilities.36- Keep the foundation minimal; defer feature libraries to their skills.3738## Required Workflow39401. Confirm Expo is approved.412. Choose build model (dev builds if native packages/plugins are needed).423. Plan EAS + OTA strategy.434. Select baseline libraries by need; delegate navigation/icons/state to their skills.445. Record the foundation plan; install nothing without approval.4546## Decision Rules4748- Use **development builds** the moment a native package/config plugin is required — Expo Go is prototyping only.49- Enable EAS Submit/OTA only when they add value; document the release model (`mobile-release`).50- TypeScript by default unless the project mandates otherwise.51- Add a library only when a requirement needs it (`../../stack-recommendation`).5253## Rules5455- No dependency installation without approval.56- Match Expo SDK conventions; don't eject to CLI to add something Expo supports.57- Defer feature concerns (auth, forms, state) to their dedicated skills.5859## Anti-Patterns6061- Staying on Expo Go when native packages are needed.62- Installing a broad "starter kit" of libraries up front.63- Ejecting to CLI for capabilities Expo dev builds already cover.6465## Validation Checklist6667- [ ] Build model chosen (Go vs dev builds) with reason.68- [ ] EAS Build/Submit + OTA strategy decided.69- [ ] Baseline libraries selected by need.70- [ ] Config plugins planned for native capabilities.71- [ ] TypeScript decision recorded.72- [ ] No unapproved installs.7374## Definition of Done7576A recorded Expo foundation plan: build model, EAS/OTA strategy, justified baseline libraries, and config plugins — proportional and approval-pending, with feature libraries deferred to their skills.7778## Related Skills7980`mobile-stack-selection`, `mobile-navigation`, `mobile-vector-icons`, `mobile-environment-config`, `mobile-builds`, `mobile-release`, `../../stack-recommendation`.8182## Related Knowledge8384`../../../knowledge/` (mobile architecture decisions).8586## Related References8788`../../../references/mobile/` (screens, navigation) when populated.8990## Context Loading Guidance9192- **Requires:** approved Expo runtime, requirement baseline, native-capability needs.93- **Does not require:** the full mobile skill set, app source, unrelated references.94- **May load:** `mobile-navigation`, `mobile-vector-icons`, `mobile-builds` as foundation is assembled.95- **Stop when:** the foundation plan is recorded.9697## Token Efficiency Guidance9899Plan from the requirement summary. Delegate to sub-skills rather than restating navigation/icon/state detail; keep the foundation list terse.