# Mobile Sim Verification

Verify apps/mobile behavior end-to-end on the iOS simulator against a local API and...

- Repository: https://github.com/ParadevAI/Paradev (15823 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ParadevAI/Paradev --skill mobile-sim-verification -g -a claude-code -y`
Codex: `npx skills add ParadevAI/Paradev --skill mobile-sim-verification -g -a codex -y`
Cursor: `npx skills add ParadevAI/Paradev --skill mobile-sim-verification -g -a cursor -y`
Gemini CLI: `npx skills add ParadevAI/Paradev --skill mobile-sim-verification -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add ParadevAI/Paradev`

## Description

Verify apps/mobile behavior end-to-end on the iOS simulator against a local API and relay, with Maestro for input and a stand-in host instead of a second machine. Use when asked to verify, reproduce, screenshot, or edge-test a mobile change in the real app rather than in tests.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Mobile Simulator Verification

The mobile counterpart to `cdp-verification`. There is no CDP on a phone: input goes through
Maestro, evidence comes from `simctl` screenshots and recordings, and state comes from the real local
API and relay. "Rules" is what counts as valid evidence. "Mechanics" is how to get there.
`apps/mobile/scripts/e2e/host-states.sh` is a working example.

## Rules

1. **Use the real screen.** Sign in and reach the screen the way a user does. A temporary preview
   route that mounts one component with fixed props is diagnostic support, and must be reported as
   such. It hides the header, the data hooks, loading states and navigation.

2. **Drive state through real services.** Change what the app sees by changing the local API or
   relay (register a host, open or close its socket), not by seeding the query cache.

3. **Run the edge pass before reporting "tested".** The main path is not the test. At minimum:
   cold start, a dependency down (relay or API stopped), recovery when it returns, app backgrounded
   and resumed, rapid state flapping, a very long name, one long-string locale (German) and one CJK
   locale, and the largest text size. Say which you ran and which you did not.

4. **Never show "unknown" as a negative.** A query that is pending or failed has not said "offline",
   "empty" or "none". Check what the screen paints in both states; this is the most common mobile
   bug found by this process.

5. **Catch flashes with a recording.** A screenshot taken after a `sleep` cannot show a state that
   lasts half a second. Record the launch and diff the frames.

6. **Attribute failures correctly.** Before reporting that a check is red on main, confirm it in CI.
   A fresh worktree's mobile typecheck shows errors in unrelated packages that CI does not.

## Mechanics

### Services

Start each in a Paradev terminal so it outlives the tool call. `--local` is required; without it
the command returns nothing.

The rest: https://github.com/ParadevAI/Paradev/blob/HEAD/.agents/skills/mobile-sim-verification/SKILL.md
