mobile-e2e
Run apps/mobile Maestro end-to-end tests in this repo. Use when an agent needs to validate mobile auth flows on iOS Simulator or Android Emulator. Current maintained coverage is register, sign out, and sign in.
Best use case
mobile-e2e is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Run apps/mobile Maestro end-to-end tests in this repo. Use when an agent needs to validate mobile auth flows on iOS Simulator or Android Emulator. Current maintained coverage is register, sign out, and sign in.
Teams using mobile-e2e should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/mobile-e2e/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How mobile-e2e Compares
| Feature / Agent | mobile-e2e | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Run apps/mobile Maestro end-to-end tests in this repo. Use when an agent needs to validate mobile auth flows on iOS Simulator or Android Emulator. Current maintained coverage is register, sign out, and sign in.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# Mobile E2E Run the mobile Maestro tests for `apps/mobile`. ## Files that matter - Runner: `apps/mobile/e2e/run-maestro.sh` - iOS auth flow: `apps/mobile/e2e/flows/ios/auth.yaml` - Android auth flow: `apps/mobile/e2e/flows/android/core.yaml` - Shared auth flows: `apps/mobile/e2e/flows/shared/*.yaml` - Artifacts: `apps/mobile/e2e/artifacts/` ## Always do first From repo root: ```bash cd apps/mobile pnpm run e2e:doctor pnpm run typecheck ``` ## iOS Use a simulator `.app` build, not an Expo development client. ### Preferred simulator Prefer the **latest installed iOS runtime** and a **latest-generation iPhone simulator**. When multiple simulators are available, bias toward the newest iPhone model on the newest installed iOS version. ### Boot simulator ```bash xcrun simctl boot <IOS_UDID> xcrun simctl bootstatus <IOS_UDID> -b open -a Simulator --args -CurrentDeviceUDID <IOS_UDID> ``` ### App bundle `run-maestro.sh` can resolve the app bundle from one of these sources: - `MAESTRO_IOS_APP_PATH` - a local `build-*.tar.gz` in `apps/mobile` - an existing `DerivedData/.../Release-iphonesimulator/Folo.app` If none of those exist, build one first. ### Build simulator app when missing If `Folo.app` is not available yet: ```bash cd apps/mobile/ios pod install xcodebuild -workspace Folo.xcworkspace \ -scheme Folo \ -configuration Release \ -sdk iphonesimulator \ -destination 'id=<IOS_UDID>' \ build ``` ### Apple Silicon simulator optimization When running on an Apple Silicon Mac and building only for the simulator used in the current run, prefer compiling only the active `arm64` simulator architecture: ```bash xcodebuild ... \ ONLY_ACTIVE_ARCH=YES \ ARCHS=arm64 ``` Use this optimization only for local self-test / e2e simulator builds tied to the current machine. Do not use it when you need a universal simulator app for other machines or when running on Intel Macs. Expected output pattern: ```bash ~/Library/Developer/Xcode/DerivedData/.../Build/Products/Release-iphonesimulator/Folo.app ``` ### Run iOS auth flow ```bash cd apps/mobile MAESTRO_IOS_DEVICE_ID=<IOS_UDID> \ MAESTRO_IOS_APP_PATH=<PATH_TO_Folo.app> \ pnpm run e2e:ios ``` ## Android Use a **release APK**, not an Expo development build. ### Java Use Android Studio bundled JBR: ```bash export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" export PATH="$JAVA_HOME/bin:$PATH" ``` ### Android SDK ```bash export ANDROID_HOME="$HOME/Library/Android/sdk" export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk" ``` If `apps/mobile/android/local.properties` is missing, create it with: ```bash echo "sdk.dir=$HOME/Library/Android/sdk" > apps/mobile/android/local.properties ``` ### Build release APK If `apps/mobile/android` does not exist locally, generate it first with Expo prebuild / run-android tooling. Then build the release APK: ```bash cd apps/mobile/android ./gradlew app:assembleRelease --console=plain ``` Expected APK path: ```bash apps/mobile/android/app/build/outputs/apk/release/app-release.apk ``` ### Install to emulator ```bash adb -s emulator-5554 install -r apps/mobile/android/app/build/outputs/apk/release/app-release.apk ``` ### Run Android auth flow Start a booted emulator first, then: ```bash cd apps/mobile pnpm run e2e:android ``` ## Result checks Successful auth validation means: - register flow finishes - sign-out reaches `login-screen` - login flow makes `login-screen` disappear ## Debugging output Inspect these folders after a run: ```bash apps/mobile/e2e/artifacts/ios/ apps/mobile/e2e/artifacts/android/ ``` For a one-off focused run, invoke Maestro directly against a single flow and a custom debug directory.
Related Skills
mobile-self-test
Self-test a mobile feature change or bug fix after implementation in `apps/mobile`. Use this whenever the user asks to verify a mobile change, run simulator acceptance, smoke-test a mobile PR, or provide screenshot proof for a mobile fix. This skill decides between prod vs local API mode, starts the local follow-server when needed, builds a release app, uses Maestro only to bootstrap registration for non-auth work, then switches to screenshot-driven visual validation and returns screenshot evidence.
mobile-release
Perform a regular mobile release from the dev branch. Gathers commits since last release, updates changelog, bumps version, updates iOS Info.plist, and creates release PR to mobile-main.
installing-mobile-preview-builds
Builds and installs the iOS preview build for apps/mobile using EAS local build and devicectl. Use when the user asks to install a preview/internal iOS build on a connected iPhone for production-like testing.
Folo CLI Skill
## Trigger Conditions
update-deps
Update all dependencies across frontend and backend projects. Reads changelogs for breaking changes, checks affected code, runs tests, and provides a summary. Use when updating npm dependencies across the monorepo.
desktop-release
Perform a regular desktop release from the dev branch. Gathers commits since last release, updates changelog, evaluates mainHash changes, bumps version, and creates release PR.
mobile-games
Mobile game development principles. Touch input, battery, performance, app stores.
testing-mobile-api-authentication
Tests authentication and authorization mechanisms in mobile application APIs to identify broken authentication, insecure token management, session fixation, privilege escalation, and IDOR vulnerabilities. Use when performing API security assessments against mobile app backends, testing JWT implementations, evaluating OAuth flows, or assessing session management. Activates for requests involving mobile API auth testing, token security assessment, OAuth mobile flow testing, or API authorization bypass.
performing-mobile-device-forensics-with-cellebrite
Acquire and analyze mobile device data using Cellebrite UFED and open-source tools to extract communications, location data, and application artifacts.
performing-mobile-app-certificate-pinning-bypass
Bypasses SSL/TLS certificate pinning implementations in Android and iOS applications to enable traffic interception during authorized security assessments. Covers OkHttp, TrustManager, NSURLSession, and third-party pinning library bypass techniques using Frida, Objection, and custom scripts. Activates for requests involving certificate pinning bypass, SSL pinning defeat, mobile TLS interception, or proxy-resistant app testing.
intercepting-mobile-traffic-with-burpsuite
Intercepts and analyzes HTTP/HTTPS traffic from mobile applications using Burp Suite proxy to identify insecure API communications, authentication flaws, data leakage, and server-side vulnerabilities. Use when performing mobile application penetration testing, assessing API security, or evaluating client-server communication patterns. Activates for requests involving mobile traffic interception, Burp Suite mobile proxy, API security testing, or mobile HTTPS analysis.
implementing-mobile-application-management
Implements Mobile Application Management (MAM) policies to protect enterprise data on managed and unmanaged mobile devices through app-level controls including data loss prevention, selective wipe, app configuration, and containerization. Use when securing corporate apps on BYOD devices, implementing Intune App Protection Policies, or enforcing data separation between personal and work apps. Activates for requests involving MAM deployment, app protection policies, mobile containerization, or BYOD security.