About visual-mode
A Remotion repository skill describing Visual Mode sequence identity and tracking behavior, along with a reminder to maintain Browser Studio route parity documentation.
Key features
- 01Sequence identity field notes
- 02Hot-reload tracking behavior
- 03Node path and stack mapping guidance
- 04Browser Studio route checklist reminder
Use cases
- 01Reasoning about sequence state across hot reloads
- 02Mapping sequence node paths to identifiers
- 03Updating Browser Studio API routes
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill visual-modeAfter installing, type/visual-modein Claude Code to confirm it loaded.
Details
From the project READMEVisual Mode is a feature in Remotion Studio that allows one to visually edit Sequences.
I've made the following observations:
Fields
- overrideId -> does keep the identity the same of a sequence, even if the file / line / column changes
- Sequence
stack-> changes on hot reload. shared by multiple sequences which have different overrideIds - Sequence file, line, column (symbolicated stack) -> does not change, but needs to be calculated asyn
nodePath-> same identity, even if line, stack and overrideId changes. async
nodePath + index is ideal way to keep track of the expanded state. that’s the end goal.
Once nodePath is mapped to overrideId, it doesn’t change otherwise component would remount and overrideId works change.
If the same stack is found already used by another sequence, we re-use the overrideId.
nodePath to symbolicated stack could theoretically change on every file change. but multiple sequences can share the same stack and then they all have the same nodePath.
We should only fetch the nodepath for every stack once
different unsymbolicated stacks could lead to the same symbolicated stack, because of fast refresh
unsymbolicated to symbolicated stack does never change because if it does, it is a different stack due to fast refresh
Browser Studio route tracking
Whenever adding a new Studio API route, also add it to the Browser Studio parity checklist in issue #9807. Do this in the same change, even if the route is intentionally server-only; place it in either the required Browser Studio operations or the explicitly unsupported routes.