CtrlK
BlogDocsLog inGet started
Tessl Logo

render-vignette

Assemble a short-form 'vignette' ad from clean product cutouts composited over a kinetic background video — birefnet cutout, then a cold-open text card + product carousel + annotated specimen-sheet end card, plus loudnorm + separate-pass music mux. FREE assembly (PIL + rsvg + FFmpeg); the recipe supplies the config and gates the paid BG/cutout/music calls to their own capabilities. Use for the vignette format.

62

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/ads/capabilities/render-vignette/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

72%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.

A lean, expert-directed body with exact technical parameters, a clean four-step pipeline, and an appropriately compact single-file structure backed by a real script bundle. The main gap is validation: a batch composite/mux pipeline lacks any output-verification or feedback-loop step, and invocation syntax is never shown end-to-end.

Suggestions

Add an explicit verification checkpoint after compositing and after muxing (e.g. probe each variant with ffprobe to confirm video duration and audio bitrate > 1 kbps, and re-run the separate mux pass if not) to close the batch-operation validation gap.

Include one complete example invocation for the pipeline (e.g. 'python3 scripts/strip_product_backgrounds.py --config config.json' with the expected output paths) so the Run section is copy-paste executable.

Consolidate the FREE/paid routing notes — stated in Run steps 1 and 4, the Contract, and the Gaps section — into the single Gaps section to remove repetition and tighten the body further.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence throughout — zero concept explanations, every line carries pipeline facts (e.g. 'BG (palette-aware dim) → cold-open overlay → cutouts (width-anchored, vertically centered y=(H-h)/2) → end card. h264 crf20 yuv420p +faststart 30fps'). Not 5 because the FREE/paid routing notes repeat across the Run steps, the Contract, and the Gaps section, which could be consolidated.

4 / 5

Actionability

Concrete and near-executable: named scripts verified to exist in scripts/, exact parameters ('saturation=0.50', 'crf20 yuv420p +faststart 30fps', '-map 0:v:0 -map 1:a:0'), a full config lookup order ('--config <path>, $VIGNETTE_CONFIG, <project>/config.json or scripts/config.json'), and defined error behavior ('exits naming any missing required field'). Not 5 because no complete copy-paste invocation example is given (e.g. 'python3 scripts/composite_variants.py --config config.json').

4 / 5

Workflow Clarity

The four-step Run sequence is clearly ordered with concrete per-step outputs, and config validation exists ('exits naming any missing required field — there are no built-in demo values'). However, this is a batch pipeline (one composite per BG variant, cutouts per SKU) with no output verification or fix-and-retry loop after compositing or muxing — the body even documents a silent failure mode ('single-pass composite+mux silently ships 1 kbps garbage audio') without adding a check for it, so the batch-operation cap applies.

3 / 5

Progressive Disclosure

The body is ~35 lines, tightly organized into Run / Choices / Contract / Gaps sections, and the four bundled scripts are each referenced one level deep by exact filename and all verified present in scripts/. No separate reference files are needed at this size, which matches the well-organized-sections criterion for compact skills.

5 / 5

Total

16

/

20

Passed

Description

76%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 highly specific, comprehensive description of the vignette-assembly pipeline with a clear niche and an explicit (if terse) trigger clause. Its weakness is trigger-term coverage: users describing this need in ordinary language ('make a short product ad video') would likely not match the jargon-heavy phrasing.

Suggestions

Broaden the trigger clause to natural phrasings users would actually say, e.g. 'Use when the user asks for a short-form product ad, promo/vignette video, or product-on-background-video composite.'

Add one or two plain-language synonyms ('short-form product video', 'commercial-style ad') alongside the jargon terms so the description matches non-expert requests.

Trim internal-routing detail ('the recipe supplies the config and gates the paid BG/cutout/music calls') from the description — it describes orchestration, not user-facing capability, and adds tokens without aiding triggering.

DimensionReasoningScore

Specificity

The description lists multiple concrete, end-to-end actions — 'birefnet cutout', 'cold-open text card + product carousel + annotated specimen-sheet end card', 'loudnorm + separate-pass music mux', and tooling 'PIL + rsvg + FFmpeg' — with comprehensive coverage of the assembly pipeline. Not 4 because there are no meaningful gaps in the action coverage.

5 / 5

Completeness

Both are answered: the 'what' is a detailed assembly pipeline, and an explicit trigger exists ('Use for the vignette format'). Not 5 because the 'when' clause is a single terse phrase with no concrete trigger context (e.g., 'when the user asks for a short-form product ad or vignette'), and not 3 because an explicit 'Use when...' equivalent is present.

4 / 5

Trigger Term Quality

Some relevant natural terms are present ('vignette ad', 'product cutouts', 'background video', 'Use for the vignette format') but coverage stops there — common variations users would actually say ('short-form video', 'product ad', 'commercial', 'promo video') are missing, and jargon like 'specimen-sheet' and 'loudnorm' dominates. Not 4 because the natural-phrase coverage is thin relative to the technical jargon.

3 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche — assembling a specific 'vignette' short-form ad format from cutouts over a kinetic BG video — that would not plausibly fire for adjacent skills (generic image editing, music generation, video cutting). Conflict risk is minimal.

5 / 5

Total

17

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

14

/

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.