# Deterministic Delivery SMS Proof-Short Render Pattern

Use this reference when rendering beginner-friendly Digital Red Flags / Scam Self-Defense Shorts where the core visual is a phone/SMS scam mockup, especially `delivery-sms-trap-35s`-style videos.

## When to use

- User approves a screen/mockup-led scam-self-defense candidate and asks to make the next video.
- The scam screen needs readable controlled text: package SMS, small fee, short deadline, link, app-open safer move.
- AI image generation is unnecessary or risky because exact UI text/data must be safe and legible.

## Durable pattern

Build the MP4 with a deterministic renderer:

1. **Phone/SMS mockup**
   - Large phone screen, 9:16 canvas.
   - Fictional generic sender, e.g. `Parcel Notice`.
   - Use short safe text only:
     - `Your package is on hold.`
     - `Pay CHF 1.95 customs fee.`
     - `Delivery expires today.`
     - `example.com/hold`
   - Keep the fake URL short enough that it does not clip on mobile. Long strings like `delivery.example.com/hold` can run off the mockup card at 1080px.
   - No real courier names, logos, phone numbers, QR codes, live domains, or copied scam examples.

2. **Scene order**
   - 0–2s: visible trap + hook — delivery text, fee, deadline, pay button.
   - 2–7s: why it feels normal — package, tiny fee, deadline.
   - 7–15s: red flag reveal — pressure.
   - 15–24s: safer move — open the delivery app yourself.
   - 24–30s: screenshot checklist — max 3 bullets.
   - 30–34s: memorable rule — “If it makes you hurry, slow down.”

3. **Voice/subtitles**
   - Simple English, B1/B2.
   - Active-word subtitles remain white/yellow, no box/bar.
   - Prefer provider word-boundary events. If the environment/provider returns no usable word boundaries, use a manual script-timing fallback: sentence start times + per-word interpolation, then regenerate ASS captions. Record this as a fallback, not as the preferred sync method.

4. **Export QA**
   - Render final MP4 as 1080x1920, yuv420p, SAR 1:1, DAR 9:16.
   - Probe with ffprobe and hash the final file.
   - Extract/inspect frames from: hook, red-flag reveal, safer-move, checklist, CTA.
   - QA the first frame specifically: trap understandable without audio, no clipping, no real brand/logo/phone/QR, fake URL safe.
   - QA subtitles on an actual rendered frame, not just the contact sheet.

## Common pitfalls

- Do not use AI image generation to create the SMS text; deterministic UI is safer and more legible.
- Do not make the first frame cinematic but vague. The fee, deadline, and payment pressure must be visible immediately.
- Do not let fake links clip; shorten to reserved domains such as `example.com/hold`.
- Do not assume EdgeTTS or another TTS provider will always yield word-boundary events. Verify the word count; if zero, regenerate captions from a manual timing fallback before delivery.
- Do not deliver solely from contact-sheet QA. Inspect at least one frame with subtitles burned in.
