scenario-formats — Claude Code skill for Scenario format adaptation
A decision ladder for shipping one approved master at many sizes and ratios through Scenario. Use it when one visual has to feed stories, feeds, banners and previews.
npx skills add scenario-labs/skills --skill scenario-formats -a claude-codeWhat scenario-formats does
The skill starts from one rule: format adaptation is derivation, not regeneration. Re-prompting a concept per placement gives you five cousins, not five formats of one master. So an approved text-free master comes first, and every derivative is built from that master alone.
Inside is a decision ladder. Same ratio, different pixels — a plain resize. Tighter frame with expendable edges — fit: "cover". More canvas — expand or uncrop. Another ratio, recomposed around the subject — generative reframe. A far ratio like 16:9 to 9:16 — native recomposition through scenario-image with the master as reference.
The order of operations is strict: reframe and expand before grading and grain, because generative canvas work re-renders the image. Then verification by measurement — reframe ratio enums are approximate, a 4:5 request can return 29:36, so output dimensions get checked and landed exactly with a resize. Lettering goes last, per format, through scenario-text-overlay.
The skill leans on siblings: scenario-image-editing holds the canvas tool contracts, scenario-video-editing does the same for video, scenario-consistency keeps the master's look. If one is missing, the skill asks the user to install it with npx skills add.
What it helps with
- spread one master across 1:1, 4:5, 9:16 and 16:9
- pick between crop, resize, expand and generative reframe
- keep the subject alive when cropping to vertical
- check that subjects survived recomposition
- place lettering inside each placement's safe zone
Example prompts for the agent
- adapt this master to 1:1 for feed and 9:16 for stories
- check dimensions of all derivatives and land exact pixels
- recompose this 16:9 key art to vertical, keep the knight centered and both banners visible
How to install scenario-formats
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-formats -a claude-code2Manually: put the files in place
~/.claude/skills/scenario-formats/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scenario-formats/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-formats -a codex2Manually: put the files in place
.agents/skills/scenario-formats/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-formats -a cursor2Manually: put the files in place
.cursor/skills/scenario-formats/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install scenario-labs/skills scenario-formats2Manually: put the files in place
.github/skills/scenario-formats/SKILL.md1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-formats -a gemini-cli2Platform CLI
gemini skills install https://github.com/scenario-labs/skills --path skills/scenario-formatsManually: put the files in place
.devin/skills/scenario-formats/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-formats -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scenario-formats
How do I install scenario-formats in Claude Code?
Run npx skills add scenario-labs/skills --skill scenario-formats -a claude-code. The skill lands in ~/.claude/skills/scenario-formats/SKILL.md.
How is scenario-formats different from scenario-image-editing?
scenario-image-editing holds the canvas tool contracts; scenario-formats is the decision ladder and order of operations around them, with per-placement ratios, pixel targets and safe zones.
Why not stretch an image into a new ratio with resize?
fit: "stretch" distorts. For a ratio change, use fit: "cover" when edges are expendable, otherwise reframe, expand or recompose.
Source text
SKILL.md · MIT
---
name: scenario-formats
description: "Use when one approved visual, image or video, must ship at many sizes or placements through Scenario: adapting a master to 1:1, 4:5, 9:16, or 16:9, social formats for feeds and stories, YouTube thumbnails, storefront capsules and app store graphics, marketplace product images, link previews, display banners, a website hero, or choosing between crop, resize, expand, and generative reframe. Keywords: aspect ratio, resize, reframe, outpaint, expand, derivative, safe zone, thumbnail, banner."
license: MIT
---
# Scenario Formats
## Overview
Format adaptation is derivation, not regeneration: re-prompting the concept per placement makes five
cousins, not five formats of one approved master. The failure modes are picking the wrong operation
(a resize where canvas needed inventing, a crop that beheads the subject) and deriving in the wrong
order. The canvas tools' exact contracts live in `scenario-image-editing`; this skill is the
decision ladder and the order of operations around them, with per-placement ratios, pixel targets,
and safe zones in [references/placement-specs.md](references/placement-specs.md). A video master
climbs the same ladder: video resize versus generative reframe lives in `scenario-video-editing`,
and far ratios recompose per `scenario-video`. Connection and the core loop: see the `scenario`
skill. Lettering per format: `scenario-text-overlay`. If a sibling skill named here is missing from
your available skills, ask the user to install it
(`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and
flag the gap.
## The decision ladder
Per target format, take the first rung that fits. Each rung is a `model_run` on a model found with
`search` (`target="models"`, `public=true`), never a dedicated MCP tool of its own:
| The target needs | Operation |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Same ratio, other pixels | Resize: exact, scales pixels, invents nothing |
| A tighter ratio, edges expendable | Resize with `fit: "cover"`: exact, center-crops the overflow; only when the subject clears the cut |
| More canvas, composition intact | Expand or uncrop: exact pixels, fills outward |
| Another ratio, recomposed around the subject | Generative reframe; the text-protecting variant when lettering or marks are on the plate |
| A far ratio or a new visual hierarchy | Recompose natively: a fresh run per `scenario-image` with the master as reference (`scenario-consistency`), composed for that ratio |
The last rung applies more often than it looks: 16:9 key art seldom survives to 9:16 by any amount
of outpainting, which is why the director siblings (`scenario-video-ads`) design each delivery ratio
as its own composition.
## Order of operations
1. Approve one master first, at the largest clean size available, on a text-free plate (unattended,
the task's named master or the brief's own description stands in for the approval).
2. Derive every format from that master, never from another derivative: derivative-of-derivative
compounds re-rendering artifacts.
3. Reframe and expand before grading and grain: generative canvas work re-renders the image, so
finishing passes applied first come back partly reinterpreted (`scenario-image-editing` holds the
pipeline order). A video reframe also precedes any upscale: it renders at its own resolution tier
whatever the input carries (1080p at most at authoring time), so an upscale ahead of it is
discarded; upscale the reframed clip to delivery size.
4. Verify by measurement before finishing: reframe ratio enums are approximate (a 4:5 request came
back 29:36 at authoring time), so check output dimensions, land exact with a resize, and
batch-check that subjects survived with `asset_analyze` (`scenario-asset-analysis`).
5. Letter last: re-overlay lettering per format with `scenario-text-overlay`, sized to each final
canvas, since type scaled by a resize turns soft and each placement has its own safe area. Keep
critical content and text away from the edges platform UI covers: each placement's target and
safe zone is in [references/placement-specs.md](references/placement-specs.md) as an
authoring-time value, so confirm contractual specs with the user (unattended, task instructions
win over the reference, and the delivery report states which was used).
## Worked example: key art to story, feed, and thumbnail
1. Master: 16:9 text-free key art, approved.
2. 1:1 feed: generative reframe with a prompt naming what must stay ("the knight centered, both
banners visible"), then a resize pass to the exact deliverable pixels.
3. 9:16 story: a far ratio, so recompose natively: one run per `scenario-image` with the master as
reference and a 9:16 composition clause; the master holds palette and subject on-look.
4. Thumbnail: readability rules the crop, so reframe tight on the face or product, land exact with a
resize, then `asset_display` the result and judge it small: thumbnails are seen at a tenth of
their size.
5. Verify dimensions against the deliverable list and batch-check that subjects survived with one
`asset_analyze` pass, then overlay the title card per format onto each final canvas and file the
set in a collection.
## Common mistakes
- Re-prompting per format: five generations of one prompt are five different images; derive from the
master.
- Stretching into a new ratio with a resize (`fit: "stretch"`): it distorts. A ratio change is
`fit: "cover"` when the edges are expendable, else reframe, expand, or recomposition.
- Grading and grain before reframing: the order is reshape, then grade, then texture.
- Deriving from the lettered master: generative operations re-render type; keep a text-free plate
and re-overlay per format.
- Trusting a ratio enum: measure the output and resize to exact.
- Center-cropping toward 9:16 because it is cheap: it is also how subjects lose their heads; the
ladder exists to be climbed.
- Skipping `dry_run` on reframes: generative canvas work is the expensive step in the chain, tens of
times an effect's price (`scenario-image-editing`).
© scenario-labs · MIT · scenario-labs/skills