git:20260630.f776d64 to git:20260630.1d68b55

50 added, 9 removed. Audit A to A.

---
name: ios-simulator-flow-evidence
description: >-
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".
- status: scaffold
- sources: []
+ status: draft
+ sources:
+ - "axe --help (screenshot, record-video) and xcrun simctl io help (screenshot, recordVideo); each reference file carries the per-command provenance"
+ - https://developer.apple.com/documentation/xcode/capturing-screenshots-and-videos-from-simulator
---
# iOS Simulator Flow Evidence (extraction, not publishing)
- Owns getting artifacts OUT of the simulator. A separate github-proof-presentation
- skill (external) consumes them; the seam is references/artifact-contract.md.
+ Owns getting artifacts OUT of the simulator. A separate **github-proof-presentation**
+ skill (external) consumes them; the seam is `references/artifact-contract.md`. This skill
+ produces the bundle; it does not publish it.
+ ## The three artifact kinds
- ## Scope
- TODO
+ A driven flow (see **ios-simulator** `references/driving.md`) leaves three kinds of proof:
- ## Out of scope
- Publishing/presenting artifacts -> external github-proof-presentation.
+ 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 external presentation skill
+ relies on that contract; do not break it without updating the presentation side.
+
## Honest can't-do list (simulator limits)
- TODO: no push delivery, no real camera, no phone calls, limited network observation.
+ Evidence from a simulator proves **UI, navigation, wiring, and state**, not device fidelity.
+ A simulator cannot:
+
+ - **deliver a real push notification** (no APNs token; 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 -> external **github-proof-presentation**. Driving the
+ flow itself -> **ios-simulator** and **expo-ios-simulator**.