---
name: minhnv0807/04-script-video-global
source: https://app.decimal.ai/s/minhnv0807-04-script-video-global@1/SKILL.md
source_sha256: 60e68e8549b5
---

# Global Short-Form Video Script

> Write 2 A/B script variants for TikTok / Reels / YouTube Shorts with hooks, CTAs, shoot guide, captions, hashtags, and a viral score.

---

## Step 0 — Read context file

Before writing the script, read `.agents/product-marketing-context-global.md` for:

- Product, USP, pricing
- Target audience and core insight
- Brand voice and tone
- Region (drives language / cultural references)

If a personal-brand context file exists (e.g., `.agents/personal-brand-context-global.md`), ask which mode to use:

- **Mode A — Product:** default, sell / convert
- **Mode B — Personal Brand:** trust + authority (different hooks, soft CTA)

---

## Information gathering

Ask the user up to 4 questions before writing:

1. **Product / service?** Short description, core USP, price (if relevant).
2. **Platform & length?** TikTok (15 / 30 / 45 / 60s), Reels (15 / 30 / 60s), Shorts (30 / 60s). Default: TikTok 30s.
3. **Target audience?** Gender, age, primary pain, the outcome they want.
4. **Funnel stage?** TOFU (attract new) / MOFU (persuade) / BOFU (close). Default: TOFU.

---

## Core principles

### 5 hook types (first 3 seconds)

| # | Hook type | Formula | Example (English) |
|---|-----------|---------|-------------------|
| 1 | Question | Ask a pain-tapping question — force the viewer to think | "Do you know why your skin keeps breaking out, even after a clean diet?" |
| 2 | Number | Open with a surprising, specific stat | "97% of people are doing their morning routine wrong" |
| 3 | Contrarian | Say the opposite of common belief | "Washing your face twice a day is making it worse" |
| 4 | Situation / POV | Use POV, role-play, micro-story | "POV: First time at a med spa and you have no idea what to pick" |
| 5 | Result first | Show the result first — then reveal the method | "My skin after 2 weeks of doing this — here's exactly how" |

**Hook selection rule:**

- TOFU: Prefer hook 1 (question), 4 (situation), 3 (contrarian)
- MOFU: Prefer hook 5 (result first), 2 (number)
- BOFU: Prefer hook 2 (number), 5 (result first)

### Script timestamp structure

Applies to 30–45s videos (adjust the ratio for other lengths):

| Timestamp | Section | Content | Share |
|-----------|---------|---------|-------|
| [0–3s] | Hook | Spark curiosity, hold the viewer. Do not introduce yourself. | 10% |
| [3–10s] | Problem / story | Express the pain or situation — the viewer sees themselves in it. | 25% |
| [10–20s] | Solution / value | Introduce the product as the solution. | 30% |
| [20–28s] | Proof | Outcome, review, stats, before / after. | 25% |
| [28–30s] | CTA | Specific action: "DM us today", "Link in bio", "Comment to receive". | 10% |

### Adjust by length

| Length | Hook | Problem | Solution | Proof | CTA |
|--------|------|---------|----------|-------|-----|
| 15s | 0–2s | 2–5s | 5–10s | 10–13s | 13–15s |
| 30s | 0–3s | 3–10s | 10–20s | 20–27s | 27–30s |
| 45s | 0–3s | 3–12s | 12–28s | 28–40s | 40–45s |
| 60s | 0–3s | 3–15s | 15–35s | 35–53s | 53–60s |

### 6 professional hook formulas

Each hook is **2 lines**: line 1 (open) max 50 characters, line 2 (twist) max 50 characters.

| # | Hook style | Formula | English example |
|---|-----------|---------|-----------------|
| 1 | **Number-led** | Open with a specific, surprising stat | "97% of clinic owners get this one step wrong." / "And it costs them six figures a year." |
| 2 | **Contrarian** | Say the common thing, then flip it | "Running more ads will not save your business." / "I cut spend 50% and tripled orders." |
| 3 | **Personal transformation** | Before vs after with a number | "6 months ago I had zero clients." / "Today I run 40 bookings a week — here's how." |
| 4 | **Borrowed authority** | Name a brand / person / tool | "ChatGPT just changed how I do marketing." / "And 90% of marketers still haven't noticed." |
| 5 | **Confession** | Share a mistake or a loss | "I lost $20K running ads the wrong way." / "Here's the lesson that paid me back in a month." |
| 6 | **Future forecast** | Something is shifting that few see | "TikTok Shop is about to change completely." / "If you don't adapt now, you'll lose share." |

