Every SKILL.md already declared the new name — name: frames, frames-cli, frames-core, and so on — but the directories were never moved, so the tree carried frames-* in content and hyperframes-* on disk. Everything that resolves a skill by path missed: the core-skill list, the plugin marketplace pin, and the docs the CLI reads at runtime. Eight tests failed on main because the files they open do not exist. The directories now match what the files say they are, and the guide the claude-design contract reads takes the name that contract already used.
2.8 KiB
SCRIPT.md — locked narration (optional)
The locked narration for a project: the final spoken lines + voice + delivery. It is an optional plan-layer file — a video with no narration (bgm-only, silent overlay) has none. The storyboard's per-frame voiceover is the lighter, editable guide; SCRIPT.md is the commit. (Storyboard format → references/storyboard-format.md.)
This file defines the SCRIPT.md shape only. Synthesizing the spoken lines into audio is a capability owned by media-use → references/tts.md.
Free-form markdown — there is no strict parser; the Studio renders it read-only beside the Storyboard board, and the TTS step extracts the indented spoken lines.
Shape
A header block, then one section per spoken line.
| Part | Holds |
|---|---|
| Header | **Voice:** (provider + voice), **Voice settings:** (e.g. stability / similarity / style), **Voice direction:** (overall delivery) |
## Line N — <label> (Frame N) |
one spoken line, tied to its storyboard frame |
**Time:** |
the board's rough window — a guide, not authoritative (real timing comes from TTS word timestamps) |
**Delivery:** |
per-line delivery note |
| indented block | the spoken text — the only part fed to TTS |
Example
# SCRIPT — acme-launch
**Voice:** the service default
**Voice settings:** stability 0.35 · similarity 0.75 · style 0.20
**Voice direction:** Confident, warm, a little playful.
---
## Line 1 — Hook (Frame 1)
**Time:** 0.0 – 3.0s
**Delivery:** Land the promise on the beat.
Ship a launch video in an afternoon.
## Line 2 — The problem (Frame 2)
**Time:** 3.0 – 7.0s
**Delivery:** Wry, a touch tired.
The old way? Prompt, wait twenty minutes, get something that misses.
To TTS
Feed each line's spoken text to the provider documented in
media-use/audio/references/tts.md. The frames tts command is
Pass --voice to choose a voice, or use the bundled speak.mjs helper when word
timestamps are required. Real per-word timing replaces the **Time:** guides.