
Mobile Sim Verification
Verify apps/mobile behavior end-to-end on the iOS simulator against a local API and...
Install
npx skills add ParadevAI/Paradev --skill mobile-sim-verification -g -a claude-code -y- Repository
- ParadevAI/Paradev15.8k
- Category
- Testing
- Updated
- 3d ago
- License
- See repository
- Context cost
- Mediumabout 1,799 tokens
- Runs scripts
- No, instructions only
What it does
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.
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
-
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.
-
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.
-
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.
-
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.
-
Catch flashes with a recording. A screenshot taken after a
sleepcannot show a state that lasts half a second. Record the launch and diff the frames. -
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.


