VSL Copywriting — Slide-Per-Sentence Sales Video Scripts skill

Write video sales letter (VSL) scripts in the house slide-per-sentence format — one sentence per slide, on-screen text verbatim with the VO, under 6 seconds a slide, scripted holds on the lines that matter — plus "invisible VSL" organic variants for YouTube.

by oathdriven·MIT license·★ 28 Stars on the repo·GitHub ↗

Use now

Inside this skill

SKILL.md · the author's own words
# VSL Copywriting — Slide-Per-Sentence Sales Video Scripts

Write VSL scripts as slides, not prose: one thought per slide, the VO reads exactly what's on screen, the cut is the punctuation, and silen…

Read these supporting files on demand:
- `${CLAUDE_SKILL_DIR}/references/vsl-beat-structures.md` — the narrative playbook: guru beat sequences (Benson 3X, Suby, Hormozi, Brunson'…
- `${CLAUDE_SKILL_DIR}/references/slide-pacing.md` — the mechanics with numbers: reading speed, words-per-slide, duration math, chunking ru…
- `${CLAUDE_SKILL_DIR}/references/house-models.md` — the Sierra-6 fold video decomposed (the live pacing model on sierra6ai.com), the Allod…

## Load first — brand context

| Brand | Load | Hard rules |
|---|---|---|
| Allodra | `writing-room/docs/voice-allodra.md` | Honesty guardrail on ownership claims; approved vocabulary only |
| Sierra-6 | `writing-room/docs/voice-sierra6.md` *(if built — else the de facto sources in house-models.md)* | Never sell leads; veteran-o…

Word-for-word excerpt, not a result. Read the full SKILL.md ↓

Files of VSL Copywriting — Slide-Per-Sentence Sales Video Scripts

oathdriven/main1 file shown
SKILL.md
Show the full text132 lines

VSL Copywriting — Slide-Per-Sentence Sales Video Scripts

Write VSL scripts as slides, not prose: one thought per slide, the VO reads exactly what's on screen, the cut is the punctuation, and silence is the highlighter. The script is ~80% of the video's conversion — treat every slide as a unit of attention you either earn or lose.

Read these supporting files on demand:

  • ${CLAUDE_SKILL_DIR}/references/vsl-beat-structures.md — the narrative playbook: guru beat sequences (Benson 3X, Suby, Hormozi, Brunson's Epiphany Bridge), the retention-timed 8-beat template, 10 hook patterns, mechanism/enemy theory, application-funnel CTA beats, proof-without-testimonials stack, 12 failure modes
  • ${CLAUDE_SKILL_DIR}/references/slide-pacing.md — the mechanics with numbers: reading speed, words-per-slide, duration math, chunking rules, the pause/hold playbook, on-screen readability, retention pacing
  • ${CLAUDE_SKILL_DIR}/references/house-models.md — the Sierra-6 fold video decomposed (the live pacing model on sierra6ai.com), the Allodra "Tech Rent Boycott" beat map, and the all-brand guardrails master list

Load first — brand context

Brand Load Hard rules
Allodra writing-room/docs/voice-allodra.md Honesty guardrail on ownership claims; approved vocabulary only
Sierra-6 writing-room/docs/voice-sierra6.md (if built — else the de facto sources in house-models.md) Never sell leads; veteran-operator tone; the 3 Laws
RyMac No voice doc yet — teaching voice, "Marine, two dogs, and a laptop" persona Teach what/why, never sell hard

Paths are relative to the workspace root — Glob for **/voice-*.md if the session starts in a subfolder. Guardrails move as the business does (e.g. the own-cloud claim) — the voice doc at write time is the source of truth. Never write a VSL before reading it.

The format (non-negotiable)

ONE SLIDE   = one complete thought, 5–15 words (hard cap ~20; split at the clause break past 15)
ON-SCREEN   = verbatim what the VO says (or an exact fragment) — never paraphrase; mismatch breaks the trance
DURATION    = words ÷ 2.5 + hold seconds · floor 1s · cap 6s (only scripted holds run longer, never past 8s)
THE CUT     = the punctuation. End mid-thought slides with "..." or ":" to pull the eye forward
EMPHASIS    = 1–2 highlighted words per slide, max. A word alone on a slide shouts loudest
SILENCE     = the highlighter. Script every hold explicitly — [HOLD 2s] / [BEAT] — editors won't invent pauses

Why text-only works: when the sentence is the only visual, reading + hearing the same words beats hearing alone (Moreno & Mayer 2002), and the format forces linear consumption — nobody skims to the price. Full numbers and evidence: ${CLAUDE_SKILL_DIR}/references/slide-pacing.md.

Budget math before writing: 140–160 spoken wpm → a 4-min VSL is ~560–640 words and ~45–60 slides. Write to the budget, not past it.

The narrative spine (house default, 2–6 min application VSL)

Timings scale proportionally to target runtime. Retention stakes per beat in references/vsl-beat-structures.md.

Beat ~% of runtime Job Rule
1. Hook 0–10% Pattern interrupt + callout; open the master loop Payoff promised by 0:15. Never open with a name or greeting
2. Problem 10–25% Name the pain in the viewer's words Problem-first beats claim-first on cold traffic
3. Agitate 25–40% Stack the cost; twist the knife ≤90 seconds, ever — past that it reads as manipulation
4. Credibility mid-problem Scar tissue: "listen to me because I got burned too" Drop it inside the problem, not up front
5. Mechanism reveal 40–55% Name the hidden enemy (why everything else failed), then name YOUR system Both get proper nouns. Enemy = tool/practice/incumbent, never the viewer
6. Solution + offer 55–75% What they get, stacked; the vehicle for the mechanism Full value stack BEFORE any price
7. Proof 65–80% Receipts, math, demonstration, founder story Specificity is the proof — "11 estimates last Tuesday" beats "tons of leads"
8. Price anchor + price 75–85% Anchor high (agency $/mo, old price), then land the real number HOLD on the number, alone on its slide
9. CTA 85–100% Apply/qualify frame + risk reversal + real scarcity See CTA rules below. Repeat: soft CTA seeded mid-video, hard CTA at close

Application-funnel CTA rules

These VSLs sell a call, not a checkout. The CTA beat must:

  1. Frame it as qualification — "apply to see if you qualify"; the call is a diagnosis, not a pitch.
  2. Take it away — "this isn't for everyone"; say who it's for AND who it's not for.
  3. Pre-frame the next step literally — "click the button below this video, answer a few questions, pick a time." Next-step-specific CTAs beat generic ones.
  4. Use only real scarcity — cohort caps, builds-per-month, founding-member counts. No countdown timers; fake urgency destroys the qualification frame.
  5. Kill risk in plain words — "not a pushy call, no contracts, if it's not a fit I'll tell you."

Line-level rules

  • Flesch-Kincaid grade 5–7. Short sentences; vary rhythm — a 3-word punch after two longer lines.
  • Start lines with And / But / So / Because / Now / Look / Here's the thing — speech glue, momentum.
  • One master open loop from hook to close; resolve minor loops within ~3 slides or frustration wins.
  • Concrete pictures over abstractions: not "get more leads" — "wake up to a booked calendar."
  • Lists fire as slide runs: one item per slide, 2–3s each, momentum by rhythm.
  • Read the whole script aloud before delivering. If a line makes you cringe spoken, rewrite it.

Invisible VSL (YouTube organic variant)

A content video that carries the VSL's persuasion spine disguised as teaching — top-of-funnel for the sales page. Same slide format, different wrapper:

  • Hook is content-native, not ad-native: promise a lesson or reveal ("what renting your CRM actually costs — the real math"), never an offer.
  • Teach what and why, never how (Brunson) — the full "how" is the reason the sales page and call exist.
  • The lesson IS beats 2–5 of the spine (problem → agitate → mechanism/enemy) played straight as education. The viewer should feel smarter, not sold.
  • One soft CTA, at the end — "if you want the math on your own numbers, the calculator's linked below" energy. Sending them to a tool/lead magnet (analyzer, roadmap) converts better than sending them to a pitch.
  • Congruence rule: every invisible VSL is a slice of the one message (own your stack / digital landlord / growth tax). Title, thumbnail, and first slide must agree — a bait gap kills retention and trust.
  • Runtime 3–8 min; hook rules and pacing identical to the sales VSL.

Workflow

Copy this checklist and tick it off:

  • 1. Load the brand voice doc (or de facto sources). Note enemy, vocabulary, claim guardrails.
  • 2. Fix the spec: sales VSL or invisible VSL? Target runtime? Funnel CTA? → word + slide budget (140–160 wpm, ~12–15 slides/min).
  • 3. Mine proven language first: existing VSL scripts, hooks that got replies, call/reply language, the copy bank. Steal the customer's sentence.
  • 4. Write 5+ hooks across patterns (problem-first, callout question, contrarian, receipt, stakes) before picking one — see hook library in references/vsl-beat-structures.md.
  • 5. Draft the spine as beats first (one line per beat), then expand each beat into slides.
  • 6. Chunk into slides per the format block; script every [HOLD] and [BEAT]; end mid-thought slides with "..." .
  • 7. Run the gate (below). Fix before delivering.
  • 8. Honesty check against the voice-doc guardrail — only claim what's deliverable today.
  • 9. Deliver in the output format and save to writing-room/drafts/[brand]-vsl-[slug]-draft.md.

The gate (every script must pass)

  1. 0:15 test — by second 15 the viewer knows the pain, the promise, and why to keep watching. No intros.
  2. Named mechanism — a hidden enemy that absolves the viewer, and a proper-noun system that attacks it.
  3. Congruent CTA — qualification frame, real scarcity only, next step stated literally.
  4. Pacing math validates — total words ÷ runtime = 140–160 wpm; no slide over 6s except scripted holds; slide count ≈ 12–15/min.
  5. Honesty + read-aloud — every claim shippable today per the voice doc; the whole script survives being spoken.

Output format

Deliver exactly this shape:

# [Brand] VSL — [working title]
**Spec:** [sales VSL | invisible VSL] · target [X:XX] · [N] words ([N] wpm) · [N] slides · CTA: [the ask]
**Hook options considered:** (the 5+, winner marked)

| # | ON-SCREEN TEXT (verbatim) | VO | DUR | NOTES |
|---|---------------------------|----|-----|-------|
| 001 | ... | (same, or exact fragment) | 3.0s | highlight "growth tax" · [BEAT] after |

**Beat map:** slide ranges per beat (hook 001–004, problem 005–011, ...)
**Guardrail check:** (claims audited, pass/fail per claim)

DUR sums must equal the target runtime. NOTES carries highlights, holds, pattern interrupts, and production flags only — visual/color specs live in the design doc, not the script.

House models

The pacing model is the live Sierra-6 fold video (sierra6ai.com): 19 slides, one thought each, red-highlight emphasis, ellipsis cliffhangers, the CTA split across two slides for a hard pause. The Allodra "Tech Rent Boycott" script is the current long-form build. Both are decomposed — beat by beat, with the 5:1 transcript-to-slide compression pattern — in ${CLAUDE_SKILL_DIR}/references/house-models.md. Match their register before inventing a new one.

Read $ARGUMENTS for the brand, video, and target length. If no brand is named, ask which brand — the voice doc changes everything.

1---
2name: rymac-vsl-copywriting
3description: Write video sales letter (VSL) scripts in the house slide-per-sentence format — one sentence per slide, on-screen text verbatim with the VO, under 6 seconds a slide, scripted holds on the lines that matter — plus "invisible VSL" organic variants for YouTube. Use when the user asks to "write a VSL", "VSL script", "video sales letter", "fold video", "homepage video script", "invisible VSL", "YouTube VSL", "slide video", or wants a script, sales letter, or transcript converted into slides. Make sure to use this skill whenever a VSL or slide-based sales video is being written, rewritten, compressed, or storyboarded for any brand.
4argument-hint: [brand + video, e.g. "allodra charter VSL, 4 min"]
5---
6 
7# VSL Copywriting — Slide-Per-Sentence Sales Video Scripts
8 
9Write VSL scripts as slides, not prose: one thought per slide, the VO reads exactly what's on screen, the cut is the punctuation, and silence is the highlighter. The script is ~80% of the video's conversion — treat every slide as a unit of attention you either earn or lose.
10 
11Read these supporting files on demand:
12- `${CLAUDE_SKILL_DIR}/references/vsl-beat-structures.md` — the narrative playbook: guru beat sequences (Benson 3X, Suby, Hormozi, Brunson's Epiphany Bridge), the retention-timed 8-beat template, 10 hook patterns, mechanism/enemy theory, application-funnel CTA beats, proof-without-testimonials stack, 12 failure modes
13- `${CLAUDE_SKILL_DIR}/references/slide-pacing.md` — the mechanics with numbers: reading speed, words-per-slide, duration math, chunking rules, the pause/hold playbook, on-screen readability, retention pacing
14- `${CLAUDE_SKILL_DIR}/references/house-models.md` — the Sierra-6 fold video decomposed (the live pacing model on sierra6ai.com), the Allodra "Tech Rent Boycott" beat map, and the all-brand guardrails master list
15 
16## Load first — brand context
17 
18| Brand | Load | Hard rules |
19|---|---|---|
20| Allodra | `writing-room/docs/voice-allodra.md` | Honesty guardrail on ownership claims; approved vocabulary only |
21| Sierra-6 | `writing-room/docs/voice-sierra6.md` *(if built — else the de facto sources in house-models.md)* | Never sell leads; veteran-operator tone; the 3 Laws |
22| RyMac | No voice doc yet — teaching voice, "Marine, two dogs, and a laptop" persona | Teach what/why, never sell hard |
23 
24Paths are relative to the workspace root — Glob for `**/voice-*.md` if the session starts in a subfolder. Guardrails move as the business does (e.g. the own-cloud claim) — **the voice doc at write time is the source of truth.** Never write a VSL before reading it.
25 
26## The format (non-negotiable)
27 
28```
29ONE SLIDE = one complete thought, 5–15 words (hard cap ~20; split at the clause break past 15)
30ON-SCREEN = verbatim what the VO says (or an exact fragment) — never paraphrase; mismatch breaks the trance
31DURATION = words ÷ 2.5 + hold seconds · floor 1s · cap 6s (only scripted holds run longer, never past 8s)
32THE CUT = the punctuation. End mid-thought slides with "..." or ":" to pull the eye forward
33EMPHASIS = 1–2 highlighted words per slide, max. A word alone on a slide shouts loudest
34SILENCE = the highlighter. Script every hold explicitly — [HOLD 2s] / [BEAT] — editors won't invent pauses
35```
36 
37Why text-only works: when the sentence is the only visual, reading + hearing the same words beats hearing alone (Moreno & Mayer 2002), and the format forces linear consumption — nobody skims to the price. Full numbers and evidence: `${CLAUDE_SKILL_DIR}/references/slide-pacing.md`.
38 
39Budget math before writing: 140–160 spoken wpm → a 4-min VSL is ~560–640 words and ~45–60 slides. Write to the budget, not past it.
40 
41## The narrative spine (house default, 2–6 min application VSL)
42 
43Timings scale proportionally to target runtime. Retention stakes per beat in `references/vsl-beat-structures.md`.
44 
45| Beat | ~% of runtime | Job | Rule |
46|---|---|---|---|
47| 1. Hook | 0–10% | Pattern interrupt + callout; open the master loop | Payoff promised by 0:15. Never open with a name or greeting |
48| 2. Problem | 10–25% | Name the pain in the viewer's words | Problem-first beats claim-first on cold traffic |
49| 3. Agitate | 25–40% | Stack the cost; twist the knife | ≤90 seconds, ever — past that it reads as manipulation |
50| 4. Credibility | mid-problem | Scar tissue: "listen to me because I got burned too" | Drop it inside the problem, not up front |
51| 5. Mechanism reveal | 40–55% | Name the hidden enemy (why everything else failed), then name YOUR system | Both get proper nouns. Enemy = tool/practice/incumbent, never the viewer |
52| 6. Solution + offer | 55–75% | What they get, stacked; the vehicle for the mechanism | Full value stack BEFORE any price |
53| 7. Proof | 65–80% | Receipts, math, demonstration, founder story | Specificity is the proof — "11 estimates last Tuesday" beats "tons of leads" |
54| 8. Price anchor + price | 75–85% | Anchor high (agency $/mo, old price), then land the real number | HOLD on the number, alone on its slide |
55| 9. CTA | 85–100% | Apply/qualify frame + risk reversal + real scarcity | See CTA rules below. Repeat: soft CTA seeded mid-video, hard CTA at close |
56 
57## Application-funnel CTA rules
58 
59These VSLs sell a *call*, not a checkout. The CTA beat must:
601. **Frame it as qualification** — "apply to see if you qualify"; the call is a diagnosis, not a pitch.
612. **Take it away** — "this isn't for everyone"; say who it's for AND who it's not for.
623. **Pre-frame the next step literally** — "click the button below this video, answer a few questions, pick a time." Next-step-specific CTAs beat generic ones.
634. **Use only real scarcity** — cohort caps, builds-per-month, founding-member counts. No countdown timers; fake urgency destroys the qualification frame.
645. **Kill risk in plain words** — "not a pushy call, no contracts, if it's not a fit I'll tell you."
65 
66## Line-level rules
67 
68- Flesch-Kincaid grade 5–7. Short sentences; vary rhythm — a 3-word punch after two longer lines.
69- Start lines with And / But / So / Because / Now / Look / Here's the thing — speech glue, momentum.
70- One master open loop from hook to close; resolve minor loops within ~3 slides or frustration wins.
71- Concrete pictures over abstractions: not "get more leads" — "wake up to a booked calendar."
72- Lists fire as slide runs: one item per slide, 2–3s each, momentum by rhythm.
73- Read the whole script aloud before delivering. If a line makes you cringe spoken, rewrite it.
74 
75## Invisible VSL (YouTube organic variant)
76 
77A content video that carries the VSL's persuasion spine disguised as teaching — top-of-funnel for the sales page. Same slide format, different wrapper:
78 
79- **Hook is content-native, not ad-native:** promise a lesson or reveal ("what renting your CRM actually costs — the real math"), never an offer.
80- **Teach what and why, never how** (Brunson) — the full "how" is the reason the sales page and call exist.
81- **The lesson IS beats 2–5** of the spine (problem → agitate → mechanism/enemy) played straight as education. The viewer should feel smarter, not sold.
82- **One soft CTA, at the end** — "if you want the math on your own numbers, the calculator's linked below" energy. Sending them to a tool/lead magnet (analyzer, roadmap) converts better than sending them to a pitch.
83- **Congruence rule:** every invisible VSL is a slice of the one message (own your stack / digital landlord / growth tax). Title, thumbnail, and first slide must agree — a bait gap kills retention and trust.
84- Runtime 3–8 min; hook rules and pacing identical to the sales VSL.
85 
86## Workflow
87 
88Copy this checklist and tick it off:
89 
90- [ ] 1. **Load the brand voice doc** (or de facto sources). Note enemy, vocabulary, claim guardrails.
91- [ ] 2. **Fix the spec:** sales VSL or invisible VSL? Target runtime? Funnel CTA? → word + slide budget (140–160 wpm, ~12–15 slides/min).
92- [ ] 3. **Mine proven language first:** existing VSL scripts, hooks that got replies, call/reply language, the copy bank. Steal the customer's sentence.
93- [ ] 4. **Write 5+ hooks** across patterns (problem-first, callout question, contrarian, receipt, stakes) before picking one — see hook library in `references/vsl-beat-structures.md`.
94- [ ] 5. **Draft the spine as beats first** (one line per beat), then expand each beat into slides.
95- [ ] 6. **Chunk into slides** per the format block; script every [HOLD] and [BEAT]; end mid-thought slides with "..." .
96- [ ] 7. **Run the gate** (below). Fix before delivering.
97- [ ] 8. **Honesty check** against the voice-doc guardrail — only claim what's deliverable today.
98- [ ] 9. **Deliver** in the output format and save to `writing-room/drafts/[brand]-vsl-[slug]-draft.md`.
99 
100## The gate (every script must pass)
101 
1021. **0:15 test** — by second 15 the viewer knows the pain, the promise, and why to keep watching. No intros.
1032. **Named mechanism** — a hidden enemy that absolves the viewer, and a proper-noun system that attacks it.
1043. **Congruent CTA** — qualification frame, real scarcity only, next step stated literally.
1054. **Pacing math validates** — total words ÷ runtime = 140–160 wpm; no slide over 6s except scripted holds; slide count ≈ 12–15/min.
1065. **Honesty + read-aloud** — every claim shippable today per the voice doc; the whole script survives being spoken.
107 
108## Output format
109 
110Deliver exactly this shape:
111 
112```markdown
113# [Brand] VSL — [working title]
114**Spec:** [sales VSL | invisible VSL] · target [X:XX] · [N] words ([N] wpm) · [N] slides · CTA: [the ask]
115**Hook options considered:** (the 5+, winner marked)
116 
117| # | ON-SCREEN TEXT (verbatim) | VO | DUR | NOTES |
118|---|---------------------------|----|-----|-------|
119| 001 | ... | (same, or exact fragment) | 3.0s | highlight "growth tax" · [BEAT] after |
120 
121**Beat map:** slide ranges per beat (hook 001–004, problem 005–011, ...)
122**Guardrail check:** (claims audited, pass/fail per claim)
123```
124 
125DUR sums must equal the target runtime. NOTES carries highlights, holds, pattern interrupts, and production flags only — visual/color specs live in the design doc, not the script.
126 
127## House models
128 
129The pacing model is the live Sierra-6 fold video (sierra6ai.com): 19 slides, one thought each, red-highlight emphasis, ellipsis cliffhangers, the CTA split across two slides for a hard pause. The Allodra "Tech Rent Boycott" script is the current long-form build. Both are decomposed — beat by beat, with the 5:1 transcript-to-slide compression pattern — in `${CLAUDE_SKILL_DIR}/references/house-models.md`. Match their register before inventing a new one.
130 
131Read `$ARGUMENTS` for the brand, video, and target length. If no brand is named, ask which brand — the voice doc changes everything.
132 

Discussion

Alternatives

Frontend slidesCreate stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.Design & UI · MITDiagram GeneratorCreate professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, illustrative/conceptual diagrams, and more. Use this skill whenever the user asks for any kind of technical or conceptual diagram, visualization of a system, process flow, data flow, component relationship, network topology, decision tree, org chart, state machine, or any visual representation of structure/logic/process. Also trigger when the user says "画个图" "画一个架构图" "diagram" "flowchart" "sequence diagram" "draw me a ..." or uploads content and asks to visualize it. Output is always a standalone .svg file.Design & UI · MITVisual explainerGenerate self-contained HTML visual explanations for systems, code changes, plans, data, and technical concepts. Use for diagrams, architecture overviews, diff or plan reviews, project recaps, comparison tables, slide decks, animated explainers, and other visual explanations.Design & UI · MIThtml-ppt — HTML PPT StudioHTML PPT Studio — author professional static HTML presentations in many styles, layouts, and animations, all driven by templates. Use when the user asks for a presentation, PPT, slides, keynote, deck, slideshow, "幻灯片", "演讲稿", "做一份 PPT", "做一份 slides", a reveal-style HTML deck, a 小红书 图文, or any kind of multi-slide pitch/report/sharing document that should look tasteful and be usable with keyboard navigation. Triggers include keywords like "presentation", "ppt", "slides", "deck", "keynote", "reveal", "slideshow", "幻灯片", "演讲稿", "分享稿", "小红书图文", "talk slides", "pitch deck", "tech sharing", "technical presentation".Design & UI · MIT