← ClaudeAtlas

mobile-stability-runnerlisted

Mobile crash & stability testing for a UI increment on iOS/Android. Expo-aware — auto-detects Expo (managed/bare) and picks the runner (Expo → Maestro on Expo Go / dev-client, bare React Native → Detox). Runs a crash-focused battery beyond functional E2E — cold-start smoke, background/foreground, low-memory, deep links, permission denial, network loss mid-flow, rotation, rapid navigation — and detects native crashes / JS redbox / ANR, surfacing anything captured by a configured crash reporter (Sentry / Crashlytics / Expo). Writes mobile-stability-report.md. Graceful-degrades to a local-run breadcrumb when no simulator/device is available. Use in TESTING when the platform is mobile.
mytechsonamy/VibeFlow · ★ 0 · AI & Automation · score 75
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