- name
- ads-video
- description
- Writes complete, production-ready video ad scripts (15s/30s/60s) with shot-by-shot timing, voiceover, on-screen text, B-roll, music direction, storyboards, and three proven frameworks (Hook-Demo-CTA, Problem-Solution-Proof, UGC Testimonial). Trigger EN: "/ads video", "video ad script", "video creative", "TikTok ad", "YouTube pre-roll", "Reels ad", "Facebook video ad", "brief a video editor". Trigger FR: "script vidéo pub", "pub vidéo", "créa vidéo", "script de pub", "vidéo TikTok pub", "scénario publicité vidéo". Also runs as a subagent of /ads strategy.
# Video Ad Script Writer
> Portability note: triggers like `/ads video` and the `/ads strategy` orchestrator are OmegaOS slash-command conventions. The skill itself is environment-agnostic — invoke it directly with a product name/URL on any host; only the `/ads …` invocation phrasing is VPS-specific.
## Single-voice craft (do NOT parallelize)
This is a **single-voice creative deliverable**, not a multi-angle analysis. The 9 scripts must read like one creative director wrote them in one sitting — consistent brand voice, recurring hook DNA, a coherent through-line. **Never fan out the script-writing across parallel subagents**: splitting the 9 scripts across workers fractures voice, duplicates research, and produces tonal whiplash between frameworks. Write all 9 in one pass, in one head.
Allowed parallelism is **research-only** (Step 1): the `WebFetch` + `WebSearch` calls in Step 1 may run concurrently to gather context faster. The moment context is assembled, switch to single-threaded writing.
**Craft upgrades (apply to every script):**
1. **Carry one hook DNA across all 9.** Pick the single sharpest angle for this product, then express it three ways (per framework) at three lengths — don't invent 9 unrelated concepts. The 30s and 60s should feel like the 15s with room to breathe, not different ads.
2. **Write voiceover for the ear, not the page.** Read every VO line aloud against the timecode — if it can't be spoken cleanly inside its slot at a natural pace (~2.5 words/sec), cut words until it can. Front-load the verb, kill filler ("basically", "literally", "in order to"). The word-count limits (15s: 30-40, 30s: 65-80, 60s: 130-160) are hard ceilings, not targets.
3. **Make on-screen text do its own job, not echo the VO.** Text overlays should add a stat, a price, or a punch the voiceover doesn't say — redundant text wastes the most valuable real estate on screen. Hook text must be readable in <0.8s (≤6 words, high contrast).
## Skill Purpose
Generate complete, production-ready video ad scripts for three standard ad lengths: 15-second (TikTok/Reels/Bumper), 30-second (Pre-roll/Stories), and 60-second (YouTube/Facebook). Each script includes a shot-by-shot breakdown with exact timing, voiceover transcript, on-screen text overlays, B-roll suggestions, music/mood direction, and CTA placement. Scripts are written using three proven video ad frameworks and include a storyboard outline that a video editor or motion designer can follow without additional briefing.
## When to Use
- User runs `/ads video <product>`
- User asks for video ad scripts, video creative, or video content for ads
- Called as a subagent from `/ads strategy` (the main orchestrator)
- User needs scripts for TikTok ads, YouTube pre-roll, Instagram Reels, Facebook video ads, or Stories
- User wants to brief a video editor or freelancer on ad creative
## Input Requirements
- **Required:** Product or service to advertise (name, description, or URL)
- **Optional:** Target audience persona, brand guidelines, existing footage/assets, desired tone, specific platform focus, offer details
## How to Execute
### Step 0 (optional): analyze reference ads with /watch
If the user names competitor video ads or reference creatives (YouTube, TikTok, Instagram, X links, or local files), run /watch on 2 or 3 of them before Step 1. Each report.md documents the 0-10s hook (dense frames plus exact opening words), pacing (cuts per minute), and the full transcript. Feed that into the Video Brief: which hook patterns the winners use, how fast they cut, when the product appears. Write scripts that beat observed ads, not imagined ones. Skip when no references exist.
### Step 1: Gather Product & Brand Context
If a URL is provided, fetch it using `WebFetch` and extract:
- Product/service name and description
- Key features and benefits
- Price point and offer structure
- Target audience indicators
- Brand tone and visual style
- Existing video content (YouTube channel, social media)
- Testimonials or case studies
- Competitor positioning
Run supplementary research:
```
WebSearch: "[Product/Brand]" video ad
WebSearch: "[Industry]" best video ad examples
WebSearch: "[Industry]" TikTok ad examples viral
WebSearch: "[Product category]" YouTube ad examples
```
Establish the video brief:
```markdown
## Video Brief
**Product/Service:** [Name]
**Business:** [Company name]
**What it does:** [1-sentence description]
**Who it's for:** [Target persona in 1 sentence]
**Core benefit:** [The #1 reason someone buys this]
**Key differentiator:** [What makes it different from alternatives]
**Price/Offer:** [Current pricing, discount, free trial]
**Desired action:** [What should the viewer DO after watching]
**Tone:** [Professional / Casual / Energetic / Bold / Warm / Edgy / Playful]
**Brand colors:** [Primary and secondary if known]
**Existing assets:** [Footage, product photos, testimonials available]
**Competitors to reference:** [Who they're competing against for attention]
```
### Step 2: Apply Three Video Ad Frameworks
Every script set uses all three frameworks. Each framework produces one version per ad length (15s, 30s, 60s) for a total of 9 scripts.
---
#### Framework 1: Hook-Demo-CTA
**Structure:**
- **Hook (first 20-30% of runtime):** Bold opening statement, shocking stat, or provocative question that stops the scroll
- **Demo (middle 50-60%):** Show the product in action. Prove the claim made in the hook. Use screen recordings, product shots, or demonstrations.
- **CTA (final 10-20%):** Clear call to action with urgency or incentive. On-screen text + verbal CTA.
**Best for:** SaaS demos, product showcases, tool walkthroughs, e-commerce product reveals
**Psychology:** The hook creates attention, the demo creates desire through proof, the CTA creates action through urgency.
---
#### Framework 2: Problem-Solution-Proof
**Structure:**
- **Problem (first 25-30%):** Show or describe the painful problem the audience faces. Make them feel the frustration.
- **Solution (middle 40-50%):** Introduce the product as the answer. Show how it specifically solves the problem stated.
- **Proof (final 20-30%):** Back it up. Testimonial clip, results screenshot, before/after, or stat. End with CTA.
**Best for:** Pain-driven products, service businesses, health/wellness, financial services, any product that solves a clear problem
**Psychology:** Pain activation (amygdala), then relief (dopamine release when solution is shown), then social validation (proof reduces risk).
---
#### Framework 3: UGC-Style Testimonial
**Structure:**
- **Personal hook (first 15-25%):** Person speaking directly to camera with a relatable statement: "I tried everything for [problem] and nothing worked until..."
- **Story/experience (middle 50-60%):** Tell the story of discovering and using the product. Show authentic, unpolished moments. Include specific details and results.
- **Recommendation + CTA (final 15-25%):** Genuine endorsement with specific reasons why. End with "Link in bio" or "Check it out" style CTA.
**Best for:** DTC brands, courses/coaching, beauty/wellness, apps, any product where social proof drives purchase
**Psychology:** Mirror neurons fire when watching someone like us share an experience. UGC-style content bypasses ad skepticism because it looks like organic content.
### Step 3: Write Scripts for Each Length
---
#### 15-Second Scripts (TikTok / Reels / Bumper Ads)
Constraints:
- Total runtime: 15 seconds
- Word count (voiceover): 30-40 words max
- On-screen text: 2-3 text cards max
- One single focused message — no room for multiple points
- Hook must land in first 1.5 seconds
For each of the 3 frameworks, produce a script in this format:
```markdown
### 15s Script [Number] — [Framework Name]
**Platform(s):** TikTok In-Feed, Instagram Reels, YouTube Bumper
**Aspect ratio:** 9:16 (vertical)
**Total runtime:** 15 seconds
**Word count:** [count] words
---
| Time | Visual / Shot | On-Screen Text | Voiceover / Audio | Music/SFX |
|---|---|---|---|---|
| 0:00-0:02 | [Shot description — camera angle, subject, action] | [Bold text overlay] | "[Spoken words]" | [Music mood: energetic opener / bass drop / trending sound] |
| 0:02-0:05 | [Shot description] | [Text overlay if any] | "[Spoken words]" | [Music continues / transitions] |
| 0:05-0:10 | [Shot description] | [Text overlay if any] | "[Spoken words]" | [Music mood] |
| 0:10-0:13 | [Shot description] | [Text overlay if any] | "[Spoken words]" | [Music builds] |
| 0:13-0:15 | [CTA shot — product shot, logo, URL] | [CTA text: "Shop Now" / "Link in bio" / "Try free"] | "[CTA spoken]" | [Music resolves / sting] |
**B-Roll suggestions:**
- [Suggestion 1 — specific, filmable scene]
- [Suggestion 2]
- [Suggestion 3]
**Storyboard outline:**
| Frame | Description | Notes |
|---|---|---|
| Frame 1 | [What the viewer sees — composition, subject, text position] | [Production note] |
| Frame 2 | [description] | [note] |
| Frame 3 | [description] | [note] |
| Frame 4 | [description — CTA frame] | [note] |
**Director's notes:**
- [Pacing note — fast cuts, slow reveal, etc.]
- [Tone note — energy level, facial expressions, urgency]
- [Platform-specific note — TikTok native feel vs. polished for YouTube]
```
---
#### 30-Second Scripts (Pre-Roll / Stories / Standard Social)
Constraints:
- Total runtime: 30 seconds
- Word count (voiceover): 65-80 words
- On-screen text: 4-6 text cards
- Hook must land in first 3 seconds
- For YouTube pre-roll: hook before the 5-second skip button
- Can include 1 testimonial quote or stat card
For each of the 3 frameworks, produce a script in this format:
```markdown
### 30s Script [Number] — [Framework Name]
**Platform(s):** YouTube Pre-Roll, Facebook Feed Video, Instagram Stories (multi-card)
**Aspect ratio:** 16:9 (landscape for YouTube) / 9:16 (vertical for Stories) / 1:1 (square for Feed)
**Total runtime:** 30 seconds
**Word count:** [count] words
---
| Time | Visual / Shot | On-Screen Text | Voiceover / Audio | Music/SFX |
|---|---|---|---|---|
| 0:00-0:03 | [Hook shot — must capture attention before skip] | [Bold hook text] | "[Hook line]" | [Attention-grabbing opener] |
| 0:03-0:07 | [Shot description] | [Text overlay] | "[Spoken words]" | [Music mood] |
| 0:07-0:12 | [Shot description — demo/problem visualization] | [Text overlay] | "[Spoken words]" | [Music transitions] |
| 0:12-0:18 | [Shot description — solution/product in action] | [Key benefit text] | "[Spoken words]" | [Music builds] |
| 0:18-0:24 | [Shot description — proof/testimonial/result] | [Proof text — stat or quote] | "[Spoken words]" | [Music continues] |
| 0:24-0:28 | [CTA shot — product, offer, urgency element] | [Offer/CTA text] | "[CTA spoken]" | [Music resolves] |
| 0:28-0:30 | [End card — logo, URL, CTA button] | [Brand + CTA] | "[Final line]" | [Music sting / outro] |
**B-Roll suggestions:**
- [Suggestion 1 — specific, filmable scene]
- [Suggestion 2]
- [Suggestion 3]
- [Suggestion 4]
- [Suggestion 5]
**Storyboard outline:**
| Frame | Time | Description | Camera | Text Position |
|---|---|---|---|---|
| Frame 1 | 0:00-0:03 | [description] | [angle/movement] | [where text appears] |
| Frame 2 | 0:03-0:07 | [description] | [angle] | [text position] |
| Frame 3 | 0:07-0:12 | [description] | [angle] | [text position] |
| Frame 4 | 0:12-0:18 | [description] | [angle] | [text position] |
| Frame 5 | 0:18-0:24 | [description] | [angle] | [text position] |
| Frame 6 | 0:24-0:30 | [CTA card] | [static/zoom] | [centered] |
**Director's notes:**
- [Pacing and energy direction]
- [Transition style between shots — cut, dissolve, swipe, zoom]
- [Color grading / visual mood direction]
- [Audio mixing notes — music vs. voiceover balance]
```
---
#### 60-Second Scripts (YouTube / Facebook / Long-Form Social)
Constraints:
- Total runtime: 60 seconds
- Word count (voiceover): 130-160 words
- On-screen text: 6-10 text cards
- Full narrative arc — beginning, middle, end
- Room for 1-2 testimonial clips, multiple product shots, and a strong CTA sequence
- Hook must still land in first 3 seconds
For each of the 3 frameworks, produce a script in this format:
```markdown
### 60s Script [Number] — [Framework Name]
**Platform(s):** YouTube In-Stream, Facebook Feed Video, LinkedIn Video
**Aspect ratio:** 16:9 (primary), adaptable to 9:16 and 1:1
**Total runtime:** 60 seconds
**Word count:** [count] words
---
| Time | Visual / Shot | On-Screen Text | Voiceover / Audio | Music/SFX |
|---|---|---|---|---|
| 0:00-0:03 | [Hook shot] | [Hook text] | "[Hook line]" | [Attention opener] |
| 0:03-0:08 | [Context/problem setup] | [Supporting text] | "[Lines]" | [Music mood] |
| 0:08-0:15 | [Problem deepens / agitate] | [Pain point text] | "[Lines]" | [Music tension builds] |
| 0:15-0:22 | [Solution introduction] | [Product/brand reveal text] | "[Lines]" | [Music shift — hopeful] |
| 0:22-0:32 | [Demo / how it works / key features] | [Feature/benefit callouts] | "[Lines]" | [Music upbeat] |
| 0:32-0:42 | [Proof — testimonial, results, case study] | [Proof stat or quote] | "[Lines]" | [Music maintains] |
| 0:42-0:50 | [Additional benefit or second proof point] | [Secondary benefit text] | "[Lines]" | [Music builds to climax] |
| 0:50-0:55 | [CTA — offer reveal, urgency] | [Offer text + CTA] | "[CTA spoken]" | [Music peaks] |
| 0:55-0:60 | [End card — logo, URL, tagline] | [Brand + final CTA] | "[Closing line]" | [Music resolves] |
**B-Roll suggestions:**
- [Suggestion 1 — opening establishing shot]
- [Suggestion 2 — problem visualization]
- [Suggestion 3 — product detail shots]
- [Suggestion 4 — customer reaction / testimonial setting]
- [Suggestion 5 — lifestyle / aspirational imagery]
عرض على GitHub