/adobe-resize-photos-and-videos
Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools. Use this skill whenever a user wants to resize, scale, or change the dimensions of an image or video file — including phrases like "resize this to 1920x1080", "make this 4K", "scale to
$ npx -y skills add adobe/skills --skill adobe-resize-photos-and-videos --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/adobe-resize-photos-and-videos
Context preview
The summary Claude sees to decide when to auto-load this skill.
Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools. Use this skill whenever a user wants to resize, scale, or change the dimensions of an image or video file — including phrases like "resize this to 1920x1080", "make this 4K", "scale to
SKILL.md
adobe-resize-photos-and-videos.SKILL.mdname: adobe-resize-photos-and-videos
description: >
Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools.
Use this skill whenever a user wants to resize, scale, or change the dimensions of an image
or video file — including phrases like "resize this to 1920x1080", "make this 4K", "scale
to 800x600", "change the aspect ratio to 16:9", "resize my video", "make the image smaller",
"crop to square", "fit this to a specific size", "resize for print", "resize for web",
"make it 300 DPI ready", "change canvas size", "resize a batch of photos", or any request
specifying target dimensions (W×H, ratio, or named size like "4K", "HD", "A4").
Also triggers for: "make this fit a specific size", "resize to [any dimension]",
"I need this at [WxH]", "scale my video down", "change resolution", "downscale", "upscale".
NOT for social media platform sets (use adobe-create-social-variations for that).
Uses image_crop_and_resize for photos, video_resize for videos.
license: Apache-2.0
metadata:
version: 1.0.1
visibility: public
Adobe Resize Photos and Videos
Resizes images or videos to user-specified dimensions, aspect ratio, or named size. For social media platform sets (Instagram, TikTok, etc.) → use the `adobe-create-social-variations` skill instead.
---
Tool Reference
| Step | Tool | Notes | |------|------|-------| | Open file picker | `asset_add_file` | Returns `presignedAssetUrl`, `assetId`, and `mediaType` | | Find asset in CC | `asset_search` | Re-stage result via `asset_add_file` for image; use `id` directly for video | | Render PSD/AI | `document_render_vector` | Converts to JPEG before resize | | Resize image | `image_crop_and_resize` | One call per dimension; `reframe` by default | | Preview outputs | `asset_preview_file` | All outputs in a single call | | Upload to CC (start) | `asset_initialize_file_upload` | First call in block upload pipeline | | Upload to CC (finish) | `asset_finalize_file_upload` | Second call; returns presigned CC URL for board | | Create Firefly board | `create_firefly_board` | Pass `import_adobe_storage` with finalize URL | | Resize video | `video_resize` | Returns `statusId` for polling | | Poll video resize | `resizeVideoPoll` | Deferred tool — load before calling |
---
Workflow
Step 0 — Initialize Adobe Tools
Call `adobe_mandatory_init` first. This returns file handling rules and tool routing guidance required for the rest of the workflow.
{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.0.1" }---
Step 1 — Entitlement Check
Now that `adobe_mandatory_init` confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the **Tool Reference** table above.
---
IMMEDIATE ACTION REQUIRED
**Step 1:** If parameters are missing or ambiguous → run the multi-step intake (Step 2 below). **Step 2:** If no file is uploaded, run Step 3 (`asset_add_file({})`). **Step 3:** Detect image vs. video and route to the correct workflow (Step 5 Image/Video).
---
Step 2 — Multi-Step Intake
Run this when the user hasn't provided complete parameters (type + dimensions + fit mode). Skip entirely if the user's message already contains all three.
Use `AskUserQuestion` to collect parameters step by step.
Step 2a — Type
AskUserQuestion([{
question: "Photo or video?",
type: "single_select",
options: ["Photo", "Video"]
}])Step 2b — Dimensions
**If Photo** (`multi_select` — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1080 — Instagram square",
"1080 × 1350 — Instagram portrait",
"1080 × 1920 — Stories / Reels",
"1920 × 1080 — YouTube / landscape",
"1280 × 720 — YouTube thumbnail",
"1200 × 675 — X / Twitter post",
"1200 × 630 — Facebook / OG image",
"1080 × 566 — LinkedIn post",
"2560 × 1440 — YouTube banner",
"3840 × 2160 — 4K / UHD",
"400 × 400 — Profile / avatar",
"2480 × 3508 — A4 print (300 dpi)",
"Custom — I'll type it"
]
}])If user includes "Custom" → follow up: "Enter your custom dimensions (e.g. 1500×800):"
If user selects multiple presets → run `image_crop_and_resize` once per dimension, using the same source URI and parameters each time. Preview all outputs together at the end.
**If Video** (`multi_select` — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1920 — Reels / TikTok / Stories",
"1920 × 1080 — YouTube / landscape",
"1080 × 1080 — Square post",
"1280 × 720 — YouTube 720p",
"3840 × 2160 — 4K / UHD",
"854 × 480 — SD / 480p",
"Custom — I'll type it"
]
}])If user selects multiple video presets → submit a separate `video_resize` job per dimension, poll each to completion, preview all outputs together.
Step 2c — Fit mode
**If Photo** (`single_select`):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Reframe — crop to fill",
"Pad — letterbox, no crop",
"Extract — isolate subject"
]
}])**If Video** (`single_select`):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Letterbox — preserve ratio",
"Crop — fill, no bars",
"Stretch — force exact (distort)"
]
}])Step 2d — Smart focus (Photo only)
AskUserQuestion([{
question: "Smart focus — where should the crop center?",
type: "single_select",
options: [
"Subject",
"Face / portrait",
"Upper body",
"Center (geometric)",
"Named object — I'll describe it"
]
}])If user selects "Named object" → follow up: "Describe the object (e.g. 'the red car', 'the logo'):"
Step 2e — Options (Photo only)
AskUserQuestion([{
question: "AnyRead more
name: adobe-resize-photos-and-videos description: > Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools. Use this skill whenever a user wants to resize, scale, or change the dimensions of an image or video file — including phrases like "resize this to 1920x1080", "make this 4K", "scale to 800x600", "change the aspect ratio to 16:9", "resize my video", "make the image smaller", "crop to square", "fit this to a specific size", "resize for print", "resize for web", "make it 300 DPI ready", "change canvas size", "resize a batch of photos", or any request specifying target dimensions (W×H, ratio, or named size like "4K", "HD", "A4"). Also triggers for: "make this fit a specific size", "resize to [any dimension]", "I need this at [WxH]", "scale my video down", "change resolution", "downscale", "upscale". NOT for social media platform sets (use adobe-create-social-variations for that). Uses image_crop_and_resize for photos, video_resize for videos. license: Apache-2.0 metadata: version: 1.0.1 visibility: public
Adobe Resize Photos and Videos
Resizes images or videos to user-specified dimensions, aspect ratio, or named size. For social media platform sets (Instagram, TikTok, etc.) → use the `adobe-create-social-variations` skill instead.
---
Tool Reference
| Step | Tool | Notes | |------|------|-------| | Open file picker | `asset_add_file` | Returns `presignedAssetUrl`, `assetId`, and `mediaType` | | Find asset in CC | `asset_search` | Re-stage result via `asset_add_file` for image; use `id` directly for video | | Render PSD/AI | `document_render_vector` | Converts to JPEG before resize | | Resize image | `image_crop_and_resize` | One call per dimension; `reframe` by default | | Preview outputs | `asset_preview_file` | All outputs in a single call | | Upload to CC (start) | `asset_initialize_file_upload` | First call in block upload pipeline | | Upload to CC (finish) | `asset_finalize_file_upload` | Second call; returns presigned CC URL for board | | Create Firefly board | `create_firefly_board` | Pass `import_adobe_storage` with finalize URL | | Resize video | `video_resize` | Returns `statusId` for polling | | Poll video resize | `resizeVideoPoll` | Deferred tool — load before calling |
---
Workflow
Step 0 — Initialize Adobe Tools
Call `adobe_mandatory_init` first. This returns file handling rules and tool routing guidance required for the rest of the workflow.
{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.0.1" }---
Step 1 — Entitlement Check
Now that `adobe_mandatory_init` confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the **Tool Reference** table above.
---
IMMEDIATE ACTION REQUIRED
**Step 1:** If parameters are missing or ambiguous → run the multi-step intake (Step 2 below). **Step 2:** If no file is uploaded, run Step 3 (`asset_add_file({})`). **Step 3:** Detect image vs. video and route to the correct workflow (Step 5 Image/Video).
---
Step 2 — Multi-Step Intake
Run this when the user hasn't provided complete parameters (type + dimensions + fit mode). Skip entirely if the user's message already contains all three.
Use `AskUserQuestion` to collect parameters step by step.
Step 2a — Type
AskUserQuestion([{
question: "Photo or video?",
type: "single_select",
options: ["Photo", "Video"]
}])Step 2b — Dimensions
**If Photo** (`multi_select` — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1080 — Instagram square",
"1080 × 1350 — Instagram portrait",
"1080 × 1920 — Stories / Reels",
"1920 × 1080 — YouTube / landscape",
"1280 × 720 — YouTube thumbnail",
"1200 × 675 — X / Twitter post",
"1200 × 630 — Facebook / OG image",
"1080 × 566 — LinkedIn post",
"2560 × 1440 — YouTube banner",
"3840 × 2160 — 4K / UHD",
"400 × 400 — Profile / avatar",
"2480 × 3508 — A4 print (300 dpi)",
"Custom — I'll type it"
]
}])If user includes "Custom" → follow up: "Enter your custom dimensions (e.g. 1500×800):"
If user selects multiple presets → run `image_crop_and_resize` once per dimension, using the same source URI and parameters each time. Preview all outputs together at the end.
**If Video** (`multi_select` — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1920 — Reels / TikTok / Stories",
"1920 × 1080 — YouTube / landscape",
"1080 × 1080 — Square post",
"1280 × 720 — YouTube 720p",
"3840 × 2160 — 4K / UHD",
"854 × 480 — SD / 480p",
"Custom — I'll type it"
]
}])If user selects multiple video presets → submit a separate `video_resize` job per dimension, poll each to completion, preview all outputs together.
Step 2c — Fit mode
**If Photo** (`single_select`):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Reframe — crop to fill",
"Pad — letterbox, no crop",
"Extract — isolate subject"
]
}])**If Video** (`single_select`):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Letterbox — preserve ratio",
"Crop — fill, no bars",
"Stretch — force exact (distort)"
]
}])Step 2d — Smart focus (Photo only)
AskUserQuestion([{
question: "Smart focus — where should the crop center?",
type: "single_select",
options: [
"Subject",
"Face / portrait",
"Upper body",
"Center (geometric)",
"Named object — I'll describe it"
]
}])If user selects "Named object" → follow up: "Describe the object (e.g. 'the red car', 'the logo'):"
Step 2e — Options (Photo only)
AskUserQuestion([{
question: "AnyRepo: adobe/skills
Other skills on adobe-skills.
- /aa-conversion-funnel-analysis
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel,"
Open skill - /aa-executive-briefing
Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this skill when someone needs to produce a briefing, executive summary, performance narrative, or stakeholder readout — for example, "write an exec summary of
Open skill - /aa-kpi-pulse
Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also
Open skill - /aa-segment-performance-comparator
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences or visitor groups — for example, "how do mobile visitors compare to desktop on conversion," "compare new vs. returning visitors,"
Open skill - /aa-top-movers-watchlist
Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers,"
Open skill - /cja-dimension-analysis
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user wants to analyze one or more dimensions — including cardinality, distribution/skew, trends, anomalies, data quality errors, comparisons, and forecasting. Also trigger when someone asks "what
Open skill

