Skip to content
cccskills
FreePublished on GitHub

render-value-prop

Create a short vertical value-proposition video from a configuration, pairing each product visual with a brief benefit claim. The result uses consistent pacing, hard cuts, and readable text, and can be delivered silently; music is handled separately.

OriginalShow the original description

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). Use for the value-prop format.

gooseworks-ai/goose-skills1,272 stars(GitHub 1,272 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Presenting product benefits in a short vertical video
  • Showing different product SKUs across claim beats
  • Creating a silent, readable social video
  • Previewing a configured video storyboard

Files included (24)

  • SKILL.md4.2 KB
  • scripts/build_storyboard_preview.py12.7 KB
  • scripts/build_text_overlays.py8.5 KB
  • scripts/config.example.json2.2 KB
  • scripts/render_hyperframe.py4.6 KB
  • scripts/render_master.py18.5 KB
  • shared/_shared.css4.8 KB
  • shared/_shared.js2.5 KB
  • shared/animations/registry.yml4.4 KB
  • shared/animations/sachet-entrance/cascade-from-top.js980 B
  • shared/animations/sachet-entrance/fade-stagger.js1015 B
  • shared/animations/sachet-entrance/slide-in-lateral.js1.2 KB
  • shared/animations/sachet-entrance/springScale-pop.js883 B
  • shared/animations/sachet-entrance/tilt-fan.js1.1 KB
  • shared/animations/text-entrance/fade-stagger.js1.3 KB
  • shared/animations/text-entrance/mask-reveal.js1.1 KB
  • shared/animations/text-entrance/type-on.js1.3 KB
  • shared/animations/text-entrance/word-by-word.js1.9 KB
  • shared/beat-templates/endcard-wordmark.html2.1 KB
  • shared/beat-templates/hook-sticker.html2.6 KB
  • shared/beat-templates/prop-hero.html2.8 KB
  • shared/beat-templates/prop-row.html3.1 KB
  • skill.meta.json212 B
  • tests/smoke-test.md488 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

render-value-prop

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 free.

Run

render_master.py --config config.json --project <dir> -> <dir>/finals/master-clean.mp4 (silent), 1080x1920, deterministic, no paid calls. 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.

Choices

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.

Contract

  • Deterministic + FREE (Playwright frame-step + FFmpeg); no paid calls, no AI-rendered text.
  • Claims are noun phrases, <=4 words; never <3, never >5. Optional benefit sentence <=12 words.
  • One product visual per beat; rotate which SKU is the hero. Never reuse a flat variety-pack image as every canvas.
  • Sound-off legibility is the bar: the headline uses the config 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.
  • Product widths auto-scale from each image's aspect ratio (target display height), so tall sachet cutouts and wide product packshots both frame correctly.
  • Assets are packshots, not always transparent cutouts: set palette.bg to the product image's background color for seamless compositing (free — avoids a paid background-removal step).
  • Uniform pacing (hook ~3.0s, props 2.0-2.5s each, endcard ~2.0s); total lands in the 10-20s window (~17s). No acceleration curve.
  • No human face is the focus. End card uses the brand wordmark image when a hi-res one (aspect >= ~1.2, i.e. a real >=1200x600 wordmark) is provided via config.logo; otherwise it falls back to a typographic brand_name wordmark (many brands ship only a favicon).
  • Music is added separately by create-music-elevenlabs (quiet instrumental bed at -14 dB), or ship silent.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

<slug>

FreeSummary

The supplied material contains only placeholder text for the skill’s purpose, inputs, steps, and completion criteria. It does not provide enough information to describe a task or result reliably.

  • No use case can be identified from the supplied material
  • Purpose is unspecified
  • Inputs and expected results are unspecified
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

ad-angle-miner

FreeSummary

Research supported advertising angles using buyer context, current product facts, customer language, and observed ads. Turn the evidence into static ad, video, or copy ideas, matching video concepts to available recipes. Scores rank ideas for testing; they do not predict results.

  • Finding evidence-backed angles for a product campaign
  • Developing static ad or video concepts from customer research
  • Writing headline and primary-text options for ads
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Analyze campaign data from Google, Meta, and LinkedIn to find strong and wasteful spend. The skill checks funnel performance and test results, then recommends which campaigns to pause, scale, or test and how to shift budget across channels.

  • Finding campaigns and ads that waste budget
  • Comparing performance across Google, Meta, and LinkedIn
  • Planning specific budget shifts and follow-up tests
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Compare ad spend and signups with downstream outcomes to calculate the cost of each qualified lead. The skill checks tracking coverage, accounts for how long leads need to mature, and groups creatives into actionable categories with confidence notes.

  • Compare true qualified-lead costs across creatives
  • Find low-CPA ads that bring poor-quality leads
  • Check whether signups can be linked to downstream outcomes
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Prepare the intake for a Meta ad campaign by reviewing available brand information first, stating reasonable assumptions, and asking only questions whose answers could affect budget, claims, or legal exposure. It records stable brand facts, a campaign brief, and what was asked versus assumed.

  • Prepare a Meta ad campaign when brand facts are missing
  • Clarify budget and timing before campaign planning
  • Record approved claims and audience restrictions
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

ad-policy-check

FreeSummary

Review ad copy, image text, visuals, and people against platform and brand category rules. It suggests honest fixes and needed disclosures, then flags issues requiring human or legal review, with a separate result for each ad and platform.

  • Checking ad copy and visuals before launch
  • Reviewing creator ads for required disclosures
  • Fixing a platform disapproval and recording the issue
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

See all skills by gooseworks-ai

Report a problem with this skill