Proof audit, pass 2 narration recheck, for [#28065](https://git.cafe/pingdotgg/t3code/pull/28065).

Findings

No missing or contradicted narration remains in the four requested recording rows. Every named interaction is visible within the stated ±0.2-second window or the stated range; all eight quoted durations agree with ffprobe after rounding. The named labels match the extracted frames. All eight absolute final frames are closed, and the measured closed holds round to the corrected claims.

The tolerance matters: a few rounded markers precede the fully visible state. For example, A06 before's default email is readable at 4.4 seconds within the 4.2 ±0.2-second window, its Work popover is fully visible at 9.0 within the 8.8 ±0.2-second window, and B06 after's popup is clear at 1.9 within the 1.7 ±0.2-second window. These do not contradict the corrected narration.

B02 P-dark narration is unchanged, byte for byte, against the previous round-2 Evidence document retained at `/tmp/lead-28065-r1/capture2/evidence-section.md`. That previous document still contains the old rejected wide-web narration and old “more than 1.5 seconds” blanket claim, so this comparison is against the previous version. The unchanged phone paragraph's SHA-256 is `3dd3e17f71d39424f143848818ddb3ad420b35b958cf22b7c29734a0c39b0597`. Its previously accepted recordings were not re-audited.

| Row, before and after | Status | Durations, before / after | Closed holds, before / after | Narration and labels |
|---|---|---|---|---|
| A06 W light | SUFFICIENT | 12.966667 / 12.600000 s | 1.800000 / 1.233333 s | Both default/Work opens, email reveals and dismissals fall within tolerance. Before default title is `Claude`; revealed emails are `a@example.com` and `beta@work.test`. Work retains its name. |
| B02/B01/B07 W dark | SUFFICIENT | 11.566667 / 10.666667 s | 1.966667 / 2.000000 s | Command entry/selection, masked popup, both reveals, last-row scroll and closure match. Before labels include `claude-c@example.net.json`, `claude-b@example.com.json`, `team-seat.json`, `UPPER.JSON`; after labels omit those suffixes. |
| B06 W dark | SUFFICIENT | 10.466667 / 10.133333 s | 1.833334 / 1.966666 s | Command entry/selection and popup/close match. `codex-team-a.json` and `codex-team-b.JSON` become distinct `codex-team-a` and `codex-team-b` rows. Both rows and the Codex API-key notice appear without scrolling. |
| B02 native iPad dark | SUFFICIENT | 31.706667 / 33.908333 s | 0.666667 / 0.680000 s | Command list/filter, masked opening, reveal, downward scroll, last rows, return to top and dismissal match the stated points/ranges. `claude-c@example.net.json`, `team-seat.json`, `UPPER.JSON` become `claude-c@example.net`, `team-seat`, `UPPER`. |

Exact closed-tail measurements

Frames are zero-based. Holds are media duration minus the first closed frame's PTS, including the presentation interval of the final frame. The boundary frame pairs and the absolute finals were independently extracted and visually inspected.

| Recording | Last open frame / PTS | First closed frame / PTS | Absolute final frame / PTS | ffprobe duration | Closed hold |
|---|---|---|---|---|---|
| A06 W light before | 334 / 11.133333 | 335 / 11.166667 | 388 / 12.933333 | 12.966667 | 1.800000 |
| A06 W light after | 340 / 11.333333 | 341 / 11.366667 | 377 / 12.566667 | 12.600000 | 1.233333 |
| B02/B01/B07 W dark before | 287 / 9.566667 | 288 / 9.600000 | 346 / 11.533333 | 11.566667 | 1.966667 |
| B02/B01/B07 W dark after | 259 / 8.633333 | 260 / 8.666667 | 319 / 10.633333 | 10.666667 | 2.000000 |
| B06 W dark before | 258 / 8.600000 | 259 / 8.633333 | 313 / 10.433333 | 10.466667 | 1.833334 |
| B06 W dark after | 244 / 8.133333 | 245 / 8.166667 | 303 / 10.100000 | 10.133333 | 1.966666 |
| Native iPad before | 459 / 31.001667 | 460 / 31.040000 | 473 / 31.681667 | 31.706667 | 0.666667 |
| Native iPad after | 459 / 33.186667 | 460 / 33.228333 | 473 / 33.873333 | 33.908333 | 0.680000 |

Thus the revised blanket web claim, 1.2 seconds for A06 after through 2.0 seconds, is consistent with the recordings. The native 0.7-second claims also round correctly. Both native close markers now fall inside their clips and within ±0.2 seconds of the actual transition.

![A06 after: last open frame, first closed frame and absolute final frame establish the 1.233333-second closed hold](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce941499bd7efcd3/A06-W-light-after-tail-proof.jpg)

![Native iPad after: last open frame, first closed frame and absolute final frame establish the 0.680000-second closed hold](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5dcb2be282dcd50/B02-native-ipad-dark-after-tail-proof.jpg)

Coverage and method

- Read the corrected [full Evidence document](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/438b6be2e1f810f9/evidence-full-28065.md) and [previous audit report](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b929880f02073a7f/audit-report.md). Downloaded exactly the eight requested MP4s with curl into the designated scratch directory.
- Fully decoded all 3,000 frames across the eight videos. Extracted each narrated timestamp and ±0.2 seconds, both endpoints and a midpoint for native scroll ranges, and every absolute final frame: 206 timestamp/final requests selecting 187 unique frames, plus separate full-resolution PNGs for the tail boundaries and finals.
- Used ffprobe frame PTS for the variable-frame-rate native videos. Every sheet prints the actual encoded PTS alongside the requested timestamp; a request can fall between encoded frames. Visually inspected all timestamp triplets, all label states, each last-open/first-closed pair, and every absolute final frame. Pixel comparisons only located candidate tail boundaries; visual inspection confirmed them.
- [Proof archive](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cf988badc4ddc85c/narration-audit-proof.zip) contains the extracted full-resolution frames, readable timestamp sheets, all eight tail proofs, ffprobe outputs, per-frame PTS/claim manifests, download URLs/SHA-256 hashes, the unchanged-phone comparison, and extraction scripts. MP4s remain at their original Evidence URLs.
- Scope is the supplied capture comparison, [85bd3f2a](https://git.cafe/pingdotgg/t3code/commit/85bd3f2a2a0ad4a8ddf2950e01db80765e9a1bf4) → [0277fd69](https://git.cafe/pingdotgg/t3code/commit/0277fd6975bcf7b79b12833bee93ed714844b319). This narration-only audit does not independently revalidate the later merge, code, accepted stills or diffs.
- All requested narration checks were completed within the 25-minute budget. No source edits, pushes, PR comments, browser/device sessions or tests. `/home/ubuntu/wt/pr-28065` was not accessed. Disk space remained 13 GB available. The created scratch directory was removed after evidence upload.

Evidence preserved with the [ghdrop skill](/home/ubuntu/.codex/skills/ghdrop/SKILL.md); no forge content was written.

FRICTION:

- tool | Web fetch could not open the evidence host; the required curl downloads succeeded | Use curl directly for this host.
- tool | Initial tail-analysis subprocess ended with status 143 before finishing all clips; lighter scoring completed the unfinished clips and every boundary was visually verified | Use lighter per-frame scoring from the start.

VERDICT: SUFFICIENT
