docs(task-53): retire platform safe-zone requirement

This commit is contained in:
2026-11-04 11:35:29 -08:00
parent bde2a4cf4b
commit ede6ecac8e
3 changed files with 14 additions and 19 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
## Next action ## Next action
- TASK 53 remains the next queued output task: check 9:16 safe zones and caption placement. - TASK 53 remains the next queued output task: confirm YouTube displays the 9:16 live output without distortion or letterboxing.
- Do not push absent a checkpoint request. - Do not push absent a checkpoint request.
## Landmines ## Landmines
+1 -1
View File
@@ -41,7 +41,7 @@ persisted; renderer mirrors `Services/ChatBoxRenderer.cs`.
> 2026-11-07 are a failure of the plan, not a scheduling note. > 2026-11-07 are a failure of the plan, not a scheduling note.
| Task | Status | Scope | Detail | | Task | Status | Scope | Detail |
|---|---|---|---| |---|---|---|---|
| 53 | 🔶 **NEXT** | Output-format contract — next slice: 9:16 safe-zone and caption geometry; six emitted size/FPS modes have been verified from recordings | [`task-53`](TASKS/task-53-output-formats.md) | | 53 | 🔶 **NEXT** | Output-format contract — next slice: confirm YouTube's vertical live-player output; six emitted size/FPS modes have been verified from recordings | [`task-53`](TASKS/task-53-output-formats.md) |
| — | ☐ | Output entitlement: change `OutputProfile` and its tests to free at 30 fps / paid at 60 fps, independent of resolution | [`commercial`](docs/ai/commercial.md) | | — | ☐ | Output entitlement: change `OutputProfile` and its tests to free at 30 fps / paid at 60 fps, independent of resolution | [`commercial`](docs/ai/commercial.md) |
| 3·17 | ☐ | **Text layer** — content, font family/size/weight/style, colour, alignment, drag/resize, persisted | [`task-03`](TASKS/task-03-capture-pipeline.md) | | 3·17 | ☐ | **Text layer** — content, font family/size/weight/style, colour, alignment, drag/resize, persisted | [`task-03`](TASKS/task-03-capture-pipeline.md) |
| 21 | 🔶 | Media source: acquisition wiring + file picker + loop/volume UI (decoder, manager, pacing, loop all shipped — **no `AcquireAsync` caller exists**) | [`task-21`](TASKS/task-21-media-source.md) | | 21 | 🔶 | Media source: acquisition wiring + file picker + loop/volume UI (decoder, manager, pacing, loop all shipped — **no `AcquireAsync` caller exists**) | [`task-21`](TASKS/task-21-media-source.md) |
+12 -17
View File
@@ -1,14 +1,13 @@
# TASK 53 — Output-format verification: Shorts / TikTok geometry (queued 2026-10-08) # TASK 53 — Output-format verification: vertical and landscape outputs (queued 2026-10-08)
> Catalog: [`TASKS.md`](../TASKS.md) — status and requirements live here. > Catalog: [`TASKS.md`](../TASKS.md) — status and requirements live here.
**Why:** the output formats have never been tested end-to-end. The site claims "vertical 1080p60 **Why:** the site claims vertical 1080p60 (9:16), but the full route from compositor crop through
(9:16)" and Shorts-style streams, but nobody has verified that the geometry actually comes out FFmpeg scaling to YouTube and the local recording needs verification.
correct for Shorts and TikTok — safe zones, caption clearance, and the text-safe inset all still
need checking against a real capture.
**Goal:** prove the vertical/short-form path is geometrically correct, or fix the gaps and then **Goal:** prove each output tier has the expected dimensions and frame rate, and that vertical live
prove it. Make the output formats a tested, locked contract instead of an assumption. and recorded outputs preserve the composed image. Creators control layer placement; this task does
not promise platform-specific safe zones or keep content clear of every viewer overlay.
**Slices (one integration test each, in order):** **Slices (one integration test each, in order):**
@@ -26,16 +25,12 @@ prove it. Make the output formats a tested, locked contract instead of an assump
| Vertical 1080p60 | `rec6-1080p60-vert.mp4` | 1080×1920 @60 fps | | Vertical 1080p60 | `rec6-1080p60-vert.mp4` | 1080×1920 @60 fps |
2. ✅ **9:16 output resolution (resolution-only acceptance, 2026-11-04)** — creator-supplied 2. ✅ **9:16 output resolution (resolution-only acceptance, 2026-11-04)** — creator-supplied
`ty-20261104-0927-982-0000-2.mp4` reports H.264 1080×1920 at 60 fps. The creator accepted the `ty-20261104-0927-982-0000-2.mp4` reports H.264 1080×1920 at 60 fps. The creator accepted the
resolution check only; captions and visual safe-zone placement were not reviewed. resolution only; no platform-specific safe-zone promise is part of acceptance.
3. ☐ **9:16 safe-zone geometry** — confirm the composite is laid out for a phone: viewer-safe top 3. ☐ **Vertical YouTube live-player check** — private Test Stream at 9:16; confirm YouTube receives
strip (TikTok/Shorts overlays live top-left and bottom), caption/text clearance, and webcam and displays a vertical picture without distortion or letterboxing. Record the creator's
placement. Test a known layout and assert element placement against the contract. observation; placement relative to YouTube controls remains creator-controlled.
4. ☐ **Live-shorts check on a real stream** — private Test Stream at 9:16, then pull the thumbnail/ 4. ☐ **Recorded .mp4 matches output** — confirm the vertical local recording uses the same crop and
player quirk list from YouTube (Title visible, overlays); confirm nothing the streamer put on composed picture as the live stream, not merely the same dimensions.
screen sits under YouTube's own chrome. This is the "never tested" item the creator flagged —
test on a real vertical test stream and cite the observation.
5. ☐ **Recorded .mp4 matches output** — the saved vertical .mp4 must carry the same 9:16 frame the
stream showed, not a squeezed/wider master. Test: record vertical, decode first frames, assert.
**Design decisions:** **Design decisions:**