# IOS Simulator Flow Evidence

> Capture proof of a driven iOS-simulator flow: vision-verifiable screenshots, video (mp4), and a manifest tying steps to artifacts, plus an honest list of what a simulator cannot do (deliver a push, use a real camera, place a call, fully observe the network). Produces artifacts to a contract that a separate GitHub-presentation skill consumes; this skill owns extraction, not publishing. Sits beside ios-simulator; project-agnostic. Use for "capture evidence of an iOS flow" or "record the simulator".

- Skill: `simiancraft/ios-simulator-flow-evidence` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add simiancraft/ios-simulator-flow-evidence`
- Raw SKILL.md: https://api.skillmd.com/api/skills/simiancraft/ios-simulator-flow-evidence/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: simiancraft (https://skillmd.com/u/simiancraft)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/simiancraft/ios-simulator-flow-evidence

---


# iOS Simulator Flow Evidence (extraction, not publishing)

Owns getting artifacts OUT of the simulator. The separate **prove-work-on-github**
skill consumes them; the seam is `references/artifact-contract.md`. This skill
produces the bundle; it does not publish it.

## The three artifact kinds

A driven flow (see **ios-simulator** `references/driving.md`) leaves three kinds of proof:

1. **A sequence of screenshots** (`references/screenshots.md`): one PNG per meaningful step,
   each vision-verified to show the state it claims. The default, most reviewable evidence.
2. **A video** (`references/video.md`): the whole flow as one MP4 or MOV. An animated GIF is
   **not** a native output; it is a post-process that needs a separate tool (see that file).
3. **A manifest** (`references/flow-manifest.md`): a machine-readable index tying each step to
   its artifact and the state it proves, so a reviewer (or the presentation skill) can read
   the bundle without re-running the flow.

All capture comes from the **device framebuffer**, so the Simulator window's size and position
never matter (see **ios-simulator** `references/capture.md`); never resize or full-screen it.

## The contract

Everything this skill emits conforms to `references/artifact-contract.md`: stable names,
known formats (PNG, MP4 or MOV), and the manifest shape. The consumer prove-work-on-github
relies on that contract; do not break it without updating the presentation side.

## Honest can't-do list (simulator limits)

Evidence from a simulator proves **UI, navigation, wiring, and state**, not device fidelity.
A simulator cannot:

- **vend a native APNs device token** (`getDevicePushTokenAsync`), so real remote-push
  registration is a device pass; a simulator can still display a payload via `xcrun simctl push`
  and receive a remote push on Xcode 14+ (see **expo-ios-simulator**
  `references/known-prompts.md` for the push-token alert this raises);
- **produce real camera or microphone frames** (no physical sensors);
- **place a phone call or send a carrier SMS**;
- **fully reproduce on-device network conditions** (no cellular radio; bandwidth and
  latency are the host's, not a real handset's).

If a flow's proof depends on any of these, list it under the manifest's `deviceOnly`
(see `references/flow-manifest.md`); it is a **device pass**, not something the simulator
evidence covers.

## Where to go

- `references/screenshots.md`: the per-step PNG sequence and vision-verification.
- `references/video.md`: recording MP4 / MOV, and the GIF post-process and its dependency.
- `references/artifact-contract.md`: the bundle shape the external skill consumes.
- `references/flow-manifest.md`: the step-to-artifact manifest.

## Out of scope

Publishing or presenting artifacts -> the separate **prove-work-on-github** skill. Driving the
flow itself -> **ios-simulator** and **expo-ios-simulator**.

