CtrlK
BlogDocsLog inGet started
Tessl Logo

render-offer-ad

Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy slots, a real product photo, a brand palette, fonts, bpm, and beat split. DETERMINISTIC + FREE (a bundled Remotion project; springs + interpolate, no AI-gen for visuals). Backgrounds are engine gradient divs off the palette, props are inline SVG, the ONLY composited bitmap is the REAL product photo (objectFit:contain, never stretched), and ALL headline/claim/CTA/URL/wordmark text is typeset in the engine — never AI-rendered (the format's credibility guard). A driver binds the config to Remotion input props, renders the 9:16 master, and derives a 1:1 center-crop with ffmpeg. Two gating checks run before render (claim verbs must match the product's physical format; the claim beat needs an edge-entry mechanism prop). Use for the motion-graphics-offer-ad format.

66

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

77%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

Strong operational content: the run commands, mapping table, gating checks, and QC checklist make the skill fully executable with excellent validation feedback loops. Weaknesses are noticeable repetition of the credibility-guard rules throughout, and a bundle mismatch — the referenced project/ Remotion tree is absent while the skill claims it is bundled.

Suggestions

State each craft rule once (in 'Craft rules') and remove the duplicate 'never AI-rendered / never stretched / gradient divs' passages from the intro and beat descriptions.

Fix the bundle mismatch: either ship the referenced project/ tree or clearly mark where it comes from, since props.ts, anim.ts, and the scenes are cited as load-bearing paths that don't exist in the bundle.

Move the config→props mapping table to a reference file (e.g. references/props-mapping.md) and link to it, keeping SKILL.md as a lean overview.

DimensionReasoningScore

Conciseness

Mostly efficient — the beat spine, mapping table, and craft rules are load-bearing — but there is noticeable redundancy: 'the ONLY composited bitmap is the REAL product photo (objectFit:contain, never stretched)' and 'never AI-rendered text' each appear verbatim in the intro, the beats section, AND the Craft rules; 'never stretched' appears four times. The 'Choices' section also restates that decisions come from the recipe twice. Fits the 3 anchor ('could be tightened') better than 4, where redundancy would be only minor.

3 / 5

Actionability

Fully executable: the Run section gives copy-paste commands ('cd project && npm install', 'python3 scripts/render.py --config path/to/config.json --work-dir <work> --out <work>/master') with expected outputs named, the config→props mapping table tells exactly which key binds to which prop and scene, and a worked example config (scripts/config.example.json) is shipped. Gating checks state precise pass/fail vocabulary. Matches the 5 anchor; not 4 because no key execution detail is missing.

5 / 5

Workflow Clarity

Clear sequence with explicit validation checkpoints and feedback loops: two gating checks run pre-render and 'render.py rejects' on failure (validate→fix→retry), install is auto-run when node_modules is absent, and a post-render 'watch' QC checklist ('re-confirm both gating checks visually') closes the loop. This exceeds the 4 anchor, which allows minor validation gaps — none are present.

5 / 5

Progressive Disclosure

The body is well-sectioned and points to real bundle files (scripts/render.py, scripts/config.example.json — both verified present), but it repeatedly references a bundled 'project/' tree ('project/src/props.ts', 'project/src/lib/anim.ts', 'project/src/scenes/Scene01–04.tsx', 'project/package.json') that does not exist in the bundle, so those references are broken. Additionally, the 15-row config→props mapping table is inline reference material that belongs in a separate reference file. Fits the 3 anchor ('content that should be separate is inline'; references not all resolving) better than 4, where references would be mostly clear.

3 / 5

Total

16

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A dense, highly specific description that fully answers 'what' and includes an explicit 'Use when' clause. Main weakness: the trigger leans on the internal format name rather than natural user phrasing, and common synonyms for the ad-video domain are absent.

Suggestions

Replace or supplement 'Use for the motion-graphics-offer-ad format' with natural trigger phrases a user would actually say, e.g. 'Use when the user asks for a short vertical product/offer ad video, a 9:16 social ad, or a kinetic-typography promo'.

Add common synonyms such as 'ad video', 'product ad', 'social ad', or 'short-form video' to broaden trigger coverage.

Trim the mid-description implementation detail (gradient divs, inline SVG, objectFit:contain) which duplicates the body's craft rules and pads the description without aiding skill selection.

DimensionReasoningScore

Specificity

Multiple concrete actions are explicitly stated: 'A driver binds the config to Remotion input props, renders the 9:16 master, and derives a 1:1 center-crop with ffmpeg' plus 'Two gating checks run before render' with the exact conditions spelled out. Coverage of the skill's actions is comprehensive; not the 4 anchor only because no meaningful action is left out.

5 / 5

Completeness

Both 'what' (render the 4-beat offer ad, bind config, render 9:16 master, derive 1:1 crop, run gating checks) and 'when' ('Use for the motion-graphics-offer-ad format') are present. Not 5 because the 'when' clause names an internal format identifier rather than concrete natural trigger phrases; not 3 because the trigger is explicit, not merely implied.

4 / 5

Trigger Term Quality

Good keyword coverage: 'vertical (9:16)', 'music-only direct-response OFFER ad', 'kinetic-typography', 'Remotion', 'CTA'. However natural user synonyms like 'ad video', 'product ad', 'social/short-form video', or 'reel' are missing, and the sole trigger phrase 'Use for the motion-graphics-offer-ad format' is internal recipe jargon a user would not naturally say — closer to the 4 anchor ('a few natural terms missing') than 3, since the domain terms present are largely ones a user would say.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers — 'music-only direct-response OFFER ad', 'kinetic-typography film', 'motion-graphics-offer-ad format', Remotion-specific — that no generic video or image skill would claim. Minimal conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
gooseworks-ai/goose-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.