Agent skill

Transition Board

by GTKottman in GTKottman/mortiflix-oss

Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions…

AGPL-3.0Auto-check passedMedia & Creative

Install Transition Board

skills CLI
$ npx skills add GTKottman/mortiflix-oss --skill transition-board -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GTKottman/mortiflix-oss transition-board --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GTKottman/mortiflix-oss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/pipelines/_shared/skills/transition-board .claude/skills/transition-board && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
transition-board
GitHub stars
476
Token cost
~2.2k tokens
SKILL.md length
1,021 words
Files
2
Skills in repo
9
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions…

  • Works in 6 steps: Learn the library → Find each cut's carrier → Choose the transition → …
  • Any transitions step
  • SKILL.md covers 1. Learn the library, 2. Find each cut's carrier, 3. Choose the transition and 4. Copy the transitions into…, plus 2 more sections
  • Runs JavaScript scripts from its folder; calls node

What it does

Transition Board is an agent skill from GTKottman/mortiflix-oss. Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions library (or a new one inspired by it), its timing on the narration, and a board panel showing the real in-between frames. Use for any transitions step, or when a cut changes.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Media & Creative, covering Video production and Text to speech and voice. It works with Remotion. The repository describes itself as: A motion design studio on your own machine: Claude makes the video step by step, you approve every stage. Bring your own Claude Code or API key. The licence is AGPL-3.0.

When your agent uses it

  • Any transitions step
  • Tasks that involve Video production
  • Tasks that involve Text to speech and voice

Example prompts

  • “/transition-board”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Learn the library
  2. Find each cut's carrier
  3. Choose the transition
  4. Copy the transitions into the video
  5. Render the in-betweens
  6. Submit the board

What it can do on your machine

Read from SKILL.md and the folder at commit 8c86e83. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Transition Board loads about 2.2k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 1,021 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from GTKottman/mortiflix-oss at commit 8c86e83, republished under its AGPL-3.0 licence (© GTKottman). 1,021 words, ~2,185 tokens.

Download SKILL.mdSave it as .claude/skills/transition-board/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
transition-board
description
Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions library (or a new one inspired by it), its timing on the narration, and a board panel showing the real in-between frames. Use for any transitions step, or when a cut changes.

The transition board

Every cut is designed. Between each style frame and the next there is something that carries the change: a shape that grows, a line that leads the eye, a camera that moves, an element that becomes another. A transition without a carrier and a reason doesn't go on the board.

The screen never goes blank. No transition fills the frame with a colour (a cover or dip to purple, black or any flat colour) or blows it out to white (a flash or light leak to white). The scenes' own elements do the transition: they move, grow, open, fold, carry the eye, or a real object (2D or 3D) passes through the frame and brings the next scene with it. board.mjs check looks at every 10% of each transition and fails a frame that is flooded with a colour neither scene has, blown out, or emptied of the scenes' elements. Library transitions that work by covering the frame (most of 04-cover, dips, flashes) are only usable if the cover itself is made of the scenes' elements; otherwise choose another or make a new one.

The transitions come from the owner's library, remotion-transitions ($MFX_TRANSITIONS): 50 transitions in nine families, each a drop-in <TransitionSeries> presentation with a catalog entry and a preview.

B=.claude/skills/transition-board/board.mjs
node $B list [--function section-break] [--family 04-cover]   # choose
node $B use liquid-fill flash ...                             # copy them (and their core) into video/src/transitions/
node $B posters                                               # the library's preview stills, for the board
node $B check                                                 # the rules: must pass
node $B panels                                                # one review image per cut

1. Learn the library

Read $MFX_TRANSITIONS/TAXONOMY.md (the nine families, how each works, timing and craft) and skim the catalog with node $B list. Each entry says what it's for (function: continuity, energy, section-break, reveal, progression, contrast, brand…), how it's built (structure, origin, edge), its length range in frames, and its parameters. Most take color: the incoming scene's background colour, so the change arrives through a shape in the new scene's own colour.

2. Find each cut's carrier

