# Viral Short Script

> Use when writing or planning the script and structure of a short vertical video (Reel/TikTok/Short, under ~60s) - a visual-first, sound-off scroll-stopper skeleton. Triggers on "viral script", "hook for a reel", "structure of the video", or feeding a video-generation pipeline. Theme-agnostic - it produces the skeleton; the topic is plugged in afterwards.

- Skill: `raphaelbgr/viral-short-script` (Agent Skill)
- Install (CLI): `npx skillmds@latest add raphaelbgr/viral-short-script`
- Raw SKILL.md: https://api.skillmd.com/api/skills/raphaelbgr/viral-short-script/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: raphaelbgr (https://skillmd.com/u/raphaelbgr)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/raphaelbgr/viral-short-script

---


# viral-short-script

A theme-agnostic **skeleton** for sub-60s vertical video. Structure first; the topic is
plugged in afterwards.

**Provenance, stated honestly:** the story shape (hook → escalate → turn → pay off) was
*inspired* by a structural read of 47 acclaimed films, then stress-tested by a panel of
seven frontier models. It is a **heuristic, not a proven formula** — the film study had
no control group and no engagement data. Treat it as a strong starting structure and
validate it against your own retention numbers.

**The reality it is built around:** the feed is hostile, watched **muted**, and frame 1
is a **thumbnail**. You do not earn attention — you stop the thumb in about one second
with a *picture*, then hold it with rising tension and a sensory change every couple of
seconds.

**Use for:** anything under ~90s; writing or fixing a hook; feeding a generation
pipeline; when a draft trails off, buries the payoff, or reads like a monologue.
**Not for:** long-form (>3 min), carousels, or news briefings with their own planner.

---

## THE GATE — the 3-second silent test

Do this before anything else. **Mute the first 3 seconds.** From the frame and the
on-screen text alone, can a stranger tell who it is for and feel a question or a
tension?

**No → rewrite frame 1.** This single binary gate replaces manual hook-scoring.

---

## The skeleton — 4 beats, two parallel layers

Every beat is written on two layers at once, because most viewers never turn the sound
on:

- **SCREEN** — what is seen and read: first frame, burned-in text, cut, zoom, sound hit.
- **STORY** — what is said, and what happens.

Times are **soft defaults for a ~45–60s clip, in absolute seconds — not laws.** (Film
act percentages do not port to 60 seconds. Ignore them here.)

| Beat | ~Time | Job | Pass criterion |
|---|---|---|---|
| **1. STOP** | 0–2s | Stop the scroll | Survives the 3s silent test. Frame 1 works as a thumbnail. No "hi guys", no setup shot. |
| **2. STAKES** | 2–8s | Earn the next 5s | One line names the payoff or the risk, and for whom. Exactly ONE question is open. A claim carries a proof token. |
| **3. RUN** | 8s → last 8s | One rising arc + interrupts | No plateau. A micro-payoff every ~5–8s. Exactly ONE turn. A sensory change every ~2–3s. |
| **4. LAND** | last ~5–8s | Emotional punctuation + 1 trigger | Closes on emotion (clean snap or open loop), ideally loops back to frame 1. Exactly ONE action trigger. |

### Beat 1 — STOP
- **SCREEN:** frame 1 is motion, a reacting face, a strange object, or a visual
  contradiction — plus a burned-in text hook. The text may *contradict* the image for
  surprise.
- **STORY:** show a **result-glimpse** or a **tension**, never a preamble. Qualify the
  viewer implicitly ("if you're the kind of person who…"). Identity and confessional
  framings beat tired angles like "Stop doing X" or "3 things about X".

### Beat 2 — STAKES
One sentence: what is at risk or what they get, and for whom. Install exactly one
question. Any claim gets an instant **proof token** — a number, a receipt, a screen
recording, a before/after. Credibility in seconds, not paragraphs.

### Beat 3 — RUN (keep the two layers independent)
- **STORY:** one tension arc — single problem, escalation with no plateau, then ONE
  turn that flips the meaning. The turn has **no fixed timestamp**; place it where it
  hits hardest. In short-form the turn *is* the biggest pattern break. Drop a
  **micro-payoff every ~5–8s** so someone who leaves early still got something.
