Writing Short-Form Video Scripts
Overview
Turns a raw idea into a shootable script, not a fuller idea. Most people
already generate strong raw material (a real moment, a testimonial snippet, a
staff/volunteer reflection, a rough concept) — the reliably-dropped step is
the distinct structural work of the Hook → Body → Payoff (+ CTA) structure
with multiple hook variants and shot-by-shot pacing. This skill does only that
conversion. For per-platform length/aspect limits and caption accessibility,
see references/platform-specs.md.
Recommended background: if this project has a brand kit (commonly built
via the building-brand-kits skill), load its voice-card.md (register
matrix, and whether the brand treats testimonials as on-brand or prefers
stat-block/show-don't-tell credibility instead) and fact-sheet.md (owned
channels — see the platform note below) before drafting.
Non-negotiable: Consent & Anonymization
Every script this skill produces must carry an explicit consent/anonymization flag whenever it involves a real person's story, likeness, voice, or footage — a patient, client, customer, community member, employee, volunteer, minor, or anyone else whose identity is used, even partially or implicitly (a first name, a recognizable face, a distinctive location, a voice).
This is not step 8 of a workflow that can be skipped if time is short — it is a standing requirement that applies to the entire output, checked before the script is considered done. Concretely:
-
Surface the consent question every time, even for a hypothetical, composited, or clearly-fictionalized idea. Silence on consent in the raw material is never treated as consent implied.
-
The flag must be explicit and verbatim-visible in the delivered script (see the template's consent field), not folded into a general disclaimer or left to the reader to infer.
-
Use this exact shape for the flag, adapted to who's involved:
Confirm before filming/publishing: has consent been obtained from [subject], and should any identifying detail (name, specific location, face, voice) be anonymized or blurred in the final cut?
-
If the raw idea involves a minor, a vulnerable person, or a person no longer available to confirm consent, say so explicitly and flag it as higher-priority rather than treating it like any other subject.
This requirement must never be diluted, made optional, or reworded into a soft suggestion. Treat it as a hard gate on the output, not a courtesy note.
When to Use
- A raw session moment, story fragment, testimonial-style snippet, or rough video concept exists and needs to become a shot-by-shot script (e.g. "a customer described how the product changed their morning routine and got emotional telling it").
- A rough concept for an existing owned channel needs to become a shot list with hook/payoff/CTA structure.
- Not for: generating the raw idea itself, or planning a multi-video content calendar or theme set — see "Related / not yet built" below. Not for long-form video — this is short-form (Reels/Shorts/short native-video pacing).
Quick Reference
| Output piece | Spec |
|---|---|
| Hook lines | Exactly 3 options, each ≤14 words, genuinely distinct angles |
| Shot list | Scene-by-scene, 3-5 second cut points |
| Payoff line | 1 line, closes the emotional arc opened by the hook |
| CTA | Platform-appropriate for the organization's actually-active channels only (confirm from the fact sheet — don't assume) |
| Consent flag | Always present, always explicit — never optional (see above) |
| Format/platform | Vertical 9:16; length target per target platform (often 15–30s for completion); open captions + safe zones — see references/platform-specs.md |
| Voice pass | Register per the project's voice card + a full de-AI-flavor pass before finalizing |
Workflow
- Read the raw idea. Identify the emotional core — what changed, what was revealed, what the subject felt or did. This is what the hook and payoff both orbit around. Note who the real person involved is (patient, client, customer, community member, employee, volunteer, minor, etc.) — you'll need this for the consent flag at the end.
- Draft 3 hook-line options, each ≤14 words. The three must be genuinely distinct angles, not three phrasings of the same line — e.g. one curiosity-driven, one emotion-forward, one concrete-detail-forward. Submitting three near-duplicates fails the spec.
- Build the scene-by-scene shot list, cutting every 3-5 seconds — change something visual (shot, angle, on-screen text, motion) on that cadence and never let one static shot run past ~8s, since a flat stretch is where viewers drop. The hook must land in the first ~1.5–3s (early drop-off is a negative algorithm signal). Each beat should name what's on screen (action, expression, object) — not just a caption. Let the subject's own words or actions carry the emotional weight; do not invent a spoken testimonial line to narrate feelings for them (see Common Mistakes).
- Write the payoff line — the moment the hook's tension resolves. Keep it short; it should land, not summarize.
- Add a platform-appropriate CTA. First confirm the organization's
actually-active platforms from its fact sheet (commonly built via
building-brand-kits, under "Owned channels") before choosing a CTA/format — never assume a platform is available (or unavailable) without checking; fact sheets typically also list channels the org deliberately does not use, so a CTA never points somewhere that doesn't exist. Match the CTA to the register this piece targets — e.g. "Book a session," "Learn more," or "Get in touch" for a warm consumer register, versus a more formal ask for a B2B/partner register — per the voice card's register matrix, unless the brief explicitly says otherwise. - Confirm register. Default to whichever register the voice card marks as the default for this kind of content (often the consumer/audience- facing register). Only switch registers if the brief explicitly targets a different audience — and if so, still avoid inventing a spoken testimonial if the voice card's proof-style column calls for stat-block or show-don't-tell credibility instead.
- Run a full de-AI-flavor pass on every line of spoken/on-screen text
before finalizing — cross-reference
building-brand-kits'sreferences/de-ai-flavor-filter.md(or run it viaauditing-brand-voiceif that skill is installed). Scripts meant to be read aloud are especially prone to sounding like generic AI voice-over. - Append the consent/anonymization flag. Regardless of workflow step count, this is not optional — restate the exact consent question from the "Non-negotiable" section above as the literal last line of the delivered script, every time, with no exceptions.
Common Mistakes
| Mistake | Fix |
|---|---|
| Treating the consent/anonymization flag as optional or skippable when the idea "seems fine" | Always surface the exact consent question, every single time, with no exceptions — see "Non-negotiable" above |
| Writing one hook instead of three | Variety across 3 distinct angles is part of the spec, not a nice-to-have |
| Writing the script as an over-the-top, unearned gratitude testimonial (e.g. an invented line like "This place changed my entire life") | If the project's voice card specifies stat-block/show-don't-tell credibility over testimonial framing, let footage of the subject's own words/actions carry the story instead of inventing quoted praise — this is only a rule if the voice card says so, not a universal law |
| Skipping the de-AI-flavor pass because "it's a video script, not an article" | Run the full pass anyway — spoken/read-aloud scripts are especially prone to robotic AI cadence |
| Assuming a platform is (or isn't) available without checking | Confirm the organization's actually-active channels from its fact sheet before picking a CTA/format — don't default to whatever platform is trendy |
| Using a mismatched register's CTA (e.g. a formal B2B ask on a warm consumer piece, or vice versa) | Default to the register the voice card marks as default for this content type; only switch if the brief explicitly asks for a different audience |
Related / not yet built
A social-content-strategy skill (theme to per-platform angle/headline set feeding a content calendar, covering non-video captions too) is a valuable future companion to this scriptwriter. It is out of scope for this skill and intentionally deferred, not forgotten — a future skill author should build it separately rather than growing this one to cover it.
