The person gives you a GitHub repo (a link, or its README). You deliver a 30–60 s video that explains what the repo gives its users, in the project's own brand: a generated, stylized world that acts out what it does, a narrator, titles and chips that name the real things it ships, captions, and an end card with how to get it.
The backbone is workflow-script-to-video with voiceover only (nobody speaks on screen),
plus the compositor for every word on screen. Rounds and deliverables follow the core
skill.
Steps
- Read the repo, not just the README (
guide-pull-product-highlights, GitHub repo route): the project's exact name and casing, the install or run command verbatim, counts (modules, stars) with the date you read them, the licence, and the 5 to 8 named parts a viewer should remember, insource/facts.md, with every claim in the brief checked against the repo. - Capture the brand (
guide-capture-a-brand): route A from the project's homepage link, route C (the repo's language colours, a mono plus a sans) when there is no site. Note the site's signature element (a terminal window, a code card, a chip style). - Script and shot list (
llm-write-an-ad-script, the repo explainer: 110 to 120 words for 45 s, one idea per line, each naming a real part of the repo). A metaphor world carries the pictures, a place or an object per part and one small recurring character as the user (llm-pick-a-visual-metaphor). Shots of 2 to 6 s, one per line or half-line; three quick 2 s shots make the montage. Gate: the script and shot list. - Look and character (
guide-pick-a-stylized-look): three style frames of the opening shot in three looks. Gate: a pick. Then the user character's sheet from the picked frame (nano-banana-character-sheet), anything unwanted (a mouth, a logo) stated as the clean state. - Voice (
guide-voice-a-script, A narrator for a short): three narrators on the whole script; the pick is the take, and its alignment gives the word times. Gate: a pick. - Stills (
guide-pick-a-stylized-look, Process step 4), the character's views as references. Gate: onereview_approvewith a still per shot as itsitems, each with the shot's line as itstext; flag what you'd change rather than silently re-rolling. - Animate every shot at once (
guide-pick-a-stylized-look, Process step 5), each a little longer than its window. Give the character a motion that fits its material (a wind-up toddle for a tin toy). - Rough cut (
ffmpeg-cut-clips-to-a-voiceover, the clips at about a fifth, a 2 stailfor the end card), −16 LUFS (ffmpeg-normalize-loudness); a re-rendered shot drops in by re-running it. - Titles, chips and captions (
hn4a-compositor-brand-ad-titlesfor the opening lockup and the end card,hn4a-compositor-motion-graphicsfor the chips, captions perhn4a-compositor-in-scene-titles): one spec over the rough cut, cued from the word times.- Open on who and what: the maintainer's name, the project's name in its headline font, one line of what it gives the user with the number in the accent, and the install command in the brand's signature element.
- Name each part as it is said: a chip with the part's real identifier
(
lint-fix,src/router,--watch) pops on just before the word. This is what makes clear what the project actually provides. - Lists build on the words, one item a beat.
- Captions from the same word times in the brand's mono or sans, in the lower third, clear of the chips. Leave them off only if the person says so.
- End card: a short headline, the install command again, the repo URL and a credit line.
- Everything over the footage sits on the brand's card or chip background. Hold a
real screen when its words need reading; reveal its parts when that clarifies the
point (
hn4a-compositor-make-product-ui-exciting). Gate: the live spec (hn4a-compositor, Live spec, then render), with stills at every title.
- Render and deliver (
guide-prepare-renders-for-delivery):deliverthe 16:9 master, a small copy for chat, and a 9:16 cut if the person posts vertically. Draft the note that goes with it (llm-draft-a-gift-video-note).
Choices this workflow makes
- The repo's own words and identifiers on screen, the metaphor in the pictures. Stills and clips carry no text; every word is composited.
- The brand from the project's site, not a guess.
- The narrator auditioned on the whole script, like every narrated short
(
guide-voice-a-script): the pick is the take, and its alignment gives the word times, so there is no second read. - Stylized, never photoreal, with one recurring character as the user.
Dead ends
- Arrow lists drawn straight over a busy toy scene: unreadable. On chips they read.
- A chip cued exactly on its word in a 2 s shot was on screen under a second. Cue quick-montage chips from the shot's start.
- Waiting on
taskswhile renders ran from several sessions timed out for half an hour on a call that had already failed and been refunded. Readhistoryfor its status and re-run with a new seed.
Worked example
Acme Co.'s open-source CLI toolkit, from its repo and project site. 16:9 1920×1080, 45 s. Brand from the site: a dark background, one green accent, a mono for identifiers and a sans for headlines, a terminal window as the signature element.
| Part | Picture | On screen |
|---|---|---|
| Opening | A tin-toy character arrives in a toy town | maintainer, project name, one line with its module count, the install command in a terminal card |
| Each module | The character visits the module's shop | a chip with the module's identifier on its word |
| Montage | Three 2 s shots of the town at work | chips cued from each shot's start |
| End card | The town at dusk, held 2 s | headline, install command, repo URL, credit |
Notes on the way: the brief pitched a module the repo had already shipped, so that line was rewritten from the repo; montage chips cued on their words flashed by and were moved to each shot's start. Cost at list prices for a job of this size (3 style frames, a turnaround, about 14 stills on nano banana 2.1 at 2K, voice, about 50 s of H3 Max at 768P): about $6, the titles and renders free.


