# Thumbnail / Cover workflow for AutoShortsBot and TrueTraceShorts

Use this for every new AutoShortsBot / TrueTraceShorts candidate and for retrofitting approved/finalized videos.

## Core rule

A separate thumbnail/cover is useful, but it never replaces a strong first video frame.

Every video needs:

1. a strong first video frame with a large, mobile-readable scam-name title overlay;
2. a separate thumbnail / cover asset;
3. optionally at most one second thumbnail variant for comparison.

Hard distinction:

```text
thumbnail_passed != first_frame_passed
```

Both must be checked separately.

- **Thumbnail** = stronger, sharper cover image for scroll/click-stop.
- **First frame** = strong first moment inside the video if the platform autoplays the video.
- Both must show the same danger/scam/trap.
- No clickbait. No false promise. No mismatch between cover and video.

## Thumbnail goal

In under 1 second the viewer should understand:

- the everyday situation;
- the scam / red-flag mechanism;
- the danger;
- why they should stop scrolling.

Desired viewer reaction:

- “I know this.”
- “This could happen to me.”
- “I should watch this.”

## Visual style

For TrueTraceShorts / Everyday Red Flags thumbnails:

- realistic everyday scene;
- high-quality AI image;
- clear scam / red-flag moment;
- smartphone, laptop, SMS, chat, e-mail, invoice, popup, login screen, or payment page;
- serious, strong, but not cheap-shock tone.

Avoid:

- abstract symbol images;
- glass clouds;
- generic tech aesthetics;
- hacker Matrix visuals;
- cheap shock graphics;
- fake brands/logos;
- QR codes;
- real phone numbers/domains/bank data/company data.

## First-frame scam-name overlay

For YouTube Shorts / TikTok / Reels gallery grids, the first video frame must carry one large renderer-owned scam-name label so the topic is readable even when subtitle/UI text is too small in the tiny tile.

Rules:

- use 2–4 words, maximum 5;
- describe the scam family, not a vague hook;
- make it very large, high-contrast, and centered/top-safe or upper-third safe;
- keep it visible only briefly if needed, roughly the opening 0.8–1.2s, so it functions as gallery cover context without turning the whole video into a text card;
- keep the concrete scam screen visible behind it;
- renderer owns this text, not the image generator;
- do not obscure subtitles or the core red flag.

Examples:

- `BOSS GIFT CARD SCAM`
- `FAKE DELIVERY TEXT`
- `INVOICE PAYMENT CHANGE`
- `FAKE SUPPORT POPUP`
- `MARKETPLACE PAYMENT SCAM`

## Text on thumbnails

Thumbnail text is optional. If used:

- max 2–5 words;
- very large;
- mobile-readable;
- simple;
- no long sentences;
- no small text.

Important: thumbnail text must be renderer-owned, not invented by the image generator.

Examples:

- `FAKE DELIVERY TEXT`
- `DON’T TAP THIS`
- `THIS IS THE TRAP`
- `FAKE BANK PAGE`
- `NEW NUMBER SCAM`
- `DO NOT PAY THIS`
- `PAYMENT ROUTE CHANGED`

If the image is strong enough, a no-text version can be valid, but default should include one clear large renderer-owned text line for covers.

## Image generation

Preferred thumbnail image source:

- OpenAI/Codex Image Generation;
- `gpt-image-2-high`;
- high quality only;
- no image-orgy.

Per video, generate at most 2 thumbnail variants unless the user explicitly approves more.

Default variants:

- **Thumbnail A:** clear direct red-flag focus.
- **Thumbnail B:** more emotional / stronger scroll-stop focus.

If a screen with SMS/e-mail/invoice/login/payment details must be exact, keep the safety-critical screen content deterministic/renderer-owned. AI may create the environment/scene; deterministic rendering owns exact text, fake invoice/payment route, warning line, and thumbnail text.

## Platform export

Default cover exports:

- 9:16;
- 1080x1920;
- mobile-readable;
- important content inside safe zone;
- no tiny details that disappear on a phone.

Use for:

- YouTube Shorts / YouTube cover;
- TikTok cover if useful;
- Instagram Reels cover;
- LinkedIn video cover / preview image.

Optional later exports only when needed:

- 1:1 crop preview for profile grid;
- 16:9 preview.

## First Frame Gate

The video must work without the thumbnail.

Block if:

- first frame is boring, generic, or unclear;
- danger is not visible in the first video frame;
- first frame depends on the thumbnail for context;
- first frame shows abstract tech/mood instead of the real scam/trap.

## ThumbnailQualityGate

Block a thumbnail if:

- the danger is not instantly recognizable;
- the motif is too abstract;
- it looks like a generic tech image;
- it has too much text;
- text is not readable on mobile;
- AI pseudo-writing is visible and confusing;
- it contains a real brand/logo/domain/phone number/bank data/company data;
- it contains QR codes;
- it is clickbait or mismatched to the video;
- it does not match the first video frame’s danger;
- it fails mobile safe-zone expectations.

## ReviewPackage / Manual Posting Pack fields

Extend every final/review package with:

```json
{
  "thumbnail_A_path": "...",
  "thumbnail_A_sha256": "...",
  "thumbnail_A_rationale": "...",
  "thumbnail_B_path": "...",
  "thumbnail_B_sha256": "...",
  "thumbnail_B_rationale": "...",
  "recommended_thumbnail": "A|B",
  "first_frame_quality_score": 0,
  "thumbnail_quality_score": 0,
  "platform_cover_notes": "..."
}
```

## Delivery requirements

For each finalized Proof Short deliver/report:

- Telegram-playable Video MP4 attachment;
- proposed eye-catching thumbnail/cover image attachment;
- Thumbnail A;
- Thumbnail B if created;
- A/B contact sheet if variants exist;
- recommendation A or B with short reason;
- proposed title;
- engaging proposed description/caption;
- exact hash-bound private YouTube upload approval command.

For each artifact report:

- `file_path`;
- `file_exists`;
- `file_size`;
- `sha256`;
- `media_type`;
- `resolution`;
- `telegram_delivery_attempted`;
- `telegram_delivery_verified`;
- `telegram_message_id`.

If delivering in the current Telegram chat via final response with `MEDIA:` attachments, set `telegram_delivery_attempted=true`, `telegram_delivery_verified=false`, and `telegram_message_id=null` unless the messaging tool returns a verifiable message ID.

## Operating principle

The thumbnail stops the viewer.
The first frame keeps them in the video.
The content must actually help them.
