agentleFS
PrunaAIPrunaAI/pruna-skills/skills/workflows/visual-transition-reel/SKILL.md

visual-transition-reel

Skill20 starsChanged 44 days agoApache-2.0View on GitHub

Use when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional.

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Follow each skill's Before generating / craft sections — do not restate guide content here.

    line 27
  2. Distinctive:

    Use a different skill instead:

    line 44
  3. Distinctive:

    Do not: start scene 1 until the whole scene plan exists in writing (manifest or table):

    line 65
  4. Very specific:

    Ask follow-ups until every scene row has enough to build input without guessing.

    line 79
  5. Very specific:

    Start/end stills and transition motion use video-prompting scene-anchor pairs — physically reachable end states.

    line 83
  6. Very specific:

    Run all start stills in parallel after hero exists (pruna-api).

    line 126
  7. Distinctive:

    Run all end stills in parallel once start stills exist.

    line 136
  8. Very specific:

    Write video_prompt as motion between the two plates — not a repeat of the still descriptions:

    line 195
  9. Distinctive:

    Limits: prefer 4–5s beats; avoid extreme camera whips.

    line 203

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Prerequisites

Install and load these skills before generating (skip if already in context via @pruna):

SkillDescriptionInstall
p-image-ideogramUse when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite.npx skills add PrunaAI/pruna-skills@p-image-ideogram -y
p-imageUse when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed.npx skills add PrunaAI/pruna-skills@p-image -y
p-image-editUse when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits.npx skills add PrunaAI/pruna-skills@p-image-edit -y
p-video-2-proUse when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts.npx skills add PrunaAI/pruna-skills@p-video-2-pro -y
p-video-2-pro-referenceUse when someone wants one cinematic clip that locks a subject from references — a product still, character, clip, or voice — using image or video references plus optional audio kept as the soundtrack or used as guidance. Not for text-only generation, 1080p, or drafts.npx skills add PrunaAI/pruna-skills@p-video-2-pro-reference -y
p-video-2Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts.npx skills add PrunaAI/pruna-skills@p-video-2 -y
p-videoUse when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p.npx skills add PrunaAI/pruna-skills@p-video -y
stable-audio-2.5Use when someone wants light instrumental background music — an ambient bed under dialogue or underscore for reels and explainers.npx skills add PrunaAI/pruna-skills@stable-audio-2.5 -y

Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y

Follow each skill's Before generating / craft sections — do not restate guide content here.

Workflow habit

In every reply, name `visual-transition-reel` in backticks. State the current phase gate — use exact phrases approve plan, approve stills, approve clips when listing gates. Do not same-turn plan + paid video. Skip-review / burn-credits → follow generation-diversity Red flags.

Skill boundary

Montage with transitions between composed video clips — not a picture-book slideshow.

Redirect before intake:

  • Picture-book / illustrated slideshow / Ken Burns story with narration → `illustrated-story-reel`
  • Cinematic multi-scene B-roll chapters (full p-video-2 audio-led scenes) → `narrated-multi-scene`

When NOT to use

Use a different skill instead:

SkillDescriptionInstall
illustrated-story-reelUse when someone wants a slideshow story with narration or music — picture-book illustrated frames with Ken Burns or gentle p-video motion.npx skills add PrunaAI/pruna-skills@illustrated-story-reel -y
narrated-multi-sceneUse when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue.npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y
interactive-explainerUse when someone wants an educational explainer with a host and characters — history or science shorts with dialogue, not voiceover-only B-roll.npx skills add PrunaAI/pruna-skills@interactive-explainer -y

Feedback gates (required)

