Workflows
The five jobs agents do most with Brollss, step by step: import a video, edit it end to end, add scenes, add captions and audio, review an edit.
For agents: /mcp/workflows.md (this page in Markdown), /llms.txt (every page).
Each workflow below is a skill of the plugin. An agent on a bare connection can follow the same steps.
Import a video from your computer
Ask: "Import ~/Videos/talk.mp4 into Brollss and tell me when the transcript is ready."
- Pick one source. A file on the user's device, or a direct link to a media file. A page that plays a video, such as a YouTube page, is not a media file. One file per project.
- Call
import_media. For a file, declare it inadd_media, keyed by its file name:{"talk.mp4": {"content_type": "video/mp4", "file_size": 734003200}}, with the exact size in bytes. For a link, passurlas the user gave it. import_mediaanswers at once withjob_id,project_idandproject_url. Showproject_urlto the user.- For a file,
PUTits raw bytes toupload_urls[<file name>].upload_urlwithContent-Type: application/octet-stream. No form, no encoding, exactlyfile_sizebytes. The address works once. If the upload fails, callreport_upload_statuswithstatus: "failed". - Call
wait_for_jobwithjob_idandwait_seconds: 20, and again until it answersdone: true. After each call, tell the userprogress.labelandprogress.percent. - An answer with
timed_out: truemeans the import is still running. Callwait_for_jobagain on the samejob_id. Never import again: that makes a second project. - When the job is done, read the project with
get_project_stateand tell the user what was created. A project you just imported is the user's own copy: edit it directly.
A refusal for the number of projects or the file size is the limit the Brollss app applies. Say which one and stop. A path on the machine works only with a Brollss server running locally; the hosted server refuses it.
Make a full edit
Ask: "Make a publishable edit of my latest Brollss project: tighter, a strong hook, scenes where they help, captions and music."
Before the first write
- Find the project with
list_projects. Copies often share a name: tell them apart bycreatedAt. Never guess an id. - Unless the user named the project to edit in place, or you imported it in this session, call
clone_projectand work on the copy. - Call
get_editing_guidewith theprojectId: it carries the way of working and the user's standing instructions. Read the style guide that fits the video withstyle. - Call
get_project_stateand keep itseditRevision. - Read the whole video before the first cut:
transcript_outline, thenread_transcriptpassage by passage. Word keys such as12:4come from these reads.
The edit
- Cuts.
find_hesitationslists fillers, repeats and false starts. Cut what stops the flow withstrike_words, keep the best take of a retake, cut whole tangents. Read thefalloutof each cut and fix what fell with it.set_silencesshortens long pauses. - Hook. Open on the strongest sentence with
move_passageand nobeforeKey. Whole sentences, 3 to 15 seconds. - Count the visuals.
check_editand itsrubricsay how many visuals the video lacks and where the longest stretch without one is. - Scenes. Draw that many new scenes (see Add scenes), then fix the ones already there.
- Zooms.
add_zoomon a punchline, held over the whole sentence. When the speaker points at the screen, read the zone onlook_at_sourceand pass it aszone. - Marks. Where the speaker says "here" or "this button",
add_markercircles, underlines or boxes the zone. - Captions, music, sound effects. See Captions and audio.
- Finish.
check_edit, fix what it lists, thenlook_at_montageon every scene and zoom, on the first 5 seconds and on the last 5. Runcheck_editagain.
The edit is finished when the request is met and check_edit lists no point, or when each point kept has its reason in one line of the report. Report what changed with montage times, and what was skipped and why.
Add scenes
Ask: "Add a scene that shows the three steps the speaker lists at 1:20."
- Once per session, read
get_scene_contract: the page rules, the recipes and the grading grid.get_scene_examplesgives graded example pages. - Pick a whole idea, with
fromKeyandtoKeyfrom the transcript. list_layoutsfor that moment: which layouts hold, and the box of each.P1fills the frame,P9is transparent over the video, the others keep the speaker beside the scene.get_scene_briefgives the beats in seconds, the content box, the face and the measured rules. Ifrangesays the moment is too short, use thetoKeyit proposes.- Write the whole page. No network, GSAP core only, images inline as
data:. At most 3 MB with images, 600 KB without. measure_scenefilms the page over the real video and lists what is broken, with distances in pixels. Fix everything at once and measure again. Two or three measures make a scene.insert_scenewith the same arguments and page, thenlook_at_montageat that moment.
To change a scene already there, read it with get_scene. set_scene_text changes the words of a template, set_duration its length, move_broll its anchor, apply_layout its layout, set_layout tunes that layout (the speaker's share and side, where the scene sits, the speaker's card: place, size, shape, angle, framing, how it comes in), set_broll_pip puts the speaker in a window over it. A new look is a new page: measure_scene, then insert_scene with its brollId.
Captions, music and sound effects
Ask: "Caption the key sentences, put calm music under the voice, and add a whoosh on each scene."
- Captions.
get_captionsgives the track, its style and the catalogue.set_captionscovers the whole video or chosenranges;add_captioncaptions one short passage. A style the user chose stays unless the user asks to change the look (lookAsked: true). - Music.
list_musicgives the track ids,set_musicsets one. Leavevolumeout: the level starts where the app's mixer starts.ducksets how much the music drops under the voice:subtle,normalorstrong. - Sound effects.
list_sfxlists the library and what is placed.add_sfxrides on the visual on screen at that moment;remove_sfxtakes one out. One effect per scene entrance or key element. - Mix.
check_audiomeasures the music and the effects against the voice, in dB. Music sits well 15 to 25 dB under the voice. Fix what it reports, then run it again.
Review an edit
Ask: "Review my Brollss edit and list what to fix before I publish."
get_project_state: length, cuts, scenes, zooms, captions, music.check_edit: thetimeline(what gets in each other's way), thescenes(each scene's pace) and therubric(hook, retakes left, zooms, music), with the visual density as a note, never a point to fix.check_audio: the music and the effects against the voice.look_at_montageon the first and last 5 seconds, every scene and zoom, and every momentcheck_editnames.- Report one line per finding: the montage time, what is wrong, the tool that fixes it. Then the verdict. This review writes nothing.
