Video content planning. Writes narration scripts, storyboards, shot lists, and asset checklists. Saves plan to marketing/video-plan.md.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add Rune-kit/rune --skill video-creator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Video Creator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rune-kit-video-creator)More formats (shields.io, HTML) on the badges page.
---
name: video-creator
description: "Video content planning. Writes narration scripts, storyboards, shot lists, and asset checklists. Saves plan to marketing/video-plan.md."
metadata:
author: runedev
version: "0.3.0"
layer: L3
model: sonnet
group: media
tools: "Read, Write, Edit, Glob, Grep"
---
# video-creator
## Purpose
Video content planning for product demos and marketing. Writes narration scripts with timing marks, creates scene-by-scene storyboards, defines shot lists, and lists required assets. Saves the complete production plan to a file. This skill creates PLANS for video production — not actual video files.
## Called By (inbound)
- `marketing` (L2): demo/explainer video scripts
- `launch` (L1): product demo videos
## Calls (outbound)
None — pure L3 utility.
## Executable Instructions
### Step 1: Receive Brief
Accept input from calling skill:
- `topic` — what the video is about (e.g. "Rune plugin demo", "Feature X walkthrough")
- `audience` — who will watch (e.g. "developers", "non-technical founders", "existing users")
- `duration` — target length in seconds (e.g. 60, 120, 300)
- `platform` — where it will be published: `youtube` | `twitter` | `tiktok` | `loom` | `internal`
- `output_path` — where to save the plan (default: `marketing/video-plan.md`)
Derive constraints from platform:
- YouTube: no strict length limit, chapters recommended for > 3min
- Twitter/X: max 140 seconds, hook in first 3 seconds
- TikTok: max 60 seconds, fast-paced cuts, captions required
- Loom: async-friendly, screen recording focus, no music needed
### Step 2: Script
Write a narration script with timing marks. **Before writing a single line, apply the
Narration Craft principles below** — a script the viewer HEARS lives or dies on the
opening and the flow, not the shot list.
Structure:
- **Hook** (0–5s): opening line that grabs attention — state the problem or the payoff
- **Setup** (5–15s): context — who this is for and what they will learn
- **Demo/Body** (15s–[duration-15s]): main content broken into scenes
- **CTA** (last 10s): call to action — what to do next (star repo, sign up, share)
Format each section:
```
[00:00] HOOK
Narration: "..."
On screen: [what viewer sees]
[00:05] SETUP
Narration: "..."
On screen: [what viewer sees]
```
### Step 3: Storyboard
Create a scene-by-scene breakdown:
For each scene:
- Scene number and name
- Duration in seconds
- Visual description (what appears on screen)
- Narration text (from Step 2)
- Transition type: cut | fade | zoom | slide
Example:
```
Scene 3: Live demo — install command
Duration: 12s
Visual: Terminal window, typed command "npm install -g @rune/cli", output scrolling
Narration: "Install in seconds with one command."
Transition: cut
```
### Step 4: Shot List
Define exactly what needs to be recorded or shown:
Categorize by type:
- **Screen recording**: list each screen state to capture (URL, app state, what to do)
- **Code snippet**: list each code block to display (file path + line range, or inline)
- **Diagram/slide**: list each static visual needed (title, key points)
- **Terminal**: list each command sequence to record
Format:
```
Shot 1 — Screen recording
URL: https://myapp.com/dashboard
Action: Click "New Project" → fill form → click Create
Duration: ~8s
Shot 2 — Terminal
Command: npm install -g @rune/cli && rune init my-project
Expected output: [describe what should appear]
Duration: ~10s
```
### Step 5: Assets Needed
List every asset required before recording can begin:
- Screenshots (which pages/states)
- Code snippets (which files, which sections)
- Diagrams (topic, style: flowchart | architecture | comparison table)
- Slide backgrounds or title cards
- Thumbnail (dimensions based on platform: YouTube 1280x720, Twitter 1200x628)
### Step 6: Report
Use `Write` to save the complete video plan to `marketing/video-plan.md` (or the specified `output_path`):
```markdown
# Video Plan: [topic]
- **Platform**: [platform]
- **Target Duration**: [duration]s
- **Audience**: [audience]
- **Created**: [date]
## Script
[full timestamped script from Step 2]
## Storyboard
[scene-by-scene breakdown from Step 3]
## Shot List
[all shots from Step 4]
## Assets Needed
[checklist from Step 5]
## Platform Notes
[constraints and tips for the target platform]
```
Then output a summary to the calling skill:
```
## Video Plan Created
- File: [output_path]
- Scenes: [count]
- Shots: [count]
- Estimated recording time: [n] minutes
- Assets to prepare: [count] items
### Next Steps
1. Prepare assets listed in the plan
2. Record shots in order from the shot list
3. Edit using the storyboard as reference
```
## Narration Craft (decides whether a script hooks or bores)
A demo script is HEARD by a person, not read off a slide. These principles separate an
engaging script from generic voiceover — apply them in Step 2, before writing any line.
**The 9 principles:**
1. **Pain-first opening.** Open on the viewer's biggest pain or a stat already in flight ("Nếu bạn hay phải…", "This repo has 9k stars and…"). NEVER a flat catalogue opener ("Today we'll look at…", "This is a tool that…") — it names no problem and gives zero reason not to scroll.
2. **Contrast structures.** "not just X but Y", "not X, it's Y", "like X but with Y". Contrast pulls attention.
3. **2nd-person address.** "you'll see right away", "if you build on an M-series Mac…". Bring the viewer in.
4. **Demonstrative immediacy.** "right here", "this", "on the timeline now". Concrete and present.
5. **Specific real names, keep the jargon.** Name actual files, commands, competitors ("Final Cut", "Cursor", "ffmpeg"). Generic terms ("an AI tool", "the framework") are banned. Don't force-translate jargon into awkward words.
6. **Quantified social proof — ONCE.** "over 9k stars". Never dump stars + forks + issues back-to-back as separate fragments.
7. **Short clauses, comma-flowed.** "You can trim, replace, or regenerate it." One breath, not bullet fragments.
8. **Caveat-as-feature.** State one honest limit or a "who should NOT use this". This is the most trust-building line in the video — a retention feature, not filler.
9. **Use-case landing.** Close on a SPECIFIC viewer scenario, not "go check it out".
**Named + numbered "weapons".** Give each differentiator a title and a number ("Weapon 01/02"). Mine the 2-3 NON-OBVIOUS specifics (a regex, a guard, an algorithm, a fallback) — one precise surprising mechanism beats a generic capability list.
**Connectors between scenes.** Each scene after the first opens with a linguistic connector referring back ("The core of it is…", "Specifically…", "But note…") so the whole video plays as ONE monologue, not N telegraphic captions read in a row. Read the full script aloud in sequence — if it sounds like disconnected soundbites, rewrite.
**Auto-fail patterns — reject the script if any appear:**
- ❌ Hook/Problem/Solution/CTA fill-in-the-blank treated as isolated fragments
- ❌ Sidebar stats (stars/forks/issues) as separate one-line scenes
- ❌ Every sentence restarts as a stand-alone bullet ("X runs one pipeline. Y writes. Z narrates.")
- ❌ Generic capability claims ("full-featured", "very powerful", "popular in the community")
- ❌ Describing the README/repo instead of the product
- ❌ Closing with "go check it out" / "thanks for watching"
## Voiceover: TTS-Safe Narration (when narration is machine-spoken)
When narration will be synthesized by a TTS engine (AI voiceover, not a human reading),
the spoken `narration` and the on-screen text are SEPARATE channels — one is heard, one
is read. Optimize each independently; never feed a raw slug, number, or symbol into TTS
and hope the voice guesses right. (The Vietnamese examples below illustrate the pattern;
apply the same phonetic + numbers-as-words substitution for whatever language the target
TTS engine speaks.)
**Numbers → spoken words** (many neural TTS engines can misread bare digits — VN examples):
| Form | TTS misreads | Write as |
|---|---|---|
| Version decimal | `GPT 5.5` → "năm rưỡi" | `GPT năm chấm năm` |
| Stat decimal | `82.7%` | `tám mươi hai phẩy bảy phần trăm` |
| Spec | `200MP` | `hai trăm megapixel` |
| Price | `$5` / `21 triệu` | `năm đô` / `hai mươi mốt triệu đồng` |
| Multiplier / percent | `2x` / `30%` | `gấp đôi` / `ba mươi phần trăm` |
**English/brand names → phonetic in narration, exact spelling on screen:**
| Term | narration (heard) | display (read) |
|---|---|---|
| README | `ruýt my` | `README` |
| ffmpeg | `ép ép em peg` | `ffmpeg` |
| GitHub / repo | `git hâb` / `rề pô` | `GitHub` / `repo` |
| API / GPT | `ây pi ai` / `gí pi tí` | `API` / `GPT` |
**Strip from spoken narration:** emoji, URLs (say "github chấm com gạch…"), symbols (`→ & % $ # / @`), slash-commands (say "the plugin install command"), file extensions mid-sentence (say "the YAML file"), camelCase identifiers, ellipsis `…` and em-dash `—` (TTS misreads them — split into two short sentences). End every sentence with `.` or `?` for a natural pause.
**Keep the jargon, natural spoken register.** Write the way a knowledgeable friend SAYS it — but keep the standard technical term ("commit", "endpoint", "prompt" stay in their usual form; a hard translation sounds wrong and loses meaning). Only translate when the local word is the one people actually use.
**Production notes for a spoken video (if it will actually be produced, not just planned):**
- **One voice, one provider across all scenes** — a voice/provider change mid-video is jarring.
- **Measure TTS duration FIRST**, then size each scene's visuals to the real audio length — estimating duration then rendering causes A/V drift.
- **Karaoke captions are the #1 pro-signal** for short-form (TikTok/Reels/Shorts): a bottom-center caption filling word-by-word in sync with the voice, keyword-accented. Muted-autoplay comprehension plus the single strongest "professional" cue — reserve a bottom caption band for it.
## Note
This skill creates PLANS for video production. Actual recording and editing must be done by a human or a dedicated screen recording tool.
## Output Format
Video Plan saved to `marketing/video-plan.md` with script, storyboard, shot list, assets checklist, and platform notes. Summary report with scene/shot counts and estimated recording time. See Step 6 Report above for full template.
## Constraints
1. MUST confirm video parameters (duration, resolution, format) before generating
2. MUST NOT exceed reasonable file sizes without user confirmation
3. MUST save to project assets directory
## Sharp Edges
Known failure modes for this skill. Check these before declaring done.
| Failure Mode | Severity | Mitigation |
|---|---|---|
| Platform constraints not applied (e.g., Twitter max 140s exceeded) | HIGH | Step 1: derive constraints from platform immediately — they constrain everything downstream |
| Missing CTA section in script | MEDIUM | CTA (last 10s) is required in every script — no exceptions regardless of duration |
| Not saving to file (only verbal output) | HIGH | Constraint 3 + Step 6: Write to output_path is mandatory — verbal only = no persistence |
| Promising an actual deliverable video file | MEDIUM | Note explicitly: this skill creates a PLAN — actual recording is done by a human |
| Flat catalogue opener ("Today we'll look at…") instead of a pain-first hook | HIGH | Narration Craft #1: open on the viewer's biggest pain — an opener that names no problem loses the scroll in 2 seconds |
| Raw slugs/numbers/symbols left in narration for TTS ("README", "82.7%", "5.5") | HIGH | Voiceover section: rewrite spoken narration phonetically + numbers-as-words; keep exact spelling only on the display channel |
| Script reads as N disconnected soundbites | MEDIUM | Narration Craft connectors: each scene after the first opens referring back — read the whole script aloud before declaring done |
## Done When
- Platform constraints identified and applied to duration/format
- Narration Craft applied — pain-first opening, cross-scene connectors, ≥1 caveat-as-feature, no auto-fail patterns
- If narration is TTS-spoken: numbers-as-words + phonetic brand names in the spoken channel, exact spelling on display
- Script written with timing marks (hook, setup, demo/body, CTA)
- Storyboard created scene-by-scene with transitions
- Shot list categorized by type (screen recording, terminal, code, diagram)
- Assets needed checklist generated
- `video-plan.md` written to `output_path` with the runtime's file-edit capability
- Video Plan Created report emitted with scene count, shot count, and asset count
## Cost Profile
~500-1500 tokens input, ~500-1000 tokens output. Sonnet for script quality.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!