85453da49f
regression / regression-shards (style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr, shard-4) (push) Has been cancelled
regression / regression-shards (style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter parallel-capture-regression, shard-5) (push) Has been cancelled
regression / regression-shards (style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr webm-vp9, shard-3) (push) Has been cancelled
regression / regression-shards (sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric sub-comp-t0 sub-comp-id-selector, shard-7) (push) Has been cancelled
Windows render verification / Detect changes (push) Has been cancelled
Windows render verification / Preflight (lint + format) (push) Has been cancelled
Windows render verification / Render on windows-latest (push) Has been cancelled
Windows render verification / Tests on windows-latest (push) Has been cancelled
CI / Detect changes (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Fallow audit (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Producer: integration tests (push) Has been cancelled
CI / Producer: unit tests (push) Has been cancelled
CI / File size check (push) Has been cancelled
CI / Test: skills (push) Has been cancelled
CI / Skills: manifest in sync (push) Has been cancelled
CI / CLI: npx shim (macos-latest) (push) Has been cancelled
CI / CLI: npx shim (ubuntu-latest) (push) Has been cancelled
CI / CLI: npx shim (windows-latest) (push) Has been cancelled
CI / SDK: unit + contract + smoke (push) Has been cancelled
CI / Test: runtime contract (push) Has been cancelled
CI / Studio: load smoke (push) Has been cancelled
CI / Smoke: global install (push) Has been cancelled
CI / CLI smoke (required) (push) Has been cancelled
CI / Semantic PR title (push) Has been cancelled
Player perf / Detect changes (push) Has been cancelled
Player perf / Preflight (lint + format) (push) Has been cancelled
Player perf / player-perf (push) Has been cancelled
Player perf / Perf: drift (push) Has been cancelled
Player perf / Perf: fps (push) Has been cancelled
Player perf / Perf: parity (push) Has been cancelled
Player perf / Perf: scrub (push) Has been cancelled
Player perf / Perf: load (push) Has been cancelled
preview-regression / Detect changes (push) Has been cancelled
preview-regression / Preflight (lint + format) (push) Has been cancelled
preview-regression / Preview parity (push) Has been cancelled
preview-regression / preview-regression (push) Has been cancelled
regression / regression (push) Has been cancelled
regression / Detect changes (push) Has been cancelled
regression / Preflight (lint + format) (push) Has been cancelled
regression / regression-shards (hdr-regression style-5-prod style-3-prod mov-prores, shard-1) (push) Has been cancelled
regression / regression-shards (overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence portrait-edge-bleed, shard-6) (push) Has been cancelled
regression / regression-shards (style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat audio-mux-parity, shard-8) (push) Has been cancelled
regression / regression-shards (style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets, shard-2) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Docs / Validate docs (push) Has been cancelled
Sync skills to ClawHub / Publish changed skills (push) Has been cancelled
93 lines
3.4 KiB
Markdown
93 lines
3.4 KiB
Markdown
# Narration & Script
|
|
|
|
How to write narration scripts for video compositions. Read when the composition includes voiceover or TTS.
|
|
|
|
## Pacing
|
|
|
|
- **2.5 words per second** is natural speaking pace
|
|
- 15s = ~37 words. 30s = ~75 words. 60s = ~150 words
|
|
- Leave room for pauses. Silence between sentences is a feature, not dead air
|
|
- The script should feel SHORTER than the video — visual breathing room matters
|
|
|
|
## Tone
|
|
|
|
Write like a person, not a brochure:
|
|
|
|
- Use contractions: "it's", "you'll", "that's", "we've"
|
|
- Vary sentence length — short punchy phrases mixed with longer flowing ones
|
|
- Read it out loud. If it sounds robotic, rewrite it
|
|
- Avoid jargon unless the audience expects it
|
|
|
|
## Number Pronunciation
|
|
|
|
Write what you want the voice to say. TTS reads literally.
|
|
|
|
| In the product | Write in script as |
|
|
| -------------- | --------------------------------- |
|
|
| 135+ | more than one hundred thirty five |
|
|
| $1.9T | nearly two trillion dollars |
|
|
| 99.999% | ninety nine point nine percent |
|
|
| 200M+ | over two hundred million |
|
|
| 10x | ten times |
|
|
| API | A P I |
|
|
| stripe.com | stripe dot com |
|
|
|
|
The visual can show the exact figure while the voice rounds it.
|
|
|
|
## Structure
|
|
|
|
For product videos:
|
|
|
|
1. **Hook** — what's surprising or impressive about this product? A bold claim, a provocative question, a contrast, or a striking number. This is the opening line. **Vary the hook type** — don't default to a stat every time.
|
|
2. **Story** — what does the product do? Who uses it? Keep it concrete.
|
|
3. **Proof** — stats, customer names, social proof. Real numbers from the product.
|
|
4. **CTA** — what should the viewer do? "Start building at stripe dot com."
|
|
|
|
Not every video needs all four. A 15-second social ad might be Hook + Proof + CTA. A 60-second product tour uses all four with more Story.
|
|
|
|
## The Opening Line
|
|
|
|
The most important sentence in the video. It must create tension, curiosity, or surprise in the first 3 seconds.
|
|
|
|
Patterns that work:
|
|
|
|
- **A bold claim**: "The financial infrastructure that powers the internet economy."
|
|
- **A question that provokes**: "What if your database could think?"
|
|
- **A contrast**: "Your AI agent already knows how to make videos. It just needs the right format."
|
|
- **A number that shocks**: "Nearly two trillion dollars." (Use sparingly — not every video should open with a stat.)
|
|
|
|
If the opening is generic ("Welcome to Stripe" / "Introducing our product"), start over.
|
|
|
|
## Example
|
|
|
|
From a 62-second product launch video (team reference):
|
|
|
|
```
|
|
Your AI agent already knows how to make videos.
|
|
It just needs the right format.
|
|
|
|
This is Hyperframes. An open source framework. HTML in, video out.
|
|
|
|
A div is a keyframe. Data attributes are your timeline.
|
|
CSS is your look. G-Sap is your animation engine.
|
|
|
|
Anything a browser can render can be a frame in your video.
|
|
|
|
CSS animations. G-Sap. Lottie. Shaders. Three.js.
|
|
|
|
Drop in music, sound effects, footage — it all composes together.
|
|
|
|
No new framework for the agent to learn.
|
|
Just HTML.
|
|
|
|
The agent writes it. The renderer captures every frame as MP4.
|
|
It's deterministic. Identical outputs, every time.
|
|
|
|
Give your agent the CLI. Tell it what to make.
|
|
Watch it build.
|
|
|
|
Hyperframes. Go make something.
|
|
```
|
|
|
|
Note: ~140 words for 62 seconds — that's 2.3 words/sec, leaving room for pauses and visual breathing.
|