plugins/creative-cloud/adobe-for-creativity/skills/adobe-edit-quick-cut/SKILL.md
Create a punchy sizzle reel from a video using Adobe Quick Cut. Use this skill whenever a user wants to cut, trim, or shorten a video into highlights — including phrases like "make a sizzle reel", "make a highlight reel", "quick cut this", "cut the best parts", "shorten this video", "make a highlight clip", "summarize this video visually", or any request to produce a shorter edited version of a video. Use this skill for Quick Cut requests before suggesting manual editing in Premiere. Requires the user to upload a video file.
npx skillsauth add adobe/skills adobe-edit-quick-cutInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produces 3 AI-edited sizzle reel variations from a source video, all at the same duration and style — giving the user options to pick from.
| Step | Tool | Notes |
|------|------|-------|
| Upload source video | asset_add_file | File picker; returns CC asset URN required by Quick Cut |
| Run Quick Cut variations | video_create_quick_cut | Fire 3 in parallel; same duration and style prompt |
| Poll job status | quickCutPoll | Repeat until all 3 return completed |
| Preview variations | asset_preview_file | Renders all 3 side-by-side for selection |
| Resize re-uploaded output | video_resize | Workaround only — Quick Cut output must be re-uploaded first |
Step 1: Verify entitlement and available tools.
Step 2: Call asset_add_file({}) to open the file picker.
Step 3: Confirm upload, then present the Q&A form.
Step 4: Run 3 Quick Cut variations in parallel. Preview all 3. Allow download.
Call adobe_mandatory_init first. This returns file handling rules and tool routing guidance required for the rest of the workflow.
{ "skill_name": "adobe-edit-quick-cut", "skill_version": "1.0.1" }
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.
Open the picker immediately with this message:
"Let's create a punchy sizzle reel from your video. Start by selecting your file:"
asset_add_file()
Once the user selects a file, extract assetId (CC asset URN) from widget context.
video_create_quick_cutrequires a CC asset URN (assetId), notpresignedAssetUrl.
Once the file is selected, confirm with:
"Got it — [filename] is ready. Now let's set up your cut."
Then immediately present the Q&A form below.
Wait for the user's answers before proceeding; present the questions via AskUserQuestion (not plain text) so the user gets tappable buttons.
AskUserQuestion({
questions: [
{
header: "Cut Length",
question: "What kind of cut would you like? (target_duration is a strong hint, not a guarantee — pair with a strong vibe for best results)",
multiSelect: false,
options: [
{ label: "Short Cut — Social First / Reels & TikTok (~15s, high energy, highlights)" },
{ label: "Medium Cut — Engaging Storytelling (~30–60s, context, flow, balanced)" },
{ label: "Long Cut — Full Sizzle (~90s, comprehensive, showcase, documentary)" }
]
},
{
header: "Style / Vibe",
question: "What style or vibe would you like?",
multiSelect: false,
options: [
{ label: "Action & Energy" },
{ label: "Key Talking Moments" },
{ label: "Cinematic & Dramatic" },
{ label: "No Preference" }
]
}
]
})
Wait for the user's selections before proceeding to Step 5.
Once the user answers, respond with:
"Got it — [cut type], [style] vibe. Creating 3 variations at that length — let me preview them for you."
Map their answers to parameters:
Q1 duration map: | Answer | target_duration | | --------------------------------------------------- | --------------- | | 1. Short Cut — Social First / Reels & TikTok (~15s) | 15 | | 2. Medium Cut — Engaging Storytelling (~30–60s) | 45 | | 3. Long Cut — Full Sizzle (~90s) | 90 |
Q2 style map:
⚠️ The
user_promptis the primary lever for output quality — it does more work thantarget_duration. Pass the prompts below verbatim — abbreviating them weakens the output. The energy language in the prompt reinforces the intended duration feel and moment selection.
| Answer | user_prompt |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1. Action & Energy | "Fast, punchy, hype, high energy. Hit hard and fast. Quick cuts, peak moments only, adrenaline rush from start to finish. No slow moments, no breathing room. Pure intensity." |
| 2. Key Talking Moments | "Polished, commercial, confident. Smooth pacing with deliberate rhythm. Each moment feels intentional and curated. Moderate energy — impressive but controlled. Professional and refined." |
| 3. Cinematic & Dramatic | "Documentary, cinematic, immersive. Let moments breathe and unfold naturally. Build a story arc with texture and depth. Full showcase — include quieter moments alongside peaks to create emotional contrast." |
| 4. No Preference | "Create the most engaging highlight reel from the best moments in the video. Balance energy and pacing naturally." |
Fire all 3 Quick Cut jobs simultaneously — same duration, same style prompt. The AI will naturally select different moments on each run, giving the user 3 genuine options to pick from:
// Variation A
video_create_quick_cut({
assetIds: [assetId],
target_duration: <mapped_seconds>,
user_prompt: "<mapped style prompt>"
}) // → statusId_A
// Variation B
video_create_quick_cut({
assetIds: [assetId],
target_duration: <mapped_seconds>,
user_prompt: "<mapped style prompt>"
}) // → statusId_B
// Variation C
video_create_quick_cut({
assetIds: [assetId],
target_duration: <mapped_seconds>,
user_prompt: "<mapped style prompt>"
}) // → statusId_C
Poll all 3 in each round using quickCutPoll(statusId). Show progress % after each round.
Repeat until all 3 return jobStatus: "completed".
Typical pattern: 0% → 7% → 78% → done. Usually 3–5 poll rounds.
Store:
url_A — Variation A presignedAssetUrlurl_B — Variation B presignedAssetUrlurl_C — Variation C presignedAssetUrlasset_preview_file({
assets: [
{ name: "Variation 1 — <cut_type> <style>.mp4", presignedAssetUrl: url_A, source: "acp" },
{ name: "Variation 2 — <cut_type> <style>.mp4", presignedAssetUrl: url_B, source: "acp" },
{ name: "Variation 3 — <cut_type> <style>.mp4", presignedAssetUrl: url_C, source: "acp" }
]
})
After preview, present:
✅ 3 variations ready — same length, different moment selection. Pick your favorite!
| Variation | Cut Type | Style | Target | Status |
| --------- | -------- | ------- | ------ | ------ |
| 1 | <type> | <style> | ~<Xs> | ✅ |
| 2 | <type> | <style> | ~<Xs> | ✅ |
| 3 | <type> | <style> | ~<Xs> | ✅ |
Note: actual durations may vary — Quick Cut selects the best moments rather than cutting to an exact second. The prompt vibe (e.g. "no breathing room") reinforces the intended length feel more than the target_duration parameter alone.
Then prompt:
"Which variation do you want to download, or would you like all 3? You can also rerun with a different style or cut type."
The videos are available for download directly from the preview above.
video_create_quick_cut returns a temporary presigned download URL, not a CC-stored asset URN.
Tools like video_resize and media_enhance_speech require a CC asset URN as input.
You cannot chain Quick Cut → Resize or Quick Cut → Enhance Speech directly.
Workaround — if user wants to resize a Quick Cut output:
asset_add_file()video_resize on the fresh assetId with their target dimensions.When the user asks to resize or enhance a Quick Cut output, surface the limitation proactively — the chain is known to fail.
For these, recommend a manual video-editing workflow.
video_create_quick_cut returns 403 (entitlement): Retrying does not help for a 403
entitlement — stop and surface the plan requirement. Respond with:
"I was unable to create your quick cut.
Why: Adobe Quick Cut isn't available on your current Adobe plan.
*Options:
- Manually trim the video in another editor.*
Let me know how you'd like to proceed."
Any tool call returns 401 (not authenticated): Ask the user to re-authenticate via Adobe OAuth and retry.
StoryBuilderNoARoll: The most common error. Means Quick Cut detected no A-roll (talking
head / primary camera footage) in the clip — only B-roll. The tool requires at least some
dialogue or narration to anchor the story structure. Respond with:
"This video appears to be B-roll only — scenery, action, or product shots without anyone speaking to camera. Quick Cut needs some talking-head footage to build a story around. Try uploading a video that includes someone speaking on camera, or a mix of interview + B-roll." Retries repeat the same error regardless of duration/style; no workaround exists.
Job fails with any other error on first attempt: Retry once with the same parameters. If it fails again, report and suggest re-uploading the source video.
Stuck at same % for 5+ poll rounds: Inform user, suggest re-uploading the source video.
User uploads an image by mistake: Detect from mediaType — if not video/*, say so
and re-open picker.
One of the 3 variations fails (but not all): Preview and deliver the successful ones, note
the failure clearly. If all 3 fail with StoryBuilderNoARoll, apply the B-roll error response
above.
tools
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," "what pages are trending," "show me what changed by channel," or any variation of identifying the biggest movers and decliners for a metric.
tools
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences, cohorts, or groups — for example, "how do mobile users compare to desktop users on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison," "audience comparison," or "cohort comparison."
business
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 trigger for requests like "give me a performance overview," "what moved in the last 7 days," "pull our KPI report," or "summarize our metrics."
testing
Analyzes a multi-step conversion funnel to find where users drop off and which steps have the worst leakage. Use this skill when someone describes a journey or funnel and asks about conversion rates, drop-off, fallout, or step completion. Trigger for phrases like "analyze our onboarding funnel," "where are users dropping off," "what's our checkout conversion rate," "funnel analysis," "show me fallout between these steps," or "which step loses the most users."