What problem does it solve? iOS end-to-end testing for the Random Timer app often depends on a single physical CEO iPhone, creating contention and blocked QA loops. This Skill routes device E2E work to a Lakr233/vphone-cli virtual iPhone (or iOS Simulator) instead, with a doctor check that fails closed when SIP/AMFI requirements are not met. ## Core Features & Use Cases - Environment gating: Runs python3 scripts/vphone_doctor.py --json first and requires citing status and blockers before any device work. - Ordered device preference: Enforces vphone (when ready) → iOS Simulator + Maestro → never the CEO physical handset. - Fail-closed fallback: When status is blocked_sip_amfi or blocked_cli_missing, runs ./scripts/device-tests/run-ios-simulator.sh --maestro --smoke-only. - Use Case: Before running a StoreKit sandbox paywall smoke test, an agent checks vphone readiness, and if blocked, automatically falls back to a Maestro Simulator smoke run without touching the physical phone. ## Quick Start Ask the agent to run the vphone doctor check and then execute an iOS smoke test on the virtual iPhone or Simulator fallback.