CtrlK
BlogDocsLog inGet started
Tessl Logo

render-photo-grid-card

Render a 'photo-grid promo card' video from a config — a real-DOM card with a FIXED header/footer and a CONTINUOUSLY SCROLLING 2-row grid of MIXED tiles (video clips, product/lifestyle stills, big-serif %-OFF, dark promo-code or CTA) + feature chips, frame-stepped via Playwright with real-time <video> playback and encoded with FFmpeg — deterministic assembly, FREE (the clips + music come from create-video-fal + create-music-elevenlabs), text stays pixel-crisp. Use for the photo-grid-promo-card format.

56

Quality

65%

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-photo-grid-card/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The content is concise, actionable, and well-structured with implementation correctly pushed into bundled scripts, but it lacks explicit validation/verification steps in the render workflow, which caps workflow clarity at 3. A couple of inline links to the script files and a short config schema would round it out.

Suggestions

Add an explicit validation checkpoint in the Run workflow (e.g. 'Verify: build_card.py prints track/scroll_range, then confirm hyperframe.html opens at 1080x1920 before rendering').

Link the bundle scripts inline (e.g. 'See [scripts/build_card.py](scripts/build_card.py)') so navigation to the implementation is explicit.

Include a minimal config.json example or tile-type table inline so the actionability is copy-paste ready without reading build_card.py.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence (e.g. it explains the non-obvious Chromium H.264 limitation rather than generic concepts), with only minor over-explanation like restating 'FREE/deterministic' across multiple sections that could be tightened.

4 / 5

Actionability

It provides a concrete two-command run line ('build_card.py ... ; render.py ...') and references real executable scripts in ./scripts/, but config.json schema and a complete worked example are not shown inline, leaving minor gaps.

4 / 5

Workflow Clarity

The build -> render sequence is implied by the '## Run' commands, but there are no explicit validation checkpoints (e.g. verify the HTML loads, verify tile count) for this deterministic rendering workflow; for batch/render operations the guidelines cap workflow clarity at 3 without validation.

3 / 5

Progressive Disclosure

The SKILL.md is a well-organized overview with clear sections (Run, Contract) and the heavy implementation lives appropriately in the ./scripts/ bundle files (build_card.py, render.py, _shared.js); structure is good with only minor signaling gaps since the scripts are not linked inline.

4 / 5

Total

15

/

20

Passed

Description

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

The description is highly specific and distinct with concrete actions, but it over-relies on the format name as the sole trigger and lacks an explicit 'Use when...' clause, capping completeness at 3. It is also written in imperative/second-person-ish voice rather than clean third person, slightly weakening trigger phrasing.

Suggestions

Add an explicit 'Use when Claude needs to render a photo-grid promo card video...' trigger clause to lift completeness above 3.

Rewrite the description in clean third-person voice ('Renders a ... video ...') and drop the imperative/second-person phrasing to satisfy the voice guideline.

Broaden trigger-term coverage with synonyms (e.g. 'scrolling promo card', 'mixed-media grid ad', 'promo card video') instead of relying solely on the 'photo-grid-promo-card' format name.

DimensionReasoningScore

Specificity

Lists several specific concrete actions (frame-stepped via Playwright, real-time <video> playback, encoded with FFmpeg, edge-faded CSS mask, frame-swap for clips) with only minor gaps in coverage, fitting the 'lists several specific actions' anchor.

4 / 5

Completeness

The 'what' is described richly, but the 'when' is only weakly implied via the final 'Use for the photo-grid-promo-card format' clause rather than an explicit 'Use when...' trigger, which the guidelines cap at 3.

3 / 5

Trigger Term Quality

It surfaces the concrete format token 'photo-grid-promo-card' and the closing 'Use for the photo-grid-promo-card format', but the natural keyword set is narrow (no synonyms or file extensions), so coverage is only partial.

3 / 5

Distinctiveness Conflict Risk

The highly specific 'photo-grid promo card' niche with mixed scrolling tiles, promo codes and fixed header/footer gives it a clear distinct trigger set with minimal conflict risk against other skills.

5 / 5

Total

15

/

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.

Validation15 / 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.