**Hook rules:**

- **Never open with "I"** — start with "You", "Here", a number, or a brand / name
- Line 1 creates a curiosity gap — line 2 raises stakes or flips the meaning
- 50 characters per line is the cap — on mobile, longer lines get clipped
- Match hook style to funnel stage: TOFU (1, 2, 6), MOFU (3, 4), BOFU (5, 3)

### Reverse-engineer viral videos (research only)

> Learn from competitor / KOL videos — never copy.

When the user shares a reference video link:

1. **Analyse structure**: Hook (how many seconds?), key points (2 or 3?), CTA style?
2. **Extract technique**: Camera angle, cut rhythm, text overlay style, music
3. **Adapt for the brand**: Keep the structure + technique, swap content for the user's product
4. **Do not copy lines** — only learn the pattern, write fresh in the brand voice

### Script-writing rules

1. **One main idea only** — do not pack two messages into one video.
2. **Spoken language** — write the way you speak, not the way you write.
3. **Short sentences** — max 15 words per sentence. Long sentences kill retention.
4. **Clear transitions** — note scene changes inside the script.
5. **Mandatory text overlay** — write the on-screen text, not just the dialogue.
6. **No copyrighted music** — only trending or royalty-free tracks.
7. **Max 2 key points** — three is too many, viewers will not retain.
8. **Do not state the conclusion** — let the facts / numbers speak.

---

## Personal Brand Mode (optional)

> Activated when `.agents/personal-brand-context-global.md` exists. Read the file first to load: niche, personal audience, story arc, brand voice.

### Core differences vs Mode A (Product)

| Element | Mode A (Product) | Mode B (Personal brand) |
|---------|-------------------|------------------------|
| Video goal | Sell / convert | Build trust + authority |
| Hook angle | Product pain point | Personal experience / industry insight |
| CTA | "DM / comment to buy" | Soft CTA: "What do you think?", "Follow for more" |
| Story | Customer story | Founder / coach story (yourself) |
| Trust signal | Reviews, USP | Personal track record, contrarian view |
| Tone | Selling-focused | Conversational, vulnerable, authoritative |

### 4 personal-brand hooks (different from the 5 product hooks)

| # | Hook type | Formula | English example |
|---|-----------|---------|-----------------|
| 1 | Personal confession | Open with your own mistake / failure | "I lost $20K because of one decision last week. Here's the lesson." |
| 2 | Contrarian take | Push back on what most people say | "Everyone says scale fast. I scaled slow on purpose — here's why." |
| 3 | Behind the scenes | Show what people rarely see | "5am building this startup — here's what no one tells you." |
| 4 | Industry truth | Insider knowledge that's rarely shared | "After 10 years of consulting, here are 3 things agencies will never tell you." |

### Personal Brand 30s structure

| Time | Content | Goal |
|------|---------|------|
| 0–3s | Personal-brand hook (one of the 4 above) | Stop scroll with personal angle |
| 3–10s | Setup: who is speaking, the situation | Establish credibility |
| 10–22s | Core insight / story turning point | Deliver value |
| 22–28s | Lesson learned / framework | Pay off the hook |
| 28–30s | Soft CTA: "Have you been there?", "Follow for more" | Build community, NOT sell |

### Personal Brand QA score (10 criteria)

Differs from the product QA. 10 criteria × 10 points:

1. Authenticity (does it feel real?)
2. Personal vulnerability (do you share a failure / mistake?)
3. Industry insight (is the takeaway useful?)
4. Hook personal angle (one of the 4 types above)
5. Story arc clear (setup -> turning point -> lesson)
6. Brand voice consistency (matches `personal-brand-context-global.md`)
7. Soft CTA appropriate (NO hard sell)
8. AI avatar disclosed (if used)
9. Niche relevance (matches chosen niche)
10. Repurposable (can it be cut into shorter clips?)

Score guide: 90+ Excellent, 70–89 Good, 50–69 Needs fixes, <50 Redo.

### When NOT to use Personal Brand Mode

- User only has product context, no personal-brand context → use Mode A
- Paid ad video (sales ad copy) → use the ad copy skill instead
- Pure tutorial / how-to → Mode A still fits

