# TrueTraceShorts marketplace quiz production lessons

Use this as a concrete reference when producing or repairing `SPOT_THE_TRAP_QUIZ` shorts, especially marketplace/off-platform topics.

## CTA wording

Avoid vague engagement prompts such as:

```text
Comment what you noticed first.
```

Prefer a concrete, answerable experience question that viewers can respond to naturally:

```text
Has a buyer ever tried this on you, or on someone you know?
```

This fits scam-safety content better than generic engagement bait and avoids making the viewer wonder what they are supposed to write.

## Duration is a soft target

Format duration windows are targets, not hard clocks. Do not rush voiceover or clip sentence endings just to hit an exact duration. A few extra seconds are acceptable when they improve:

- sentence-end emphasis;
- comprehension;
- CTA clarity;
- less frantic pacing.

## Gianna voice audio QA

For Gianna Premium Clone renders:

1. Avoid `speed_factor` stretching unless explicitly approved. Slowing the clone can introduce metallic/blechern artifacts.
2. Keep the natural TTS speed (`speed_factor: 1.0`) and use punctuation/chunk pauses for pacing.
3. Measure loudness after rendering. A bad example was around `-29 LUFS`, which sounded far too quiet.
4. Normalize voice to roughly `-18 LUFS` integrated with true peak around `-1.5 dBFS` for Shorts-style delivery unless a platform-specific target overrides it.
5. Preserve raw audio when normalizing so the source can be audited.

Example ffmpeg normalization pattern:

```bash
ffmpeg -y -i raw_voice.wav \
  -af 'loudnorm=I=-18:TP=-1.5:LRA=7' \
  -ar 24000 -ac 1 voice_normalized.wav
```

Then verify with:

```bash
ffmpeg -hide_banner -nostats -i voice_normalized.wav \
  -filter_complex ebur128=peak=true -f null -
```

## Caption segmentation pitfall

When using ASR word timestamps, script tokenization can drift by one word. A clear sentence pause can otherwise make the first word of a new sentence hang on the previous caption, e.g.:

```text
walk away. Has
```

Add a repair pass: if a word follows a sentence-ending token after a clear pause, split into a new caption segment. This is especially important for final CTAs.

## Upload/publication policy

The YouTube automation is upload-only and may create a private video via `videos.insert`; it must not broaden scope just to set public status. If the user says "upload approved (public)":

1. Execute the approved hash-bound upload package with upload-only scope.
2. Record the audit/video ID.
3. Link the website companion to the YouTube Shorts URL.
4. Tell the user that public release must be done manually in YouTube Studio unless the policy/scope changes.

Do not mark a topic as truly published in registry if the API upload only produced a private video. Store the video ID and links, but distinguish private-uploaded from public-published state.

## Website link workflow

After YouTube upload:

- set `videoUrl` in both candidate JSON and generated/committed Markdown companion page;
- run website build and production QA;
- browser-check that `Open on YouTube` or equivalent appears;
- commit/push website change separately from AutoShorts audit/registry change.