Go through the approved script and style frames in order. For every change of scene, before choosing anything, write:

  • The carrier: the object or element in the frames that makes the change happen. Look at both frames: what in the outgoing frame can lead into the incoming one (the $ in the price, the terminal window, the stage track's next node, the mark, a line of text, the light)? A good carrier is already on screen.
  • Why: what the cut means in the story, in one sentence: continuity (the same idea, carried on), a turn (the story changes direction), a section break, a reveal, a rise in energy, a breath.
  • Where it lands: the word or beat in the narration the cut lands on.

3. Choose the transition

Pick from the library by what the cut means and what carries it, not for variety's sake:

  • Continuity inside a section: quiet families (blend, a carry, a match cut, a short motion move).
  • Section breaks and turns: the bigger moves (carries, portals, a 3D object through the frame, motion with weight), reserved so they mean something.
  • A vocabulary: two to four families across the whole video, used consistently (the same kind of cut means the same kind of change). The check warns when one family dominates or when there are too many.
  • Length: inside the transition's range, and long enough to read under the narration; snap cuts on beats, slower ones in breaths.

3D carriers. A real 3D object can carry a cut: a wobbling sphere that flies at the camera and fills the lens as it passes, revealing the next scene behind it; a ribbon or a swarm that sweeps across. Render it in the studio's Blender (blender-3d skill) as a transparent image sequence (-F PNG, RGBA, film transparent) and use it as the transition's layer, with the outgoing scene before it passes and the incoming scene after. The object is the carrier, never a flat cover: the scenes stay visible around and through it.

If nothing in the library fits, design a new one, inspired by the library entries closest to it: write it in the library's format (transition.json + index.tsx, built on video/src/transitions/core) in video/src/transitions/<new-id>/, and mark it on the board as {"new": "<new-id>", "inspired_by": ["<id>", …]}. Never edit the library itself (it's the owner's repository; a new transition worth sharing can be proposed there through its CONTRIBUTING protocol later, by the owner).

Write transitions/board.json:

json
{ "cuts": [
  { "from": "SF01 · The hook", "to": "SF02 · The turn",
    "a": "out/frames/sf01.png", "b": "out/frames/sf02.png",
    "carrier": "the gradient inside the $5,400",
    "why": "The price's colour floods the frame and drains away into the promise: the cost dissolves.",
    "transition": "liquid-fill", "params": { "color": "#0B0913" }, "frames": 96,
    "lands_on": "\"Now\", the first word of beat 2",
    "mids": ["out/board/cut-01-35.png", "out/board/cut-01-65.png"],
    "strip": ["out/board/cut-01/10.png", "…", "out/board/cut-01/90.png"] }
] }

Cuts run through the scenes in order (each starts where the last ended). Run node $B check until it passes.

Show full SKILL.md (308 more words)Show less

4. Copy the transitions into the video

node $B use <id> … copies the library's core/ and each chosen transition into video/src/transitions/ with their imports fixed. Use them exactly as the library says:

tsx
import { TransitionSeries, linearTiming } from '@remotion/transitions';
import { toPresentation } from './transitions/core';
import liquidFill from './transitions/liquid-fill';

<TransitionSeries.Transition presentation={toPresentation(liquidFill, { color: '#0B0913' })}
  timing={linearTiming({ durationInFrames: 96 })} />

Always linearTiming (each transition does its own easing). Transitions whose catalog entry requires webgl2 render with --gl=angle (or --gl=swangle with no GPU). Keep every cut in one place in the video's code (one list of cuts), so a changed board changes the video in one edit.

5. Render the in-betweens

For each cut, a board composition puts the two style frames in a <TransitionSeries> with the chosen transition and renders real stills from the transition itself, at about 35% and 65% of its length, so the owner sees exactly how one frame becomes the next:

tsx
const HOLD = 30;   // frames of the outgoing still before the transition starts
<TransitionSeries>
  <TransitionSeries.Sequence durationInFrames={HOLD + cut.frames}><Still src={cut.a} /></TransitionSeries.Sequence>
  <TransitionSeries.Transition presentation={...} timing={linearTiming({ durationInFrames: cut.frames })} />
  <TransitionSeries.Sequence durationInFrames={HOLD + cut.frames}><Still src={cut.b} /></TransitionSeries.Sequence>
</TransitionSeries>
// stills at frame HOLD + round(cut.frames * 0.35) and HOLD + round(cut.frames * 0.65)

Also render the strip: a still every 10% of the transition (10% to 90%), listed as "strip" in the cut's entry: the check reads every one of them for blank frames. Render through mfx render (npx remotion still … --frame=N, with --gl=angle where needed). Look at every in-between: if the carrier doesn't read in it, the cut isn't working yet. Fix the choice, not the frame.

6. Submit the board

node $B posters, then node $B panels: one image per cut, reading left to right: the outgoing frame, the real in-betweens, the incoming frame, and the library's preview still of that transition, dimmed, for reference.

Submit every panel as an image item, labelled Cut 03 · SF03 → SF04 · Liquid Fill (cover) · carried by the terminal window, and transitions/BOARD.md as a text item: for each cut, the carrier, the why, the transition and its family, its length, and the word it lands on. The note: the video's transition vocabulary in two or three lines.

The approved board is the animatic's cut list: the animatic uses these transitions at these lengths, landing on these words.

© GTKottman, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in pipelines/_shared/skills/transition-board of GTKottman/mortiflix-oss.

  • SKILL.md
  • board.mjs

Open the folder on GitHubat commit 8c86e83

Compare with similar skills

Transition Board next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Transition Board compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Transition Board this skillGTKottman/mortiflix-oss476—~2.2kAutomated safety check: PassAGPL-3.0
Ergo Remotion Videoitwanger/toBeBetterJavaer18k—~1.1kAutomated safety check: PassNone
Remotion Topic ExplainerCuongyd196/remotion-cuongit-template172—~2.2kAutomated safety check: NotesNone
Remotion Topic ExplainerCuongyd196/remotion-cuongit-template172—~1.4kAutomated safety check: NotesNone
Make Tsxhassancs91/claude-youtube-editor325—~1.9kAutomated safety check: NotesMIT
Synthetic Screen Recordingcalesthio/OpenMontage66k—~2.5kAutomated safety check: PassMIT

Similar skills

  • Ergo Remotion Video

    itwanger/toBeBetterJavaer

    把口播稿做成二哥风格的 Remotion 视频,包括整理视频用稿、火山 TTS 配音、音画对齐、逐章动画预览和导出带配音的 MP4。用户说“做视频”“口播稿转视频”“Remotion”“继续做下一章”“出片”“渲染”“改读音”“配音读错了”,或给出 docs/src/ai/video/ 下的稿子要做成视频时使用。共享工具、配置和素材在…

    18k GitHub stars~1.1k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Remotion Topic Explainer

    Cuongyd196/remotion-cuongit-template

    Creates professional 50-60s vertical explainer videos (9:16 format, 1080x1920 @ 30fps) for any given topic using Remotion, styled with modern aesthetics and narrated by natural voiceover using…

    172 GitHub stars~2.2k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes
  • Remotion Topic Explainer

    Cuongyd196/remotion-cuongit-template

    Tạo video ngắn 50-60s dạng video dọc (9:16, 1080x1920 @ 30fps) giải thích bất kỳ chủ đề lập trình/công nghệ nào bằng Remotion.

    172 GitHub stars~1.4k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes
  • Make Tsx

    hassancs91/claude-youtube-editor

    Step 2 of the AI Video Editor pipeline — build the visual beats (Remotion TSX shots) over a project's master cut and bake a composited preview.

    325 GitHub stars~1.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes
  • Synthetic Screen Recording

    calesthio/OpenMontage

    Synthetic terminal-style screen recording guidance for Remotion TerminalScene.

    66k GitHub stars~2.5k tokensUpdated 6 days ago
    Media & CreativeAuto-check passed
  • Vocabulary Video Pipeline

    dracohu2025-cloud/draco-skills-collection

    基于 Remotion 的词汇视频自动化生成 skill。输入一个英文单词,自动跑完诊断、TTS 音频、节奏分割、视频渲染、飞书上传和成本汇报。

    227 GitHub stars~958 tokensUpdated 22 days ago
    Media & CreativeAuto-check: notes

More from GTKottman/mortiflix-oss

All 9 skills in this repo
  • Blender 3D

    GTKottman/mortiflix-oss

    3D work in the studio's own Blender with its toolkits: MoBlend (MoGraph cloners, effectors, fields, MoText, fracture), Nova FX (particles, fire, sparks, fireworks), Camera (framing, shot presets…

    476 GitHub stars~902 tokensUpdated today
    Auto-check passed
  • Music

    GTKottman/mortiflix-oss

    The music engine, for a song or a video's score. An agent skill from GTKottman/mortiflix-oss.

    476 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Remotion Motion

    GTKottman/mortiflix-oss

    Build, preview and render the video in Remotion (React): project setup from the template, stills for style frames, animatic and final renders through the studio's render queue.

    476 GitHub stars~806 tokensUpdated today
    Auto-check passed
  • Voiceover

    GTKottman/mortiflix-oss

    Narration, sound effects and music beds in the voice the studio set up (ElevenLabs, Qwen3-TTS on this machine's GPU, or the owner's own voice from the recording booth): lines from the approved…

    476 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Assets

    GTKottman/mortiflix-oss

    Finding and downloading stock assets (footage, images, illustrations, 3D models, sound effects, fonts) from the asset sites the owner uses, in the owner's own Chrome with browser-harness.

    476 GitHub stars~601 tokensUpdated today
    Auto-check passed
  • Final Pass

    GTKottman/mortiflix-oss

    Check a rendered video before anyone else sees it: format, black or frozen frames, loudness, true peak, and a frame sheet to look at.

    476 GitHub stars~613 tokensUpdated today
    Auto-check passed

Works with

Questions about Transition Board

What does Transition Board do?

Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions…. Transition Board is an agent skill from GTKottman/mortiflix-oss. Designing every cut of a video before the animatic - for each change from one style frame to the next, the object or idea that carries it, a transition chosen from the owner's remotion-transitions library (or a new one inspired by it), its timing on the narration, and a board panel showing the real in-between frames.

When should I use Transition Board?

Transition Board fits situations like: any transitions step; tasks that involve Video production; tasks that involve Text to speech and voice.

How do I install Transition Board in Claude Code?

Run `npx skills add GTKottman/mortiflix-oss --skill transition-board -a claude-code`. Or copy the skill folder (pipelines/_shared/skills/transition-board in GTKottman/mortiflix-oss) into .claude/skills/transition-board in your project. Claude Code loads it when a task matches its description.

How do I install Transition Board in Codex?

Run `npx skills add GTKottman/mortiflix-oss --skill transition-board -a codex`. Or copy the skill folder (pipelines/_shared/skills/transition-board in GTKottman/mortiflix-oss) into .agents/skills/transition-board in your project. Codex loads it when a task matches its description.

Can I use Transition Board in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GTKottman/mortiflix-oss --skill transition-board -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/transition-board, .gemini/skills/transition-board, .github/skills/transition-board and .opencode/skills/transition-board in your project.

What does Transition Board need to run?

Going by SKILL.md and its folder, Transition Board needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js.

Does Transition Board access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Transition Board safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Transition Board use?

Transition Board is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Transition Board use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Transition Board?

Skills that share tags, products or a category with Transition Board: Ergo Remotion Video (itwanger/toBeBetterJavaer, 18k stars), Remotion Topic Explainer (Cuongyd196/remotion-cuongit-template, 172 stars), Remotion Topic Explainer (Cuongyd196/remotion-cuongit-template, 172 stars) and Make Tsx (hassancs91/claude-youtube-editor, 325 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Transition Board?

GTKottman (a GitHub user) maintains it in GTKottman/mortiflix-oss, which has 476 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.

Source: GTKottman/mortiflix-oss on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.