# Readable silent-viewing captions for TrueTraceShorts / AutoShorts

Use this when producing short-form scam/self-defense videos where the viewer must understand the lesson even with audio muted.

## Core rule

Captions are not decoration. They must carry the story for silent viewers.

Optimize for:

1. Viewer recognizes the scam.
2. Viewer understands the red flag.
3. Viewer knows the safer move.
4. Video stays as short as possible, but not shorter than comprehension allows.

## Accepted reference pattern

The user explicitly approved the improved `erf-007` readable revision pattern:

- extend runtime when needed instead of compressing text into an old target;
- render voiceover sentence-by-sentence with short pauses between sentences;
- reduce caption page churn;
- use complete sentence/clause sense blocks;
- avoid single-word or two-word orphan caption pages;
- merge awkward ASR token splits for display, e.g. `POP -UP` -> `POP-UP`;
- inspect actual MP4 frames, not just contact sheets.

## Duration guidance

Length is chosen by understanding, not fixed duration:

- Simple red flag: 25–35s.
- Standard red flag / default Proof Short: 35–45s.
- Explanation or recovery: 45–60s.
- Deeper lesson / TikTok monetization test: 61–90s.
- Later longform guide: 5–8min.

If silent readability is poor, extend the video. A 46s readable proof is better than a 36s rushed proof.

## Caption block rules

- Prefer sentence-complete captions when they fit.
- Otherwise split at natural clause boundaries.
- Each caption page must be meaningful alone.
- Avoid cross-sentence splices that create half-thoughts.
- Never leave one final word on a new page.
- For active-word uppercase subtitles, allow slightly longer blocks if it preserves meaning and remains readable.
- Keep captions in mobile safe zone; inspect early/mid/final rendered frames.

## Practical implementation pattern

1. Write a script with short, direct sentences.
2. Generate TTS sentence-by-sentence rather than one long paragraph when readability matters.
3. Insert ~500–700ms pauses between sentence chunks.
4. Force-align words with Whisper/faster-whisper.
5. Build caption groups from source-script sentence boundaries, then map to ASR word timings.
6. Rebalance caption groups to avoid orphan tails.
7. Merge display-only token artifacts such as hyphenated words split by ASR.
8. Render with only text subtitles as renderer overlay.
9. Extract QA frames inside the actual video duration and visually inspect:
   - no clipping;
   - no black bars/squeezing;
   - caption block makes sense without audio;
   - no non-subtitle overlays;
   - scene text and subtitle text do not fight each other.

## Delivery checklist

Report:

- duration;
- word count;
- caption segment count;
- whether silent-viewing readability was checked;
- SHA256 hashes for video and posting pack;
- upload gate status;
- thumbnail status.
