editor-versions
Skill19 starsChanged 29 days agoMITView on GitHub
Use when a request in the Scrollmark editor is a matter of taste (music, caption style or font, look or grade, length or pacing, the hook or opening), when the user asks for options, another version or to compare, when they choose one of the versions, when they rejected the last attempt at something, or before restyling the whole video. Decides between one result, options in chat, and separate versions (sequences) to compare.
In this repository23 other files it gives its agents.
- agent-interviewSkill
- audio-acquisitionSkill
- brand-kitSkill
- content-autopsySkill
- edit-handoffSkill
- editor-beat-syncSkill
- editor-camera-directingSkill
- editor-captionsSkill
- editor-motion-graphicsSkill
- editor-plan-and-checkSkill
- editor-sfx-sparseSkill
- editor-soundtrackSkill
- hook-anatomySkill
- media-acquisitionSkill
- platform-fluencySkill
- read-the-roomSkill
- repurpose-engineSkill
- studio-setupSkill
- subject-compositingSkill
- trend-radarSkill
- video-formatsSkill
- video-productionSkill
- voice-matchingSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 55
Every version differs from the original in what varies: never the kit, music track, pacing or opening the original already has.
- Very specific: line 60
Music: remove the bed and add another in one plan: {"op":"timeline.deleteClips","args":{"elements":[{"trackId":"<the bed's …
- Distinctive: line 71
Never delete or rename the user's sequences unless they ask.
≈ “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.
Files
Editor Versions
Requires
A running Scrollmark editor whose commands you can call: the SocialGPT editor chat, or scrollmark mcp from @scrollmark/cli for a coding agent. The editor keeps several sequences (versions of the timeline) per project, sharing its media. Without it, the choice between one result, options in chat and separate versions still applies.
Choose how to answer
Most requests are one clear edit: make it, once. Do not offer options for a cut, a trim, a move, a fix, or anything the user specified exactly.
- Options in chat for a choice that is quick to try and quick to undo: a caption style or font, a voice, a title's wording, a colour. When the user asks "what options are there?" or "recommend one", list 3, at most 4, each one line with what makes it different, recommend one, and change nothing until they pick. When they ask for the change itself ("make the captions more fun"), apply your best pick and name 2 alternatives in one line.
- Separate versions for a choice that is slow to redo or that the user should watch side by side:
- length or pacing (a 30 s cut and a 60 s cut)
- the hook or opening
- the music bed together with the pacing cut to it
- a whole restyle ("make it cinematic", a new look or grade)
- the user asked for versions, or to compare
- the user rejected your last attempt at the same thing ("I don't like this music", "now it's too dark"): make the next try a version, so the one before is still there
- Keep the original before a restyle. Make a change to the whole look, style or pacing of a timeline the user has worked on as a new version, so "put it back" is a switch, not an undo through many steps.
One video for several platforms ("for TikTok and Reels") is one video, not versions. Make a version per platform, account or store only when the user asks for one each.
Make versions
These commands run through editor_run (editor_read for sequences.diff); a plan refuses them. Their arguments are here, so skip editor_lookup for them.
sequences.branchmakes a version in one call:stateTokenand handles fromtimeline_describeof the open sequence,name(what differs: "Music: synth", "Length: 30s", "Hook: question"), andopsas fortimeline_applyPlan. It copies the open sequence and applies the plan to the copy. The open sequence stays open and unchanged, so the same description makes the next version;open: trueleaves that version open instead. If the plan fails, no copy is left. The result has the newsequenceIdand what the plan changed. Overlays over the speech (cut-aways, cards, sound effects) move with it through arecut.sequences.switch(sequenceId) opens a sequence to look at or edit; when the person chooses a version, usesequences.pickinstead (below).sequences.diff(a,b: sequence ids) lists what differs between two.
- Gather:
timeline_describe(with the transcript when a version cuts speech) and the skills. Decide every version now, down to its plan. - Branch: one
sequences.branchper version, all in the same response, each from that one description. Put everything a version needs in its one plan; arecuttakes the music bed to the new end by itself. List the version you recommend last, withopen: true, so it is open when you answer. - Answer from the branch results.
That is three rounds for one version or several. Make one new version per turn by default: the original and the new one are the two to compare. Make more only when asked ("a 30 and a 60 second version", "3 hooks"), and offer more in your answer instead of making them.
If a branch fails, fix that plan from its error and branch it again in the next round; the others are made. If the failed one was the one you meant to open, open your next pick with sequences.switch in that round. Do not make a version with sequences.duplicate and then edit the copy: that takes three rounds per version where sequences.branch takes one.
Hook versions
A hook version changes the first few seconds and keeps the rest of the cut. Make it with one recut of the original's ranges: recut plays its ranges in the order given, so list the hook's line first, then the original's ranges without that line. To tease a line and still play it in place, list it first and leave it in the rest too.
- Question: open on a line where the speaker asks something. If they never ask one, say so and make another kind instead.
- Cold open: open on the most surprising moment or the payoff, pulled from later in the video, then go back to the start.
- Bold statement: open on the strongest claim or result.
Each version opens on a different line, and none on the line the original opens on: that version already exists, it is the original. If the best line for a kind is the original's opening, say the original already is that hook and make the others. If two kinds would open on the same line, make one and say why.
Other kinds
Every version differs from the original in what varies: never the kit, music track, pacing or opening the original already has. If one of the options asked for is what the original already is, say so and make the others.
- Ending or call to action: a
recutthat closes on a different line. - Pacing: keep the same lines. For a tighter version, trim each range closer to its first and last words and drop pauses inside it. For a looser one, widen each range by up to 0.5 s of the pause around it, from the transcript's word times. Work out each version's length from its ranges before you branch: a tighter one must be shorter than the original and a looser one longer. A cut already as tight as its words allow has no tighter version: say so and make only the looser one. Then check
durationS(original,version) in each branch result, and say so if a version did not come out shorter or longer. - Caption style: a
captionsop with akitother than the one the caption track has (kitintimeline_describe). - Music: remove the bed and add another in one plan:
{"op":"timeline.deleteClips","args":{"elements":[{"trackId":"<the bed's track>","elementId":"<the bed>"}]}}, then{"op":"music","args":{"query":"<2-4 word vibe>"}}. Never the track the original has. A plan that removes a clip gets its own approval card. - Camera moves: camera-move ops on the original's clips, in one plan.
Say what each version is
Describe each version from its branch result, not from what you meant to do: the line it now opens on, what moved, and how its length changed. A version whose plan changed nothing was not made; fix it or say so. A pacing or length version whose durationS.version equals durationS.original is the original again: say that plainly ("the looser version came out the same length as your cut"), never call it looser or tighter. Use sequences.diff (a, b: sequence ids) only when the person asks what differs, or a version took more than one plan.
When they pick
When the person says which version they want ("go with the cold open", "the second one"), call sequences.pick (sequenceId, and reason: why, in their words, if they said) through editor_run. It opens that version and marks it picked; the pick is kept for their brand, so later versions can lead with what they choose. In the SocialGPT chat they can also pick on the card of versions under your answer. sequences.list shows a pick as picked. Picking keeps the other versions. To export a version, call export.start with its sequenceId from sequences.list; it renders that version without opening it, and its result names the sequence it rendered.
Never delete or rename the user's sequences unless they ask.
Answer
Name each version by what differs, say which one is open, and recommend one with a reason in a sentence: "I made a new version, Music: synth (open now), with a synthwave bed under your cut. Your original with the acoustic track is still there as Main sequence; switch between them from the menu above the timeline. I'd keep synth, it fits the tech demo. Want an upbeat pop version too?"
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
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.

