Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates click-optimized YouTube packaging — 3 thumbnail bets under one fixed title, engineered for YouTube's built-in A/B/C thumbnail test, plus a value-forward description, then renders the thumbnails as real images. Use this whenever you want to package a long-form video or turn a video idea into titles and thumbnails. Triggers include how would you package this, title ideas for, thumbnail concept, package this video, A/B variations, and make this clickable. Calibrates to your channel's own
.claude/skills/hassancs91-youtube-packaging/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 143% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 220% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 218% | 0% |
Turns a video idea into one locked title + 3 distinct thumbnail bets built for YouTube's native A/B/C thumbnail test, plus one value-forward description — then renders the three thumbnails as real images with Nano Banana Pro.
The whole skill optimizes for one number: CTR (click-through rate). It's the metric YouTube Studio reports per thumbnail, and the only one that isolates packaging from topic and algorithm.
The rules below are not generic YouTube advice — they were derived from Studio CTR data across 20 long-form videos on a real ~1M-subscriber beginner/AI channel, read in CTR order. That dataset isn't shipped (it's another channel's numbers, and its absolutes wouldn't transfer). The patterns do transfer, and they're a much better prior than guessing.
But an inherited rule is a bet, not a fact — about YOUR audience. So:
are uncalibrated defaults — your own CTR data will beat them." Then tell the creator to start logging CTR from video 1.
references/channel-calibration.md first,then follow that file's numbers wherever it disagrees with this one. Their data wins over anything written here.
Ask which mode you're in if it isn't obvious. Never quote a target CTR the creator hasn't measured.
Views = Reach × CTR. Two different levers, driven by two different things.
discovery waves — a tool everyone's searching, a real news moment, a broad money/free promise. Packaging cannot fix a low-ceiling topic.
thumbnail hook. This is the only lever this skill controls.
Good packaging on a narrow topic produces good CTR and low views. That is correct behavior, not a packaging failure. Never blame a title when CTR is healthy and views are small — and never expect a title to rescue a topic nobody wants.
The one guardrail that stops this becoming hollow clickbait: the promise must be one the video actually keeps. Overpromise → the viewer bounces in 30 seconds → retention craters → YouTube chokes the exact reach you were chasing. The widest promise that also holds is what makes YouTube widen distribution. Reality beats expectations.
Run it in order. Stages 1–2 are fast; the value is getting the promise right before generating, because a wrong promise wastes all three bets.
Ask in one message:
promise. If you can't say it in a sentence, the packaging will be vague — push to name it.
much jargon a title can carry. (A wide/beginner channel should package for the widest clickable promise and do its segmentation inside the video, never by narrowing the title.)
Needed for the description. "Nothing" is a valid answer.
start. If calibrated and references/channel-calibration.md is still empty, offer to run it first.
Gate 1 — Topic ceiling. Classify honestly:
major tool everyone knows).
If narrow, say so plainly and reset the view expectation before generating: packaging will still maximize CTR, but views are capped by demand. Then decide whether the topic is worth making for conversion even if reach is low. That's a real strategy, but it should be a choice.
Gate 2 — The promise. Draft the core promise as the clearest concrete takeaway, stated plainly — NOT a withheld-drama curiosity gap.
is the headline; the mechanism is only how the lesson surfaces. Never lead with the mechanism.
CHECKPOINT: State the ceiling classification and the one-line promise. Confirm or fix the promise before generating. Do not skip — three bets off a wrong promise is wasted work.
Structure this correctly, it's the thing people get wrong: YouTube's Test & Compare is thumbnail-only. The title is FIXED across all three variants. So the deliverable is ONE primary title × 3 thumbnail bets, not 3 independent title+thumbnail pairs.
First, lock ONE title. It must pass most of the Title Checklist below. Output with it:
Carry it into the script.
Then 3 thumbnail bets under that fixed title. Each pulls a different lever, so YouTube compares real alternatives rather than three flavors of one idea. For each:
dominant hook (word or number), color pop, any object.
thumbnail promising a beat the video doesn't have must be pulled or the beat must be built.
Lever menu — pick 3 different ones:
thing the viewer wants ("the one skill")
good as one of three, rarely all three.
Then close Stage 3 with:
videos/<project>/packaging/description.txt:learn (the real number, the free tool, the exact capability). The title sells the takeaway; these two lines make it specific and undeniable.
free resources, newsletter). If something is free, say so plainly.
0:00, keyword-rich labels. Derive from the editplan / final cut; re-confirm if the cut length changed.
why it's worth it.
say plainly that there's no baseline yet and this is the first data point. You may predict which bet lands highest and why — but the test decides. Never crown a winner; the deliverable is 3 worth shipping.
Iterate — tighten the title, swap a lever, adjust a hook. All 3 run live in the A/B/C test, so the goal is 3 you're willing to ship, not one.
Turn the 3 locked concepts into actual images. The dedicated /thumbnail skill is the interactive render engine for this stage — it interviews for style elements (environment, text budget, extras) with the creator's calibrated defaults (minimal text) and owns the verify/iterate loop; use it whenever the creator is in the loop. Mechanics, prompt template, and model details live in references/thumbnail-generation.md — load it before generating. The flow:
Nano Banana Pro renders the hook word itself (deliberate), so state the exact word, spell it letter-by-letter, and forbid all other text.
videos/<project>/packaging/thumbs/A|B|C.png with tools/gen_thumbnail.py,passing the media/library/faces/ kit as reference so the face stays consistent. (You supply that kit — see its README. No face kit, no face renders.)
spelled right + legible, face reads as the creator, one dominant hook, bright/saturated/positive, sane hands, 16:9 <2MB). Regenerate any that fail; only surface passes. This catches the one real risk of model-rendered text: a garbled word.
--seed to keepcomposition steady. Keep each prompt in thumbs/A.txt so refinements are diffs.
--jpg, ≤2MB) plus prompts/seeds, so any winner isre-renderable later.
Remember the loud-vs-calm rule: the thumbnail is intentionally louder than the calm in-video brand (brand.md) — never tone it down to match. See the reference doc.
A strong title passes most of these. Use as a generator and a filter.
tool's capability instead of the viewer's outcome is a reliable floor.
coding," "without skill]," "(No BS)."
against your own data; it's one of the most channel-dependent rules here.)
Ranked by signal strength. Re-rank against your own data once calibrated.
element. This is the top-tier device. The multi-logo "kill the competitors" graveyard splits attention and reliably lands only mid-tier — even when the enemy-kill works in the title, render the thumbnail as one clean hook.
number in a busy frame on a narrow topic still sinks.
looking at camera, large in frame. Facepalms and flat smiles are the floor.
frames underperform.
something that looks expensive, or vice versa).
Title and thumbnail are two halves of one message.
are a different packaging game.
pairs" — the test can't measure that.
named, valuable thing ("the one skill you need"), never pure mystery.
they kill reach, because an unknown name rides no discovery wave, so YouTube serves it less. Known brands help and are fine. Own products belong in the thumbnail and the video, never the title.
references/channel-calibration.md has real numbersthat contradict a rule here, the rule is wrong for that channel. Update it.
references/channel-calibration.md — how to pull your own CTR from Studio (it is not in theAPI), build the dataset, derive your baseline and your real levers, and reconcile them back into this file. Run it once you have ~10+ long-form videos.
references/thumbnail-generation.md — Stage 5 render engine: the Nano Banana Pro model/tool(tools/gen_thumbnail.py), the media/library/faces/ reference kit, the prompt template, the per-render verify loop, the loud-vs-calm brand rule, and failure-mode fixes. Load before rendering.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 23,772 | 23,136 | -3% | 1 | 1 | 0% | 3,111 | 4,409 | +42% | 0 | 0 | — |
case-02 | fail→fail | 36,745 | 26,063 | -29% | 1 | 1 | 0% | 3,230 | 7,642 | +137% | 0 | 0 | — |
case-03 | fail→fail | 19,547 | 22,175 | +13% | 1 | 1 | 0% | 3,018 | 4,950 | +64% | 0 | 0 | — |
case-04 | fail→pass | 15,102 | 4,591 | -70% | 1 | 1 | 0% | 2,344 | 4,184 | +78% | 0 | 0 | — |
case-05 | fail→pass | 15,377 | 12,499 | -19% | 1 | 1 | 0% | 2,216 | 5,377 | +143% | 0 | 0 | — |
case-06 | fail→fail | 45,345 | 12,901 | -72% | 1 | 1 | 0% | 4,055 | 5,452 | +34% | 0 | 0 | — |
case-07 | fail→pass | 10,685 | 9,897 | -7% | 1 | 1 | 0% | 1,561 | 4,988 | +220% | 0 | 0 | — |
case-08 | fail→fail | 14,464 | 9,860 | -32% | 1 | 1 | 0% | 2,020 | 4,941 | +145% | 0 | 0 | — |
case-09 | fail→pass | 20,279 | 11,125 | -45% | 1 | 1 | 0% | 1,879 | 4,979 | +165% | 0 | 0 | — |
case-10 | pass→pass | 17,144 | 11,268 | -34% | 1 | 1 | 0% | 2,656 | 5,152 | +94% | 0 | 0 | — |
case-11 | fail→pass | 12,042 | 13,675 | +14% | 1 | 1 | 0% | 1,614 | 5,138 | +218% | 0 | 0 | — |
case-12 | fail→pass | 12,313 | 9,771 | -21% | 1 | 1 | 0% | 1,828 | 4,977 | +172% | 0 | 0 | — |
case-13 | fail→fail | 16,751 | 15,214 | -9% | 1 | 1 | 0% | 2,245 | 5,404 | +141% | 0 | 0 | — |
case-14 | fail→fail | 7,834 | 13,273 | +69% | 1 | 1 | 0% | 1,261 | 4,786 | +280% | 0 | 0 | — |
case-15 | pass→pass | 12,116 | 10,233 | -16% | 1 | 1 | 0% | 1,843 | 5,152 | +180% | 0 | 0 | — |
case-16 | pass→pass | 12,078 | 7,606 | -37% | 1 | 1 | 0% | 1,557 | 4,545 | +192% | 0 | 0 | — |
case-17 | fail→pass | 16,888 | 13,180 | -22% | 1 | 1 | 0% | 2,297 | 5,697 | +148% | 0 | 0 | — |
case-18 | fail→fail | 13,970 | 76,008 | +444% | 1 | 1 | 0% | 2,160 | 6,335 | +193% | 0 | 0 | — |
case-19 | fail→fail | 9,899 | 3,022 | -69% | 1 | 1 | 0% | 1,361 | 3,904 | +187% | 0 | 0 | — |
case-20 | fail→pass | 18,359 | 2,837 | -85% | 1 | 1 | 0% | 1,556 | 3,943 | +153% | 0 | 0 | — |
case-21 | pass→pass | 14,230 | 8,317 | -42% | 1 | 1 | 0% | 1,937 | 4,586 | +137% | 0 | 0 | — |
case-22 | fail→fail | 12,673 | 19,474 | +54% | 1 | 1 | 0% | 1,729 | 5,224 | +202% | 0 | 0 | — |
case-23 | pass→fail | 26,108 | 11,439 | -56% | 1 | 1 | 0% | 2,187 | 4,996 | +128% | 0 | 0 | — |
case-24 | fail→pass | 9,648 | 11,645 | +21% | 1 | 1 | 0% | 1,467 | 5,013 | +242% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 22 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +33 percentage points is the difference between those two pass rates over the 22 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.