- **SCREEN:** change **one** sensory channel every ~2–3s. Menu: punch-in · hard cut ·
  zoom-to-keyword · whip-pan · snap-cut · text pop · sound hit · angle change · colour
  shift · number-appears · before/after · progress marker (1/3, 2/3, 3/3).

### Beat 4 — LAND (close on emotion, not on theme)
- Made them **laugh / gasp / feel satisfied** → close **clean**, with a snap line.
- Made them **curious / angry** → leave an **open loop**.
- Premium close: **loop back to frame 1** so a rewatch feels seamless (lifts average
  percentage viewed).
- Exactly ONE action trigger, native to the emotion: **share** ("send this to the
  person who…"), **save** ("save this before you forget"), or **comment** ("which one
  did you guess?"). Never a generic "follow for more".

---

## Format modes — pick one; it decides where the payoff sits

| Mode | Payoff placement |
|---|---|
| story / confession | hold the turn for near the end |
| myth-bust | hold the "but actually" for the turn |
| tutorial / how-to | micro-payoffs throughout, result near the end |
| demo / transformation | **front-load** a result-glimpse, full reveal at the end |
| ranked list | progress markers (1/3…), save-bait close |
| reaction / commentary | react first, sharpest take last |
| news / explainer | the "so what" *is* the turn |
| product / ad | value first, ask once, late |

Also consider **platform divergence** (Shorts, TikTok and Reels reward different lengths
and pacing) and **series / Part 2** as a growth lever.

---

## Optimise for the real signals

3-second retention → average percentage viewed / completion → **shares (sends per
reach)** and **saves** → comments. Iterate hooks against **watch-time data, not
opinion.**

**Density budget:** short-form is roughly 40% visual beats, pauses and on-screen text.
Write *line + text + visual* per beat, not a 130-word monologue.

---

## ADAPT TO THEME (the deliberately-later step)

1. Pick the **mode** from the table.
2. Name **audience / pain / desire**, one line each.
3. Pick the **goal** (reach vs authority) → which **close** (loop vs clean).
4. Fill each beat's **SCREEN + STORY**, then run THE GATE.

**Credibility play for factual topics:** source every claim to an official record,
include the skeptical counterweight *on purpose*, and never overclaim. It reads as
confidence, and it survives the comments.

---

## Handing the script to a generator

Write the finished script as a machine-readable object so the render step skips AI
planning entirely:

```json
{
  "hook": "...",
  "segments": [
    {"text": "...", "keywords": ["...", "..."], "duration_seconds": 4}
  ],
  "cta": "...",
  "total_duration": 48
}
```

Then feed each segment's visual into the model-specific prompt block — see
[`veo-flow-prompting`](../veo-flow-prompting/SKILL.md),
[`wan-3-prompting`](../wan-3-prompting/SKILL.md) or
[`seedance-prompting`](../seedance-prompting/SKILL.md). For the hook shot specifically,
generating it is usually worth the money even when the rest is stock footage — the
first two seconds are where every cold account looks generic.

---

## Common mistakes

- A strong first *sentence* but a weak first *frame* → dead on arrival in a muted feed.
- Two competing questions → pick one.
- A fixed "midpoint reversal at 30s" → that is the retention death-zone. Place the turn
  by impact.
- Best line at the start with nothing to climb to → keep a turn for late.
- A 130-word monologue → short-form is visual + text + pause, not narration.
- "Resolved, tidy, follow for more" → close on emotion with one native trigger instead.

---

## How to improve this skill

1. **Real feedback loop (highest value):** log retention, shares and saves; tag which
   hooks, closes and modes won; reweight the defaults by *measured* performance.
2. **Better evidence:** re-extract structures with several models and keep only the
   flags they agree on; add a control corpus (un-acclaimed films + actual viral videos).
3. **A/B:** three hooks per topic, ship the variants, keep the winners.

