Brief
The brief structure that works, how to use references and real UI, a banned list of AI tells, and five example briefs to copy.
The brief decides the quality of a code video more than the model, the effort level or the engine. A good brief pins the message, the length and format, real assets, one or two references, exact colors and fonts, a timed beat map, every on screen line in quotes, and a named list of patterns to avoid. Then it asks for stills before any motion.
Why the brief matters more than the prompt
The famous one line prompt ("make a dynamic 15-second motion graphics video... go all out", first seen around 25 Sep 2026) is a test of the engine, not a way to make your video. Hundreds of people used it and got reels that look alike. Without a reference, Opus "falls back to its default look: centered text, gradient background, everything fading in" (rexan_wong, 636k views).
Critics on X describe the typical output as "overcrowded, effects-driven, high-pace" and say every Opus video "has a PPT feeling". A blind review experiment found the cause is not the effects: "Sameness doesn't come from the effects. It comes from having no idea behind them" (2ssol). Adding one story beat raised its distinctiveness score from 4 to 7.
The cost gap is large too. One account reports a first run of 7 scenes and 26 seconds for about 1.18 USD in tokens, against "viral twelve hour runs" at 2,175 USD (neil_xbt, single source). The difference was the brief.
The brief structure that works
The HyperFrames prompting docs, a director skill used for this research, and creator workflows on X converge on the same parts. Each line removes one decision the agent would otherwise guess.
| Part | What to write | Why |
|---|---|---|
| Route | /hyperframes, or a workflow such as /product-launch-video | Loads the framework rules; without it "the agent guesses at conventions" |
| Message | One sentence the viewer can repeat after one viewing | Every scene is judged against it |
| Audience and destination | "Founders of small online shops, X feed" | The destination sets the aspect ratio and text size |
| Spec | Length, size, frame rate | Defaults are 1920x1080 at 30 fps |
| Assets | Paths: assets/logo.svg, assets/screens/*.png, fonts, a CSV | "Vague assets" is a listed anti pattern; give a path, not "my logo" |
| Reference | 1 to 2 videos or frames, and what to take versus leave | The single biggest quality lever |
| Style tokens | Hex colors, font names and weights | Exact values have "no real downside" (HyperFrames docs) |
| Beat map | Timestamps per beat, one idea per beat, where to hold | Agents "skip breathing room unless told" |
| Copy | Every on screen line in quotes, at most about 8 words a line, 2 lines | "Unquoted text gets paraphrased" |
| Banned list | Named patterns to avoid | Named patterns work better than "avoid an AI look" |
| Gates | "Give me the scene list and one still per scene first; do not animate until I approve" | Fixing a still is far cheaper than fixing a render |
| Truth rule | "Use only real numbers and real UI from the repo; if a screenshot is missing, stop and ask" | Invented metrics and UI are an AI tell |
In each beat, describe the element, its motion, its place in the frame, its style and its timing. Use / inside a quoted line for a line break.
References
Reference videos
Give 1 to 2 reference videos and say what to take from them (pacing, type, transitions) and what to leave (their colors, content and logos). Every serious source agrees on this. "Naming a style works way better than describing one" (rexan_wong), and HyperFrames itself says "Opus 5.5 makes better videos with references" (HyperFrames, vendor).
Where to find them, with the prompt next to each video:
- Prompt Motion, 226 entries at launch.
- MotionPromptGallery, 178 entries, MIT.
- awesome-opus-5-5-videos, 424 source posts as of 11 Oct 2026, CC BY 4.0.
- Remotion prompt gallery.
To use a reference well, pull a frame every 0.5 seconds, measure where the cuts fall, and write a short style guide: palette, type, shot lengths, transitions, camera, texture, how text enters and leaves. HyperFrames' own method for recreating a reference says the first build gets about 75% of the way; after a few rounds of exact corrections, the improved prompt reaches roughly 80 to 90% from scratch. Copy the grammar of a reference, never its content, logos or characters.
Real UI and brand assets
Never let the agent redraw your product UI from memory. Capture the real thing at the film's resolution and animate it.
- For a website,
npx hyperframes capture <url>pulls screens, assets and colors. - For an app, run it locally with fictional seed data and capture each screen state. Inbox Zero's founder captured about 140 states as real DOM with inlined CSS and audited every snapshot for leaks: a real city slipped through a timezone picker (elie2222).
- Give the logo as SVG, plus your color and type values. In HyperFrames these live in
frame.md, the project's "brand truth". - To teach your style once, send screenshots of past videos and let Opus write its own style guide, then reuse it (Aykutuces).
A directions board before the beat map
For a new brand or a big launch, ask for 3 to 4 directions side by side, each with one hook frame and one mid film frame made from your real assets. Pick one and note why. HyperFrames' own pitch round samples five concepts when the request is vague.
The banned list
Anthropic's prompting guide for Opus 5.5 explains why "make it look less like AI" fails: a general instruction like that mostly swaps one default for another. Opus 5.5 responds well to instructions that name the specific patterns to avoid, and the guide says to extend the list after you see the first result.
So name them. This list combines a director skill's defaults, the HyperFrames "lazy defaults" list and Anthropic's own list of Opus defaults. Paste it into the brief and delete anything you actually want.
Banned: centered title on a gradient background, everything fading in,
purple or neon gradients, gradient text, cyan on dark, glow on everything,
particle bursts, shockwave rings, lens flares, camera shake, bouncy easing,
drifting gradient blobs, stock 3D blobs, logos spinning in 3D,
corner HUD labels and frame borders, fake terminal typing,
identical card grids, everything centered,
italic accent words in headlines, numbered 01/02/03 section labels,
monospace labels, pill shaped buttons,
equalizer bars or spectrum analyzers, strobing on the beat,
invented numbers, invented UI.Fonts that read as AI
The HyperFrames typography guide flags Inter, Roboto, Open Sans, Lato, Nunito, Poppins, Outfit, Playfair Display and EB Garamond as generic choices that signal AI output. They render fine. If one of them is your real brand font, use it; otherwise pick a face with character on purpose and name it in the brief. Fonts bundled with HyperFrames that are not on the list include Montserrat, Oswald, League Gothic, Archivo Black, IBM Plex Mono and JetBrains Mono. For loading fonts and Vietnamese diacritics, see Fonts.
One focal action at a time
"Too busy" is the most cited failure, and two sources pull in opposite directions:
- The HyperFrames default house style pushes density: 2 to 5 decorative elements per scene, slow ambient motion on all of them, and "err toward more movement than feels safe".
- The director skill and the critics push restraint: "one focal action at a time while everything else holds still".
HyperFrames' own motion guide sides with restraint once you read past the house style: "Four movements with no job are worse than one motivated movement." So write restraint into the brief, or you get the house style.
Rules to copy, each from the sources above:
- One idea per shot. In launch films a shot lasts 1 to 2 seconds; explainers run slower, one element per beat.
- At most one camera move at a time, and the camera stays still while text is read.
- Two or three colors plus one accent.
- Exactly one calmer "breather" frame in the film.
- Reading time of about 0.3 seconds per word, counted from when the line has settled. "3 seconds on screen = must be readable in 2."
- Cut anything that does not earn its place, such as a connector line the frame can lose without losing meaning.
Do not over lock either. One creator locked every scene and scored each on ten dimensions, and the film still looked like "a slide deck" (aiworkflowprolk, single source). Lock the message, palette, type, banned list and beat map. Leave each scene's composition to the agent.
Duration, aspect ratio and the beat map
Length by video type
| Type | Length |
|---|---|
| Feature teaser | 8 to 15 seconds |
| Showreel | 12 to 20 seconds |
| UI morph film | 12 to 25 seconds |
| Launch film | 15 to 30 seconds |
| Explainer | 30 to 90 seconds |
| Loop | 4 to 14 seconds |
The HyperFrames narrative workflows are strongest at 30 to 90 seconds and top out around 3 minutes; longer films go to /general-video. For narration, plan about 2.5 words per second (15 seconds is about 37 words). HyperFrames' docs use about 130 words per minute for a verbatim script and suggest asking for "about 45 seconds" rather than a hard length.
Aspect ratio by destination
| Destination | Aspect ratio | Size |
|---|---|---|
| YouTube, website embed | 16:9 | 1920x1080 |
| X, LinkedIn, Instagram feed | 1:1 | 1080x1080 |
| Shorts, TikTok, Reels | 9:16 | 1080x1920 |
Use 30 fps. Use 60 fps only for fast UI motion, since it doubles render time. Each extra format is a new layout, not a crop; see Output.
Beat map arithmetic
One beat lasts 60 divided by the BPM. At 120 BPM a beat is 0.5 seconds and a 4/4 bar is 2 seconds. A 15 second film at 120 BPM is 7.5 bars, so make it 16 seconds (8 bars) or trim the end. Cut on bar starts for calm films and on every second beat for fast ones. Audio and sync explains how to measure the beats of a real track.
Two arcs that work:
- Launch: a hook that states the problem, three feature beats with a one line caption each, then an end card with logo and call to action. A creator's timed version: hook 0 to 2 s, problem 2 to 5 s, reveal 5 to 9 s, proof 9 to 13 s, close 13 to 16 s (rewind02).
- Explainer, by share of running time: question 0 to 10%, model 10 to 35%, proof 35 to 75%, turn 75 to 90%, payoff 90 to 100%.
For each scene, the director skill writes a short spec: time range and bars, what the scene adds, what the eye sees first, the motion (enter, key action, settle, exit), the words (8 or fewer a line), the sound cue, whether it is code or an AI shot, and what the viewer now knows.
Example briefs
All five are fictional products. Each pins the message, spec, real assets, beat timings, quoted copy and a named banned list, and stops for stills. Paths assume the files exist in assets/.
Product launch, 20 seconds, 16:9 plus 9:16
/product-launch-video
Message: "Ledgerly closes your books in one click."
Audience: founders of small online shops. Destination: website hero (16:9) and Reels (9:16, re-laid out, not cropped).
Spec: 20 s, 1920x1080, 30 fps. Music: assets/music/bed-118bpm.mp3 (licensed, 118 BPM). Cuts on downbeats, the reveal on bar 5.
Assets: assets/logo.svg, assets/screens/inbox.png, close.png, report.png (real UI, use as is, do not redraw), assets/fonts/Satoshi-*.woff2.
Reference: assets/refs/ref.mp4. Take its pacing and mask-reveal type. Leave its colours and content.
Palette: #0E1116 background, #F4F1EA text, #3BD18A accent only. Font: Satoshi 500/800.
Beats:
0-2 s: "Month end, again?" masks in word by word over the real inbox screen, slight push-in.
2-8 s: cursor clicks "Close month"; categories fill on the beat, one row per beat.
8-14 s: report.png slides in; the total counts up to the real demo value 4,182.50 and holds 1 s.
14-20 s: logo lockup, "Ledgerly. Close the month in one click." / "ledgerly.app". Last frame is the thumbnail.
Rules: one moving element at a time; the camera never moves while text is on screen; hold every line 0.3 s per word after it settles.
Banned: centred title on a gradient, everything fading in, glows, particles, lens flares, camera shake, bouncy easing, corner HUD labels, invented numbers.
Process: show the beat map and one still per beat first. Do not animate until I approve. Then a half-resolution animatic, then the full render.Narrated explainer, about 60 seconds
/faceless-explainer
Message: "A CDN is a copy of your site that lives next to your users."
Audience: non-technical small business owners. Destination: YouTube 16:9.
Spec: about 60 s (the voice sets the length), 1920x1080, 30 fps.
Arc: question 0-10% (a spinning loader in Hanoi while the server is in Virginia), model 10-35% (one origin, then copies appear one per beat), proof 35-75% (real latency numbers from assets/data/latency.csv), turn 75-90% (the origin goes offline, copies keep serving), payoff (the opening loader now loads instantly).
Voice: warm, unhurried female narration of SCRIPT.md, verbatim. Captions burned in, karaoke style, plus captions.srt.
Music: calm bed under -18 dB, carved under the voice.
Style: flat diagrams built live, two colours plus one accent, no pie charts, no gridlines, no legends.
Banned: stock globe with glowing lines, particles, numbers without a source line in the brief.
Process: plan in chat, sketches on storyboard.html, then build.UI teaser, 12 seconds, 9:16 (Remotion)
Use the Remotion skills. Make a 12 s 1080x1920 feature teaser for the "Split bill" feature in this repo.
Read src/features/split-bill and render the real components with the seeded demo data in fixtures/demo.json. Do not draw UI from memory.
Flow: entry (tap "Split"), then action (pick 3 friends, amounts redistribute on the beat), then result (three "Paid" toasts), then name card "Split bill. Fair in one tap."
One phone container that never cuts; the cursor drives every change; springs with almost no overshoot; captions above the bottom 15% safe zone.
Banned: fake app icons with red badges, dark gradient opener, glossy 3D phone spin.
Render 3 stills (first, tap, last) and wait for my note. Then change only what I ask.Data video, 30 seconds, 1:1 (no framework)
Make one index.html with window.renderAt(t) where every frame is a pure function of t (no timers, seeded randomness only). Render with Playwright and ffmpeg to out/sales-q3.mp4, 1080x1080, 30 fps, 30 s.
Data: assets/q3.csv only. Every number on screen must come from it.
Story: one bar chart that keeps the same space while only the values change; Q1 to Q4 bars grow on the beat; the record month gets the accent colour and a 0.4 s hold; end on "Q3: best quarter yet" / "+18% vs Q2" (from the CSV).
Type: IBM Plex Sans 600 for numbers, 400 for labels, labels at least 24 px.
Banned: 3D bars, pie charts, gridlines, legends, counters that overshoot their final value.
Before the full render, write a contact sheet of one frame per beat and list the 3 worst problems.Kinetic type loop, 15 seconds
/motion-graphics
Make a 15 s 1080x1350 kinetic-type loop for the line "Slow is smooth. Smooth is fast."
Look: Swiss poster, off-black #121212 and paper #EDE8DF, one red #E63B2E. Font: Archivo Black.
Motion: words enter by mask, never by fade; each word lands on a beat at 96 BPM; one word at a time moves; the camera is locked.
The last frame equals the first frame, so the loop has no visible jump.
Banned: blur-in, glow, particles, letter scramble, more than one moving element at once.
Audio: none (I will add it in the edit).Why these work: brief 1 follows the launch arc (hook, product in use, result, call to action), brief 2 the explainer arc, brief 3 the UI morph spec, brief 4 the data rules (one visual space, every number sourced) and brief 5 the loop rule (last frame equals first). Next, run them through the gates on Iterate.
Sources
- HyperFrames prompting docs: Anatomy of a one shot prompt, Rules and anti patterns, Specification dial, Recreating references, Motion, Storyboards, Product launch
- Prompting Opus 5.5, frontend design defaults
- HyperFrames skills installed with the plugin (house style, typography, narration); the cinematic-studio motion-video director skill (craft rules, briefs, banned defaults)
- Posts on X: rexan_wong, 2ssol, neil_xbt, rewind02, aiworkflowprolk, elie2222, antiAIvo