Install any skill in seconds. Free to start, no credit card required.
Get Started Free →varnan-tech/vid-sizzle-reel
Generates a high-energy sizzle reel or hype video (MP4) from brand assets and key messages. Fast-paced montage format with dynamic cuts, bold text overlays, and optional music. 4-section structure: Cold Open, Build, Peak, Land. 4 tone presets. Beat-sync cuts when music is provided. Built on HyperFrames (GSAP + headless Chromium + FFmpeg).
Passed 17 of 22 test cases with the skill, and 4 of 22 without it.
and 13 more in the full report
13 fixed4 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
When tone is set to cinematic and cut_style is set to auto, what is the default per-message scene display duration?
| Checked | Without skill | With skill |
|---|---|---|
| The derived per-message cut duration defaults to approximately 4.0 seconds. | Missed | Passed |
The instructions your model reads when the skill loads.
Generates a high-energy sizzle reel or hype video from brand assets and key messages. Pipeline: HyperFrames HTML composition (GSAP timelines) → headless Chromium → FFmpeg H.264 MP4. No Runway. No Pika. No AI video APIs. Zero runtime cost beyond Node.js + FFmpeg.
Differentiation from vid-product-launch:
vid-product-launch tells a narrative story — one earned reveal, five sections, tension arcvid-sizzle-reel creates energy and excitement — fast cuts, music-first, no single story beatWrite the key messages yourself — or ask the user to write them. These are the exact phrases that appear on screen. "AI will figure it out" produces filler. 3-5 sharp lines is the entire content of a sizzle reel.
Brand name appears ONLY in the Land section. Cold Open and Build create tension without naming the brand. The Land section is the payoff.
Declare the rhythm pattern in a comment at the top of the script before writing any HTML. Format: // RHYTHM: flash-sequence | Cold[0-5s]: stat | Build[5-40s]: msg(1.5s)|flash|... | Peak[40-55s]: ... | Land[55-60s]: logo+CTA. Every timing decision checks against this.
Build end-state layout in CSS first — no GSAP yet. Position every element at its most-visible moment in static CSS. Then add GSAP entrances with gsap.from() and exits with gsap.to(). Never position at animated start state.
class="clip" on every timed element. Required by HyperFrames. Without it, the element is invisible to the player.
data-start, data-duration, data-track-index on every clip. No exceptions. Same-track clips cannot overlap — use different track indices.
No Math.random(). HyperFrames requires deterministic compositions. Use seeded PRNG (mulberry32) for any pseudo-random values.
All GSAP timelines start { paused: true } and register to window.__timelines["comp-id"]. The HyperFrames player controls playback — never call tl.play().
Never position: absolute on .scene-content containers. Use width:100%; height:100%; padding:Npx; display:flex. Reserve position:absolute for decorative elements only.
Music: separate <audio> element with data-track-index. Video must be muted playsinline. Never put audio in a <video> element.
Read references/cut-patterns.md AND references/tone-presets.md before generating any HTML.
Never dump HTML in chat. Save to file. Show summary only.
test cases passed, vs 4 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.