Why this lesson: last lesson you wrote a hook. Now you need the rest of the script. A Reel isn't a random pile of good lines — it's a fixed skeleton you fill in every single time. Learn the skeleton once and the blank screen is gone: you'll always know what the next line is for.
First, recall
From Lesson 1: name the 4 building blocks of any piece, in order. (Hook → Value → Payoff → CTA.) Today's script skeleton is just those four blocks, expanded into lines you can actually record.
The 5-line skeleton
Short-form has one job per line. Map every line to a slot and you can't ramble:
1Hook
2Context
3Value
4Payoff
5CTA
Hook — 1–3 seconds. Earn the next second. (Building block 1.)
Context — one line of setup so the value lands: what were you doing, what broke. Keep it tiny — context is a tax, not the product.
Value — the steps, the fix, the demo on screen. This is the substance. (Block 2.)
Payoff — the "aha" the hook promised, delivered plainly. (Block 3.)
CTA — one small ask. Follow, save, comment. Just one. (Block 4.)
The key idea
Context is the only new slot — and it's the one beginners overgrow. A working script is Hook → one breath of Context → straight into Value. If your setup runs longer than your fix, you've built a rambling Reel [Ali Abdaal — scripting systems].
Write it line by line
A script is not a paragraph you'll "talk around." Write the actual on-screen text and voiceover, one line each, in order. When you can read it top to bottom in 30 seconds, it's a Reel. Ali Abdaal's whole scripting system is this: decide the skeleton first, then fill slots — never write into a blank page [Ali Abdaal — scripting systems].
Worked example · a full "Learn from me" Reel (a real bug)
Pillar: Learn from me · Platform: Instagram Reel (faceless — screen recording + big on-screen text)
Hook (frame 1): "This one line cost me 3 hours in production."
Context: "My Node API kept returning stale data after every deploy."
Value (screen recording): show the culprit — a cached response with no Cache-Control header — then add Cache-Control: no-store and redeploy. Big text labels each step.
Payoff: "One header. Stale data gone. That was the whole bug."
CTA: "Save this so it doesn't cost you 3 hours."
Five lines, ~25 seconds, no face. The context is a single line — you're on the fix before the viewer can scroll.
Quick self-check
No clues in the formatting — pick from memory, then click.
1. In the short-form skeleton, the Context line exists to…
Context is one tiny breath of setup — what you were doing, what broke — so the value makes sense. It's a tax to pay fast, not the product.
2. The five script slots map onto the four building blocks — the new slot that Chapter 1 didn't name is…
Hook, Value, Payoff and CTA are the original four. Context is the only addition — one line between Hook and Value. No "hey guys" intro belongs anywhere.
3. A sign your Reel script is structured badly is when…
If context outweighs value, you've built a rambling piece — the viewer leaves before the payoff. Setup stays tiny; the fix is the show.
Your turn · do this now
Take one real bug you fixed recently. Write it as five lines — Hook / Context / Value / Payoff / CTA — using the script template. Paste the five lines to me and I'll tell you which slot is doing too much work.
Primary source · study thisAli Abdaal teaches scripting as a system, not inspiration. Watch any of his videos on scripting and notice he always fixes the structure first, then fills the slots — exactly the skeleton above.
💬 Your teacher is here. Not sure how much context a given bug needs, or where the demo ends and the payoff starts? Paste your draft — mapping your lines to the five slots together is exactly what this lesson is for.