mobile-stability-runnerlisted
Install: claude install-skill mytechsonamy/VibeFlow
# Mobile Stability Runner
Functional E2E asks "does the flow work?"; this asks "**does the app crash?**" —
the failure mode that actually bites mobile, and especially Expo, where the
crash is usually *not* in the happy path but at cold start (a native-module /
config mismatch) or on a lifecycle event. It's the mobile sibling of the
front-end battery.
## Phase Contract
Runs in **TESTING**, **mobile only**. Read `vibeflow.config.json` → `platform`.
If it is not `ios` / `android` / `all`, emit "not a mobile platform — skipping"
and stop. Writes test/flow files into the project + `.vibeflow/reports/mobile-stability-report.md`.
## Step 1: Detect the stack + runner (Expo-aware)
Fingerprint the mobile project — never assume:
- **Expo vs bare RN** — Expo if `app.json` / `app.config.{js,ts}` exists **and**
`expo` is a dependency. Note managed vs bare (`expo prebuild` / an `ios`/`android`
dir present).
- **Runner (auto-detect):**
- **Expo → Maestro** (works against Expo Go or a dev-client build; the smoothest
path for managed Expo). Use a **dev-client** / **EAS Build** when the increment
uses native modules Expo Go can't host.
- **bare React Native → Detox** (existing `e2e-test-writer` infra).
- Record the choice + why in the report.
- **Crash reporter** — detect Sentry (`@sentry/react-native`), Crashlytics
(`@react-native-firebase/crashlytics`), or Expo error reporting; if present,
you'll pull crashes captured during the run.
- **Device / simulator availabi