---

## Output structure

### Header

```markdown
# Video Script: [Product / campaign]
Created: [YYYY-MM-DD]
Platform: [TikTok / Reels / YouTube Shorts]
Length: [Xs]
Funnel stage: [TOFU / MOFU / BOFU]
Audience: [short description]
Angle: [reference content-angles]
```

### Variant A — [Angle / hook name]

| Timestamp | Voiceover | Visual / action | Text overlay | Audio |
|-----------|-----------|----------------|--------------|-------|
| [0–3s] | "[Hook — verbatim]" | [Scene description: angle, subject, action] | [On-screen text] | [Music / trending sound] |
| [3–10s] | "[Problem — verbatim]" | [Transition + new scene] | [Overlay] | [Continue / change track] |
| [10–20s] | "[Solution — verbatim]" | [Action: product demo, B-roll, close-up] | [Overlay] | |
| [20–27s] | "[Proof — verbatim]" | [Before / after, review, on-screen stats] | [Result overlay] | |
| [27–30s] | "[CTA — verbatim]" | [Hand point, link, return to product] | "[Big, bold CTA text]" | |

### Variant B — [Angle / hook name]

_(Same structure as Variant A, different angle or hook)_

| Timestamp | Voiceover | Visual / action | Text overlay | Audio |
|-----------|-----------|----------------|--------------|-------|
| [0–3s] | "[Different hook — verbatim]" | [Different angle] | [Different overlay] | |
| ... | ... | ... | ... | ... |

### A vs B comparison

| Element | Variant A | Variant B |
|---------|-----------|-----------|
| Hook type | [e.g., Question] | [e.g., Result first] |
| Primary emotion | [e.g., Curiosity] | [e.g., Surprise] |
| CTA | [e.g., DM us now] | [e.g., Comment to receive] |
| Production difficulty | [Easy / Medium / Hard] | [Easy / Medium / Hard] |
| Best for testing | [Cold audience] | [Warm audience] |

---

## Shoot guide

### Equipment

| Item | Recommended | Alternative |
|------|------------|-------------|
| Camera | iPhone 13+ / Samsung S22+ / Pixel 7+ | Any 4K-capable phone |
| Tripod | Tripod with phone clamp | Books, table mount |
| Lighting | Ring light 26cm or softbox | Window with natural light |
| Audio | Lavalier mic (Boya BY-M1, Rode SmartLav) | Phone mic (quiet room) |
| Edit software | CapCut (free) | DaVinci Resolve, InShot, Premiere Rush |

### Pre-shoot checklist

- [ ] Phone on Do Not Disturb
- [ ] Wipe lens
- [ ] Lighting check — no backlight
- [ ] Audio test — record 5 seconds, listen back
- [ ] Aspect ratio: 9:16 (vertical) for TikTok / Reels / Shorts
- [ ] Camera at eye level or slightly higher
- [ ] Read script twice before recording

### Shoot styles by content type

| Style | Description | Best for |
|-------|-------------|----------|
| Talking head | Direct to camera, close-up on face | Question hooks, education, reviews |
| POV | Camera = viewer's eyes, no creator face | Situations, experiences |
| B-roll + voiceover | Shoot product / setting, voice over later | Product demos, behind-the-scenes |
| Before / after | Split screen or scene change | Proof, results |
| Green screen | Image / video background, presenter in front | Analysis, commentary, comparison |

---

## Caption & hashtag

### Caption template

```markdown
[Line 1 — restate the hook of the video, max 125 characters]
[Line 2 — add value or context]
[Line 3 — CTA: "Save this", "Tag a friend who needs this"]
.
.
.
[Hashtag block]
```

### Hashtag strategy

| Group | Count | Example |
|-------|-------|---------|
| Trending / viral | 1–2 | #fyp, #viral |
| Industry / niche | 2–3 | #skincare, #cleanbeauty, #serum |
| Brand | 1 | #YourBrandName |
| Long-tail | 1–2 | #morningroutineforacneprone, #dryskinremedy |

**Total: 5–8 hashtags.** Do not spam 20–30 — it dilutes reach.

> Region note: Localise hashtags by market. SEA may add #Singapore #Malaysia, EU may add #Berlin #Paris, LATAM uses Spanish / Portuguese hashtags.

---

## Viral score — predict performance

Score 5 elements, 1–5 each:

