# Deterministic premium screen-mockup rendering for Proof Shorts

Use this when producing Everyday Red Flags / TrueTraceShorts videos where the story can be carried by controlled UI/screen mockups rather than AI-generated images. This is especially useful for invoice, email, payment, login, SMS, support-popup, or marketplace-chat scams where critical text must remain exact and readable.

## When to choose this pattern

- Critical scam text, URLs, bank details, codes, payment routes, invoice lines, or safety rules must be renderer-owned and not hallucinated by an image model.
- The user asks for the next video and speed/reliability matters more than a fresh AI-image styleframe pass.
- Prior clean-image workflows apply: subtitles are allowed, but no arrows, focus boxes, circles, progress bars, labels, caption boxes, or explanatory renderer overlays.
- The concept is a normal-person scam self-defense proof short: one visible screen, one red flag, one safer move, one memorable rule.

## Production pattern

1. Pick the next backlog topic and avoid recent duplicates.
2. Write the final English voiceover first; keep it simple enough for silent-viewing caption blocks.
3. Create 6 vertical 1080x1920 keyframes with deterministic Pillow/SVG/HTML-style mockups:
   - scene 1: visible normal screen + hidden/quiet red flag;
   - scene 2: the red flag screen again, close enough to read;
   - scene 3: why the trick works;
   - scene 4: safer move using a trusted channel/contact;
   - scene 5: confirmation/check step;
   - scene 6: the memorable rule / share reason.
4. Keep any UI cards inside frame bounds. Shorten scene-owned text rather than letting it clip; split long button or rule text into two lines.
5. Render subtle Ken Burns/crossfades and text-only active-word subtitles. No additional explanatory overlays.
6. Generate contact sheet and QA frames, then inspect real rendered frames before delivery.
7. Build the same hash-bound YouTube private-upload package as Chatterbox final-near renders, with `thumbnail_path=null` unless explicitly requested.

## QA lessons

- Contact sheets can hide clipping because each frame is scaled down, but they still catch obvious text overflow. If a scene-owned line is clipped in the contact sheet, fix the keyframe and regenerate before re-rendering.
- Always overwrite/regenerate deterministic scene images after code changes; do not skip if the image file already exists, or stale clipped keyframes will survive into the next render.
- Extract QA frames within the actual video duration. For a ~35.8s video, `-ss 36` may not produce a frame; prefer 34–35s for the ending sample.
- Inspect at least one frame with active subtitles and at least one ending rule frame. Check: 1080x1920, SAR 1:1, DAR 9:16, no black bars, no clipped scene text, no clipped subtitles, and no unwanted overlay shapes.

## Example topic fit

Invoice bank-detail change scam:

- Red flag: “Please use our NEW bank account for this payment.”
- Safer move: open a trusted contact already saved; call/message through the usual channel.
- Rule: “New bank details need a second check.”

This pattern is not a downgrade from AI images for these topics; it is the safer method when exact screen semantics matter. Dry, controlled, annoyingly reliable — which is rather the point.