feat(skills): add beat-sync-montage workflow - #142
Open
Alphaxiaoteng wants to merge 5 commits into
Open
Conversation
Plans a finished beat-synced montage where cut placement serves the content, not just the metronome. Covers the creative layer the repo's music tooling leaves empty: what to cut and why, density arcs, anchors, and breathing room. Routes photo/locked-track and long-source cases back to the skills that own them.
Reads the track's section map first; the four density levels (rest / sparse / medium / dense) as a property of the whole piece, not per cut; anchors-first planning; breathing room; when to hold across or cut off the grid; and a capacity check that caps density by usable onset shots, not by BPM.
Scores each candidate on legible onset, framing, motion axis, duration, and contrast; why fast BPM is not a licence for dense cutting; motion continuity across cuts (screen direction, axis, scale, luminance); and the red flags that separate a beat edit from a generated one.
The roster check asserts the skill directory set exactly, so a new bundled skill has to be listed here to keep it green. Count moves 27 -> 28 and the stale 26-skill comments are corrected.
beat-sync-montage joins the bundled library; the loader check asserts an exact count so it has to move with it (27 -> 28).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a bundled skill for the case the repo's music tooling does not cover: the creative side of a beat-synced montage — what to cut and why, not just the mechanics of landing a cut on a beat.
Why it is not covered today
The music stack (
music-intelligence,music) is tooling:analyze_music,music_edit_plan,sync_cuts_to_music,music_image_plan. It tells the agent how to sync cuts to music. It never says which shots belong on which beat, how dense to cut, or where to breathe. So a perfectly on-beat edit can still feel mechanical, tiring, or unrelated to the picture — and nothing in the library addresses that.This skill fills the creative layer and hands off execution to
music-intelligence(it does not re-explain the tools).What the skill adds
SKILL.md— a 10-step workflow whose spine is decide density before picking cuts:When to switch workflowsblock routing photo/locked-track edits tomusic-intelligence(music_image_plan), long single-source speech tolong-video-to-shorts, and non-music-driven highlight reels tomulti-clips-to-reelsreferences/beat-density.md— section map → density arc, the four levels (rest / sparse / medium / dense), anchors-first, breathing room, when to hold across or cut off the grid, and a capacity check capping density by usable onset shots.references/shot-fitness.md— onset scoring, why fast BPM is not a licence to go dense, motion continuity across cuts, and the red flags (regular cut list, repeated shots, no visible onset) that mark a generated edit.Test surface
Both roster checks assert exact counts, so they move with the addition:
plugin-skills.verify.ts:beat-sync-montageadded toEXPECTED; stale 26-skill comments corrected to 28skill-loading.verify.ts: bundled count 27 → 28npm run verify:skillscovers these. Locally the roster check passes:skill-loading.verify.tsneeds Vite and Node 24 (only Node 22 is available here), so it could not be executed in this environment — the one assertion it adds is the mechanical count bump above, plus the body-link check, which passes by inspection since bothreferences/*.mdfiles exist and are globbed intoskill.files.Notes for review: this is an independent, self-contained skill (no dependency on #141). If you would rather fold the creative guidance into
music-intelligenceas a reference instead of a new skill, say so and I will restructure — thoughmusic-intelligenceis framed around tool usage throughout and has no workflow section today.