Install any skill in seconds. Free to start, no credit card required.
Get Started Free →gooseworks-ai/render-value-prop
Render a designed 'value prop' video from a config — 3-5 noun-phrase benefit claims (<=4 words each) revealed sequentially over per-SKU product visuals, one crisp editorial frame per claim (hook sticker -> N claim beats -> brand end card). Deterministic PIL/HTML beat renderer frame-stepped via Playwright and encoded with FFmpeg, sound-off legible, hard cuts, uniform pacing. FREE (no paid calls); music is added separately (create-music-elevenlabs).
Passed 19 of 21 test cases with the skill, and 4 of 21 without it.
and 23 more in the full report
16 fixed4 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 16 test cases the skill fixed. Same model, same prompt, with and without the skill.
Our default system Python doesn't have Playwright installed, but our virtual environment at `/opt/envs/playwright-env/bin/python` does. Which environment variable should we set so render_master.py uses the correct interpreter?
| Checked | Without skill | With skill |
|---|---|---|
| Specifies setting the RENDER_PYTHON environment variable. | Missed | Passed |
The instructions your model reads when the skill loads.
Render a designed 'value prop' video from a config: a hook sticker, then one beat per short noun-phrase benefit claim (<=4 words each — "Drug-Free", "Zero Sugar", "NSF Certified"), each pairing the claim headline with a per-SKU product visual (the hero SKU rotates beat to beat so the eye anchor shifts), then a brand-wordmark end card. Text + product carry the spot — no narration, no talking head — and it is built to be legible sound-off. Every beat is a pure function of beat-local time t (deterministic PIL start frames + Playwright hyperframes + FFmpeg); no CSS keyframes, no setTimeout. FREE (no paid calls); music is a separate capability (create-music-elevenlabs), or ship silent for $0.
render_master.py --config config.json --project <dir> -> <dir>/finals/master-clean.mp4 (silent),
1080x1920, deterministic, $0. The renderer is fully config-driven — palette, copy, SKUs,
pacing, hook, logo and end card all come from config.json (schema = ad_sample.recipe.config;
see config.example.json). Nothing is hardcoded to one brand. build_storyboard_preview.py is an
optional free preview gallery for the gate; build_text_overlays.py is optional (transparent
text-zone PNGs for compositing claims over a motion clip). Both preview scripts take their ink,
background, brand name and logo from shot-list.yml project: or the project's config.json
(neutral fallbacks otherwise). shared/beat-templates/ are reference layouts with placeholder copy;
the renderer does not read them.
The value-prop recipe asks these of the user; this capability renders whatever the config says.
music — the bed under the claims, or silent (sets music_brief, consumed by
create-music-elevenlabs, not this renderer). Asked of the user; the demo used calm ambient
sleep music.background — what the claims sit on (sets palette.bg). Asked of the user; the demo used
white with a navy headline. palette.ink comes from the brand kit.Environment: run with a Python that has Playwright (override the frame-render interpreter with
RENDER_PYTHON); ffmpeg is auto-discovered (FFMPEG env > PATH > common prefixes). The frame
renderer render_hyperframe.py is bundled in scripts/ — no external atom to fetch.
palette.ink color on palette.bg;
the per-beat accent color (from value_props[].accent — a SKU-accent slug or a hex) is the
accent rule, not the headline.palette.bg to the product image's
background color for seamless compositing (free — avoids a paid background-removal step).test cases passed, vs 4 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.