The person points at the page that explains one feature: a help article, a docs page, a skill's page. You deliver a 60-75 s narrated guide (16:9 1920×1080, 30 fps) to embed on that page: it opens on what the feature does to a real shot (before, then after), names the feature, then walks through what the page says with big type and simple animated diagrams, and shows or plays everything it names at the moment it is named. It ends on the brand's mark, the feature's name and the page's address.
It is workflow-product-explainer-video's pipeline (one compositor spec, cued from the
take's word times, looks shown early) with two additions: a generated demo shot that
carries the before/after, and demonstration assets made with the feature's own routes.
Job notes, picks and rounds go in the job's AGENTS.md per the core skill.
Steps
- Read the page, all of it. Load or fetch the page and what it links that carries
the feature (its routes, defaults, prices, limits). Write down what goes on screen:
the feature's exact name, its two or three kinds or routes, the numbers (prices,
levels, timings) with the date you read them, and the one thing the viewer must do
themselves. Check every line of the brief against it. Save it in
source/. Brand from the person's design system or site (guide-capture-a-brand). - Script, beat by beat (
guide-make-a-script-from-source). About 150 spoken words for ~62 s of narration, plus 5-7 s where the demo plays with no voice over it. One table, a row per beat: narration, on screen, you hear. The order that worked: the shot without the feature ("Here's a shot with no sound."), a two-word turn ("Now listen."), the same shot with it and no narration; the title; the kinds; the routes; how it is applied; the check; the end card. Every row's "you hear" or "on screen" demonstrates its own line: a route named is a route played. Write the narration with audio tags ([warm, curious],[brightening],[upbeat]). Gate: the script table, the length and the aspect. - The demo shot. One ~5 s generated shot where the feature has something to act on
(a door that opens, a sign that appears). A start still with the moment not yet
begun and an end still with it done (
nano-banana-prompt-format), then one H3 Max 1080P 5 s clip between them (h3-max-image-to-video,h3-prompt-format, routes inguide-animate-a-shot). Make a contact sheet and write down when the action starts (to 0.05 s): the feature's demo is cued to it. Don't reuse an older shot whose action has already happened. - First scene, voice and music at once. Start the narrator on the whole script
(
guide-cast-a-voice,elevenlabs-tts-v4; the person's own cloned voice if they have one) and two beds in contrasting styles (elevenlabs-generate-music). While they run, build the opening (both shots, the turn card, the title) in three looks on estimated word times (hn4a-compositor-motion-graphics, Show the first scene early), from the build script of step 6 with the look as data. Gate:review_chooseof the looks as live specs; the voice in the same turn if it has landed. - The demonstration assets, made the way the page says to make them: realistic ones
from the feature's main route, the free or local routes for the cheap ones, each
labelled on screen with how it was made ("SYNTHESIZED"). Put the hero asset to the
person on the demo shot, not on its own: the sound in the shot, the title over
the frame. Gate:
review_chooseof two or three previews of the shot with each candidate, at the levels you would ship. - The whole layout (
references/build-spec.md): one Python script, the take's word times in (awhisper-cliJSON transcript or the TTS alignment, viapython-read-word-timings), the spec out. It cuts the voice into pieces around the demo, finds every cue by phrase, draws diagrams from the real assets (a waveform from the actual sound file, frames from the actual shot) and puts each asset's sound under the scene that names it. One still inside every scene, tiled on one sheet; look once, fix what's broken. Check the take against the script with whisper: every word, no tag spoken. Build once per bed if the music is unpicked. Gate:review_approvewith the live spec and the sheet, the beds as options. - Render, mix and deliver. Bring the voice to about −16 LUFS
(
ffmpeg-normalize-loudness) before rendering, bed at about 0.16, thenhn4a-compositor render. Check the render: frames,ffprobethat it is stereo, the loudness, and stills across a contact sheet. Hand it over withdeliver(guide-prepare-renders-for-delivery); you can't hear the mix, so say what the person should listen for (the demo's moment, the pan, the bed under the voice).
Choices this workflow makes
- Show it working before explaining it. The before/after is the hook, and it is the same shot twice, so the only difference is the feature.
- Demonstrate, never describe. Each kind or route the narration names is seen or heard on its word; a diagram is drawn from the real asset, not a stand-in shape.
- Faceless and cheap. Type, diagrams and one generated shot; no presenter. Only the shot, the voice, the music and the demo assets cost money.
- Pick assets in context. The person judged the hero sound on the shot, at mix level; heard alone the same file read differently.
- Labels for anything made, not recorded, so the guide never passes a synthesized sound or a mock screen off as the real thing.
Dead ends
- The hero asset picked at the generator's level: the first door creak was "too aggressive" once it sat in the shot. Three softer variants previewed on the shot at −26 LUFS (the bed at −31) settled it in one review.
- An older demo shot reused: its door was already open, so there was no "before". Make a new start frame with the moment still to come and give the clip an end frame.
- A mix that went mono: a mono voice piece made the compositor's whole mix mono and
the pan demo vanished. Every audio input stereo (
hn4a-compositor-motion-graphics). - Rendering on a −21 LUFS voice: the master came out quiet and needed +2.35 dB and a limiter on the whole track afterwards. Normalize the voice before the build.
Worked example
Acme Co.'s add-sound-effects feature, from its help page. 16:9 1920×1080, 30 fps,
66.7 s (2002 frames), 72 layers. Brand: black, a lime green #66EE44, an electric blue
#2210CC for the type's offset shadow, Brand Sans Black caps, a mono for labels. Script
10 beats, ~150 words, approved as drafted. Voice A (the person's cloned voice), two
takes of the whole script, 56.2 s and 54.8 s, both word-perfect; take a used.
| Beat | On screen | You hear |
|---|---|---|
| Before / after | a clay mascot at a closed cottage door, "NO SOUND", then "NOW LISTEN." card, the shot again, "WITH SOUND" and its waveform drawing | nothing; then the creak at 0.64 s (door moves at 0.65 s) and birds fading in from 0.9 s |
| Title | ADD SOUND EFFECTS, three words stacked | a synthesized pop |
| Two kinds | SPOT EFFECT with the creak's waveform and a marker on its peak / AMBIENCE with the birds' | the creak, then the birds |
| Main route | TEXT IN. SOUND OUT., the prompt typing on, its waveform | the creak |
| Three routes | three numbered columns, then POP / WHOOSH / WIND / RAIN, each "SYNTHESIZED" | each, on its word |
| Place it | six frames of the shot, a marker "~10 MS BEFORE CONTACT", an L-R track with a dot | a whoosh panned left to right with the dot |
| Levels | VOICE bar, AMBIENCE bar shrinking, "18-25 dB UNDER THE VOICE" | the birds dipping under the voice |
| Check / end card | YOUR AGENT CAN'T HEAR. YOU LISTEN.; the mark, wordmark, feature name, page address | a pop |
A lime waveform band scrolls under every scene after the title, with a fixed playhead.
| Review | Pick or note (paraphrased) | Fix |
|---|---|---|
| looks | Bold slam / Electric blue / Waveform editor: the editor | Look C carried to the full build |
| looks | The creak is too aggressive | Three softer creaks previewed on the shot |
| creak | Variant F, as previewed | F at −26 LUFS, birds at −31 |
| full layout | Light electronic bed, no other notes | Rendered; voice gain and limiter on the master |
Delivered: −16.2 LUFS, true peak −1.6 dB, stereo. Cost at list prices: the H3 Max clip $0.88, the stills, voice takes, two beds and about 30 s of ElevenLabs sound effects (at $0.0022 a second) the rest, about $1.63 in all; the four synthesized sounds, the layout and the render free.