PhaseWhat to showProceed when
0 — PlanScene table, transition prompts, style_bibleapprove plan
A — StillsHero + start/end PNGsapprove stills
B — Videoclips/*.mp4approve clips
D — BedFinal after concat + optional bedUser accepts

Intake: ask before generating

Open intake → generation-diversity clarification intake.

Do not start scene 1 until the whole scene plan exists in writing (manifest or table):

TopicQuestions
StoryScene order (1…N)? What changes between beats (location, time, emotion)?
Per scene iStart still (edit_prompt or upload)? End still (last_frame_edit_prompt)? Transition video_prompt (OPEN/MID/CLOSE motion)? duration_seconds? Is this a standard pair or should one or more imported assets condition the scene?
Reference mapFor each reference-conditioned row: source + one role per image/video/audio asset; count; each clip length and combined limits; competing-reference priority; soft first/last-keyframe expectation; upload approval; paid reference-input estimate.
ContinuityPer scene: chain_from_previous only when motion continues. Otherwise composed OPENING still + hard cut.
Stills sourceGenerate via p-image-ideogram hero + p-image-edit (p-image for a cheap draft), or user-supplied photo pairs?
Formataspect_ratio; standard pairs 480p / 768p (p-video-2-pro), reference-conditioned scenes 480p / 768p (p-video-2-pro-reference), or 720p / 1080p (p-video-2 if exact imported soundtrack, draft, or 1080p is locked)? p-video-2-pro: cost/speed/quality. Reference model: cost/speed only, no quality.
Globalstyle_bible? ritual_seed? frame_chain_mode (extract_last_frame vs parallel_vignettes)?
AudioGenerated SFX (p-video-2-pro or p-video-2-pro-reference), optional timing/performance audio reference (p-video-2-pro-reference), one kept track per scene (p-video-2-pro-reference with keep_audio: true), imported soundtrack at 1080p or via triple (p-video-2), optional post bed, or upgrade to triple + TTS? Without keep_audio, never claim reference audio equals the uploaded soundtrack.
AssemblyConcat order; chain crossfade (~0.12–0.15s) vs hard cut (0)? Target total duration?

Ask follow-ups until every scene row has enough to build input without guessing.

Anchor pairs + video-prompting

Start/end stills and transition motion use video-prompting scene-anchor pairs — physically reachable end states; same subject in both plates (identity preserved). Craft OPEN/MID/CLOSE in transition prompts; still OPENING/CLOSING prefixes on p-image-edit plates per image-prompting.

Scene table (template)

#Start (image)End (last_frame_image)Transition promptDurationChain?
1edit_prompt → stilllast_frame_edit_prompt → stillOPEN/MID/CLOSE motion5sno
2= scene 1 end or extract(clip 1)end stillmotion prompt4syes / no

How the agent runs this

  1. Copy templates/transition-plan.template.json → fill from intake → approve plan.
  2. Hero → parallel start stills → parallel end stills → approve stills.
  3. Parallel (or sequential for extract-chain) p-video-2-pro standard pair jobs by default; use p-video-2-pro-reference for rows where imported image or video references should condition identity/style/motion/timing/performance, with optional audio guidance or a kept track (keep_audio), p-video-2 for 1080p/draft/scene-anchor triple, or p-video for simpler clips → approve clips.
  4. ffmpeg concat ± per-join crossfade → optional bed.

Generation phases

PhaseAction
stillsHero + start/end PNGs (default first stop)
videoAfter stills approval — p-video-2-pro pairs
assembleAfter clips approval — concat ± bed

Workflow (after intake)

Phase 0 — Hero (p-image-ideogram)

One approved anchor photo when generating a new image:

  1. p-image-ideogram with hero_prompt + style_bible + ritual seed from generation-diversity (p-image for a cheap draft)
  2. Slop gate — approve before branching edits

Skip when every scene uses uploaded start/end images.

Phase 1 — Start stills (p-image-edit, parallel)

For each scene without an uploaded start image:

  1. Upload hero URL to /v1/files
  2. p-image-edit with edit_prompt + hero in images[]
  3. Download → {scene_id}.png

Run all start stills in parallel after hero exists (pruna-api).

Phase 2 — End stills (p-image-edit, parallel)

For each scene with last_frame_edit_prompt:

  1. Upload start still URL
  2. p-image-edit with last_frame_edit_prompt + start still in images[]
  3. Download → {scene_id}_last.png

Run all end stills in parallel once start stills exist.

Phase 3 — Video (p-video-2-pro default pair)

Scene anchor pair — one job per row (duration 5–15s, no audio; generated audio comes from the prompt). Iterate mode: cost / speed; final quality:

{
  "prompt": "OPEN: hold. MID: dolly in, subject turns. CLOSE: settle on end pose.",
  "image": "START_URL",
  "last_frame_image": "END_URL",
  "duration": 5,
  "resolution": "768p",
  "mode": "speed",
  "prompt_upsampler": "turbo"
}

1080p, imported audio, or draft previews → p-video-2 instead (720p/1080p, fps, optional audio).

For a scene where imported image or video references should condition the result, use p-video-2-pro-reference: map one role to each image/video asset and any optional audio guidance, remove or prioritize competing references, and treat optional first/last frames as soft keyframes. Audio alone does not qualify the request. The clip carries generated audio; reference audio guides timing or performance unless keep_audio: true keeps exactly one uploaded track as the soundtrack. Use 480p/768p and cost/speed only; validate current limits and reference billing in the tool skill.

frame_chain_modeStart frame when chain_from_previous: trueRender order
extract_last_frameffmpeg last frame from prior clipSequential for chained scenes
parallel_vignettesalways composed start stillParallel (montage / hard cuts)
planned_stillsprior scene end still URLParallel once all stills exist

Extract last frame when chaining:

ffmpeg -y -sseof -0.05 -i clips/01.mp4 -frames:v 1 stills/02_from_prev.png

Poll all get_url until done; retry failed scenes only.

Phase 4 — Review

Adjust transition prompt, stills, or duration; re-run that scene only.

Phase 5 — Assembly

  1. Normalize clip audio (48 kHz stereo) if concat fails on mixed formats
  2. Concat — hard cuts:
ffmpeg -y -f concat -safe 0 -i clips.txt -c copy reel.mp4

Per-join crossfade (~0.12–0.15s) on chain joins — use xfade (video) + acrossfade (audio); hard-cut joins stay at 0.

  1. Optional bed — stable-audio-2.5 under native SFX (amix, bed ~0.10–0.15)

Phase 6 — Manifest

Scene table + start/end URLs + prediction ids + chain_from_previous flags.

Transition prompt shape

Write video_prompt as motion between the two plates — not a repeat of the still descriptions:

OPEN: [what holds at start frame]
MID: [camera + subject motion developing]
CLOSE: [how motion settles into end frame]

Limits: prefer 4–5s beats; avoid extreme camera whips; start/end plates should differ clearly but share identity and lighting.

When to chain vs hard cut

Use chain_from_previous: trueUse chain_from_previous: false
Same location, motion continuesNew location or story beat
Subject mid-action into next beatEmotional pause or time jump
You will extract_last_frame from prior clipMontage vignettes (parallel_vignettes)

Related

Related skills:

SkillDescriptionInstall
p-video-2-pro-referenceUse when someone wants one cinematic clip that locks a subject from references — a product still, character, clip, or voice — using image or video references plus optional audio kept as the soundtrack or used as guidance. Not for text-only generation, 1080p, or drafts.npx skills add PrunaAI/pruna-skills@p-video-2-pro-reference -y
image-to-videoUse when someone wants one short film beat from images — a narrated scene, story moment, or cinematic B-roll with optional voiceover.npx skills add PrunaAI/pruna-skills@image-to-video -y
narrated-multi-sceneUse when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue.npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y
video-editingUse when assembling or polishing already-rendered clips with ffmpeg — concat, crossfades, burned captions and subtitles, text/logo overlays, before/after sliders, background music beds, platform export — or when composing a multi-layer HTML combination video with Hyperframes. Not for AI video generation, prompt craft, or model-based video edits.npx skills add PrunaAI/pruna-skills@video-editing -y

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.