video-studio
Starts and orchestrates any video - ads, launch and demo films, motion, title, end and CTA cards, UI walkthroughs, explainers, re-making a reference ad. It picks the format, holds the house laws, writ
SKILL.mdskills/video-studio/SKILL.md
GitHubvideo-studio
The orchestrator. It decides WHAT film to make and in what order, holds the laws every film obeys, and hands each job to the skill that owns it. It owns no scripts and builds nothing itself: when this file starts to explain how to do a craft, that knowledge belongs in an executor.
Setup
The video skills need, once per machine:
- HyperFrames CLI and its skills (heygen-com/hyperframes, Apache-2.0) - the kit's
connections/hyperframes-cli.md;npx hyperframes doctorchecks Node, FFmpeg and Chrome. - Node.js 22+ and FFmpeg (with ffprobe).
- The sound library (music beds with beat cues, analysed sound effects, a Python venv):
python3 ../video-sound/scripts/library.py install→~/.local/share/marketing-agent-kit/video-library(override withVIDEO_LIBRARY). ELEVENLABS_API_KEYfor voice and generated effects (connections/elevenlabs-api.md). Optional:ATLAS_API_KEYfor generated people and scenes (video-generated); a Whisper CLI for the speech gates (video-sound, video-check). Each executor lists its own extras.
The umbrella
| Skill | Owns | Load when |
|---|---|---|
| video-studio (this) | formats, house laws, the film brief, the order of work, routing, intake of new things | always first |
| video-sound | voiceover (ElevenLabs, name gate), music by role and beat, sound effects and the library, the mix, sound checks | any film with sound |
| video-build | HyperFrames compositions: project scaffold, build.py pattern, building from a real product UI, captions, real footage, render, traps | any code-built film |
| video-moves | the 24 camera and editing moves: choice, staging, numbers, code, their sounds | a film needs more than hard cuts |
| video-3d | real 3D with three.js: objects and logos with light, data globes and maps, particles and shaders, post-processing and stylised looks (ASCII cinema, toon, halftone, dither, pixel) | volume, light, depth, element counts or a rendered look CSS cannot give |
| video-generated | Atlas Cloud: generated people, rooms and objects (Seedance, OmniHuman, Nano Banana) | shots that do not exist as footage or UI |
| video-check | QA gates, contact sheets, reading time, transcription, independent review | before anyone sees a film |
| upstream (used as they are) | hyperframes, hyperframes-core, hyperframes-animation, hyperframes-cli, general-video, motion-graphics, product-launch-video, media-use (heygen-com) |
called by the executors |
Executors are universal: no brand and no film's content baked in; colours, words and material come from the film being made. A new executor is created only for a craft that a film or a reviewed test has proven - never an empty skill "for later".
The order of work
Purpose. What is the film for, who sees it, where it runs, what is true (the source for every claim: your product brief, the product itself, its UI and files).
Format.
references/formats.mdmaps the request to a recipe:Request Recipe End card, title card, CTA/offer card, logo sting, lower third, UI panel with animated text references/format-motion-card.md15-25 s launch/demo film of a product, project or site references/format-launch.mdPeople or scenes generated by a model the video-generated skill "Make it like this ad" references/format-reference-copy.mdShorts cut from a long recording (webinar, call, talk) references/backlog-shorts-from-long-footage.mdAnything else code-built the HyperFrames skills through video-build Plan in the recipe's shape (structure, beats, the signature moment - moves from video-moves), with the claim source for every line. List the private data that will be on screen and ask the user about it (laws.md, "Say what private data is on screen").
Brief: write the film's
brief.mdfromreferences/brief.md- the one contract every executor reads (subagents get it verbatim). It owns copy, claims, tone, material, moments and private data; executors own the implementation.Audio first (video-sound): voice generated and measured before the picture is timed.
Build (video-build; moves from video-moves; 3D scenes from video-3d; generated shots from video-generated). A 10-12 s proof first, approved by the user, then the rest.
Sound (video-sound): effects, music, the mix.
Gates and independent review (video-check) - every film, before the user sees it. The user sees a film only after the gates pass and a fresh reviewer has watched it; the review's open P2 list goes with the film.
Deliver; note what was learned (below).
references/examples.md walks three typical requests through these steps.
Laws
references/laws.md binds every film and every executor. House laws apply to all films;
"Brand laws (yours)" holds the rules for your own brand's films - fill it in. Executors
implement the laws and never restate or contradict them - when an executor's rule and a law
disagree, the law wins and the executor is fixed in the same change. The ones violated most:
- Audio first. Voice is generated and measured before the picture is timed.
- Show the subject in use, its real UI and copy; never diagrams about it.
- Every claim on screen exists in the source. Tone and jokes may be invented; names, numbers and features may not.
- Hooks: the first line says what it is, or a pain a stranger gets in one read.
- Motion has a cause on screen. Judge by watching, confirm by metric, not the reverse.
- Say what private data is on screen before anyone sees a proof; the user decides.
When something new is learned
references/intake.md: how an outside repo, a reference film or a rejected cut becomes a
law, a recipe, an executor's rule or a library asset, and which skill owns it. Note what a
film taught in that film's own notes; for changes to the skills themselves, open a pull
request (the kit's CONTRIBUTING.md).
Adapt it
- Your brand laws: fill "Brand laws (yours)" in
references/laws.md- your hook pattern, the setting your customers really work in, aspect per channel, your accent's contrast numbers, where claims come from. - Your brief template: add the fields your team always needs to
references/brief.md(legal line, channel specs, approver) and delete the ones you never use. - Your formats: when you make a second film of a new kind, write its recipe as
references/format-<name>.mdand add a row toreferences/formats.md. - Your library additions: add your licensed music and effects to the sound library (video-sound explains the licence row, analysis and catalogue steps).
- Your review norms: who approves a proof, which channels autoplay muted (use the strict reading norm there), what counts as private data in your company.