CtrlK
BlogDocsLog inGet started
Tessl Logo

render-imessage-cascade

Assemble an iMessage notification-cascade video ad (≈14s, 9:16) from a plate of a phone lying face-up (setting chosen by the user) + 3–5 messages — authentic Apple Messages banners composited in PIL (SF Pro text, green Messages icon, warm translucent-greige fill, soft shadow) spring in one-by-one at the BOTTOM and push the stack UP, a right-aligned Show-less/X pill rides above, the X clears the stack, then a serif end card resolves. FREE assembly (PIL + ffmpeg); the recipe supplies the per-brand plate, notifications, and end-card config and gates the paid plate-clean/music calls to their own capabilities. Use for the imessage-notification-cascade format.

63

Quality

79%

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-imessage-cascade/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 well-organized, knowledgeable body with genuine fail-fast validation checkpoints and load-bearing craft detail, held back by a complete absence of executable run commands — the agent must open the scripts to learn the CLI — plus some repetition of the signature mechanic across sections and one unsurfaced bundle file (layout.py).

Suggestions

Add runnable invocations to the Scripts section, e.g. `python scripts/build_assets.py --config config.json --work-dir work/` and `python scripts/compose.py --config config.json --work-dir work/ --out out.mp4`, so the build→compose pipeline is copy-paste executable from SKILL.md.

Make the step ordering explicit: a short numbered sequence (1. bind config from recipe choices → 2. run build_assets.py → 3. run compose.py → 4. `watch` QC the master, with the shorten-copy/reduce-count loop on validation failure) would convert the implied workflow into a checklisted one.

Surface `scripts/layout.py` in the Scripts list (it is the shared geometry/wrapping/timing contract both other scripts import), and consider splitting the dense 'Wrapped notifications and software endings' section into a one-level-deep reference file to slim the overview.

DimensionReasoningScore

Conciseness

The body is dense with craft specifics and explains nothing Claude already knows (no 'what is PIL', no library tutorials) — every section carries load-bearing detail like the geometry contract ("W=1080 H=1920, SIDE=135 → banner width BODY_W=810, BANNER_H=176, PAD=60, row pitch H=214, bottom anchor YB=1200"). The reason it is not a 5: the bottom-up push mechanic and the banner styling ("green Apple Messages icon, warm TRANSLUCENT greige... soft dark box-shadow") are each repeated across the intro, Scripts, and Craft rules sections, and the final "Wrapped notifications and software endings" section is padded prose with vague referents ("It holds at least 1.5 seconds") that could be tightened. These are minor over-explanations, matching level 4 rather than level 5's 'every token earns its place'.

4 / 5

Actionability

There is real concrete guidance — exact script names with their outputs ("scripts/build_assets.py — draws the assets from config: nb-1..N.png... pill.png... endcard.png"), exact font sizes ("title Semibold ~38, body Regular ~36, NOW/handle ~25"), the count rule ("3–5 notifications"), and a pointer to the config shape ("scripts/config.example.json"). But the body contains zero runnable commands: no `python scripts/build_assets.py --config ... --work-dir ...` or compose.py invocations, so the actual CLI usage is only discoverable by opening the scripts. Per the rubric's 'evaluate what is written' guideline this is concrete guidance with a key executable detail missing — the level-3 anchor — not level 4's 'concrete code or commands with minor gaps'.

3 / 5

Workflow Clarity

The pipeline sequence is legible (build_assets.py produces the PNGs from config; compose.py animates them: "Ken-Burns push-in on the plate → each banner springs in... → pill rides above → ✕-clear... → serif end card fades in → optional audio → encode h264 + aac") and validation checkpoints are genuinely present: fail-fast on oversized copy ("fail with a correction request. Shorten copy or reduce the notification count; never silently truncate"), a manifest gate ("Compose requires that manifest and rejects changed inputs until assets are rebuilt"), and a QC step ("Requires: watch (QC the final master)"). It falls short of level 5 because the build→compose ordering is implied rather than an explicit numbered sequence, and there is no explicit 'if validation fails, do X then re-run' loop for the QC step — level 4's 'clear sequence with most checkpoints; minor validation gaps'.

4 / 5

Progressive Disclosure

Scored against the actual bundle: scripts/ contains build_assets.py, compose.py, config.example.json, and layout.py, and the body's referenced paths ("scripts/build_assets.py", "scripts/compose.py", "scripts/config.example.json") all exist. Sections are well-organized and the SKILL.md stays an overview of ~80 lines. Two gaps keep it at level 4 rather than 5: layout.py — which both scripts import and which enforces the body's own geometry/wrapping/timing contract — is never named in the body's Scripts section, and the dense final section (resolution objects, b2b end-card requirements) reads as inline reference material that could live in a separate one-level-deep file.

4 / 5

Total

15

/

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 strong description: it comprehensively states what the skill does in concrete, third-person terms and scopes itself to a distinct named format with an explicit 'Use for' trigger. Its only weakness is that the trigger guidance leans on the internal format identifier rather than natural user-side phrases a person would say when they need this skill.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with full coverage of the pipeline: "Assemble an iMessage notification-cascade video ad (≈14s, 9:16)", "banners composited in PIL (SF Pro text, green Messages icon, warm translucent-greige fill, soft shadow) spring in one-by-one at the BOTTOM and push the stack UP", "the X clears the stack, then a serif end card resolves", "FREE assembly (PIL + ffmpeg)", "gates the paid plate-clean/music calls to their own capabilities". Every stage (compositing, animating, clearing, end card, cost gating) is named concretely with no vague filler — matching the level-5 anchor of comprehensive concrete actions, and clearly above level 4's 'minor gaps in coverage'.

5 / 5

Completeness

The 'what' is explicit and detailed (assemble ≈14s 9:16 ad with PIL-composited banners, bottom-up push, pill, X-clear, end card) and the 'when' is present via "Use for the imessage-notification-cascade format." — so both are answered and the level-3 cap for a missing trigger clause does not apply. But the when-clause names only the internal format identifier rather than concrete user-side trigger phrases (compare the level-5 example's "when the user mentions PDFs, forms, or document extraction"), which keeps it at level 4: both present, 'when' could be more explicit.

4 / 5

Trigger Term Quality

Good natural-keyword coverage: "iMessage", "notification-cascade", "video ad", "Apple Messages banners", "messages", "9:16". However, a few natural terms a user would say are missing — e.g. "iOS notifications", "text notifications", "notification stack", "vertical video ad" — and the trigger leans on the internal format name "imessage-notification-cascade". This fits the level-4 anchor (good coverage, a few natural terms missing) rather than level 5's comprehensive synonym/extension coverage.

4 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche — a single named video-ad format with a unique mechanic ("banners... spring in one-by-one at the BOTTOM and push the stack UP", "Show-less/X pill", "serif end card") and an explicit format-scoped trigger ("Use for the imessage-notification-cascade format"). No other plausible skill would trigger on these terms; minimal conflict risk, matching the level-5 anchor and above level 4's 'minor overlap risk with closely related skills'.

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.