| Element | Criterion | Score |
|---------|-----------|-------|
| Hook strength | Do the first 3 seconds spark curiosity? Reason to stay? | /5 |
| Save potential | Will viewers want to save it? (tips, how-to, formula) | /5 |
| Share trigger | Reason to share with someone else? (funny, relatable, useful) | /5 |
| Completion pull | Will they watch to the end? Suspense / payoff? | /5 |
| Comment bait | Reason to comment? (question, debate, tag a friend) | /5 |

| Total | Verdict | Action |
|-------|---------|--------|
| 20–25 | High viral potential | Publish now, consider boosting with paid |
| 15–19 | Good | Run A/B test, watch first 24h closely |
| 10–14 | Average | Tweak hook or CTA |
| <10 | Weak | Rewrite — do not run paid |

---

## QA score — pre-delivery check

Score the script across 10 criteria, 10 points each. **Deliver only if score >= 85 / 100.**

| # | Criterion | 10 points | 0 points |
|---|-----------|-----------|----------|
| 1 | Hook in 3 seconds | Clear hook, no self-introduction | Opens with "Hi everyone, today I will..." |
| 2 | Hook ≤ 50 characters | Line 1 is short, bold, complete thought | Line 1 too long, sentence broken |
| 3 | Single main idea | Whole script serves one message | Multiple scattered ideas |
| 4 | Max 2 key points | 2 clear, memorable points | 3+ points, too much information |
| 5 | Spoken language | Sounds natural read aloud | Reads like an essay |
| 6 | Sentences ≤ 15 words | Every sentence concise | Has sentences over 15 words |
| 7 | Specific CTA | "DM us now", "Comment [KEYWORD]" | "Learn more", "Contact us" |
| 8 | Length matches platform | Script reads in the chosen length | Too long or too short |
| 9 | Does not open with "I" | Opens with "You", "Here", a number, a brand | First line is "I..." |
| 10 | Includes shoot guide | Camera angle, action, text overlay specified | Only dialogue, no visuals |

| Total | Verdict | Action |
|-------|---------|--------|
| 95–100 | Excellent | Deliver now |
| 85–94 | Good | Deliver with notes for improvement |
| 70–84 | Average | Revise before delivery |
| < 70 | Weak | Rewrite |

---

## Examples — diversified regions

### Example A — US DTC supplement, 30s TikTok, TOFU

- Hook (Question): "Do you know why your morning energy crashes by 11am?"
- Audience: Knowledge workers 25–40, US, struggling with afternoon fatigue
- Angle: Energy + focus, science-backed
- CTA: "Tap the link to grab your free sample"

### Example B — EU clean-beauty serum, 45s Reels, MOFU

- Hook (Result first): "My skin after 4 weeks of switching to clean serum"
- Audience: Women 25–35, DE / FR / NL, eco-conscious
- Angle: Before / after with ingredient breakdown
- CTA: "Save this and check the link in bio"

### Example C — SEA fitness coaching app, 60s Shorts, BOFU

- Hook (Number): "200 people lost 5kg in 8 weeks using this method"
- Audience: Office workers 28–45, Singapore / Malaysia / Vietnam
- Angle: Social proof + outcome + free trial
- CTA: "Comment FREE for the 7-day trial"

---

## Cross-reference

- **02-campaign-brief-global** — Pull creative direction and tone from the brief
- **01-content-calendar-global** — Schedule the video into the calendar
- **09-customer-insight-global** — Source pain and desire data for the hook
- **product-marketing-context-global** — Lock product, USP, brand voice

---

## Quality checklist

Before delivering the script, verify:

- [ ] 2 A/B variants with different hooks
- [ ] Hook lives in the first 3 seconds, no self-introduction
- [ ] Each sentence is at most 15 words, spoken-language style
- [ ] Visual / action notes for every timestamp
- [ ] Text overlay defined for every section
- [ ] Specific CTA, action-driving (not generic "learn more")
- [ ] Length matches the chosen platform
- [ ] Shoot guide included (equipment, lighting, angles)
- [ ] Caption + hashtags written
- [ ] Viral score calculated
- [ ] No copyrighted music in the script
- [ ] Funnel angle matches funnel stage (TOFU / MOFU / BOFU)
- [ ] Hashtags localised for region
- [ ] CTA phrasing matches `.agents/product-marketing-context-global.md` voice