Skip to content

feat(skills): add beat-sync-montage workflow - #142

Open
Alphaxiaoteng wants to merge 5 commits into
0xsline:mainfrom
Alphaxiaoteng:feat/skill-beat-sync-montage-standalone
Open

feat(skills): add beat-sync-montage workflow#142
Alphaxiaoteng wants to merge 5 commits into
0xsline:mainfrom
Alphaxiaoteng:feat/skill-beat-sync-montage-standalone

Conversation

@Alphaxiaoteng

Copy link
Copy Markdown
Contributor

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:

  • Explicit When to switch workflows block routing photo/locked-track edits to music-intelligence (music_image_plan), long single-source speech to long-video-to-shorts, and non-music-driven highlight reels to multi-clips-to-reels
  • Read the track first (BPM, meter, sections, energy shape) — never request the CLAP embedding
  • Fitness check before planning: unsuitable footage is reported, not force-cut on every beat
  • Density as a property of the whole piece (verse ≠ chorus), anchors-first planning, deliberate breathing room
  • Motion-continuity QA (screen direction, axis, scale, luminance) that only shows up when watching, not when reading a cut list

references/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-montage added to EXPECTED; stale 26-skill comments corrected to 28
  • skill-loading.verify.ts: bundled count 27 → 28

npm run verify:skills covers these. Locally the roster check passes:

plugin-skills.check: ok (28 技能 / EXPECTED=28)

skill-loading.verify.ts needs 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 both references/*.md files exist and are globbed into skill.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-intelligence as a reference instead of a new skill, say so and I will restructure — though music-intelligence is framed around tool usage throughout and has no workflow section today.

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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant