Skip to content

#1199 stage 9: long music - minimax/music-long and slice_audio end snap #1210

Closed

Description

@dkackman

Stage of #1199, filed by model claude-opus-5-5 via provider anthropic. Already
built on feat/long-form-media (merged 3f8ed222). The authoritative spec is the
plan (docs/superpowers/plans/2026-11-03-long-form-media.md, task named below) and
the design record. If they differ, the design record says what shipped.

Built:

  • The template templates/minimax/music-long (sections {name, caption, lyrics, seconds, audio_duration}, crossfade_ms 1500, section_fade_out_ms 400,
    section_end_snap_seconds 8).
  • In slice_audio (dw/tasks/audio_slice.py): past_end: "stop",
    end_snap_seconds, and the warnings joined_short and slice_dropped_loud_tail.
  • A warning when a section's lyric is too long for its seconds.
  • Music 3 refuses an empty lyric at validate, and its quotes scale with
    audio_duration.
  • Commits 3fedddb, d0cd849, 237ee30, d1d1912, 3996530, 688f292, b0afbd8,
    6f64155.

Observe over MCP:

  • run_workflow templates/minimax/music-long with two sections, one with a short
    lyric.
  • get_job gives the duration and warnings.
  • get_output_text on an assess_output dead-air probe.

Acceptance intent:

  • No silence of 0.5 s or more at -50 dBFS inside the piece.
  • A section that Music 3 ends early is kept at its own length, with joined_short in
    the warnings.
  • A section cut while playing is snapped to a quieter point within 8 s, with
    slice_dropped_loud_tail naming it.
  • lyrics: "" on templates/minimax/music is refused at validate.
  • The music quote grows with audio_duration.

Bench evidence: 2179e0c0c9df, d51816c55389 (snap, mini-ai:8766);
ae2e1373cff6 (no snap). Record: bench/records/audio.md Music with the 8 s end
snap
.

Owes: nothing. Deploy: done at 3f8ed222.

verify: run every pending: #1210 case.

Activity

  1. added
    target:mini-aiFound against a non-lem server (DW_TARGET=mini-ai); Don triages
    and removed on Nov 7, 2026
  2. dkackman commented on Nov 7, 2026

    @dkackman
    OwnerAuthor

    Verified on mini-ai (mps on mini-ai.lan), develop @ cac3194, by model claude-opus-5-5 via provider anthropic.

    No pending: #1210 cases exist in any regression-suite-*.md (grep found none for pending: #1210, 1210, music-long, end_snap or joined_short). So I checked the issue's acceptance intent directly:

    Acceptance Call Result
    lyrics: "" refused at validate validate_workflow(name="templates/minimax/music", arguments={"lyrics": ""}) valid: false, error at arguments.lyrics: "must not be empty". " " (whitespace only) is refused the same way. In music-long, sections[1].lyrics: "" is refused at arguments.sections[1].lyrics.
    music quote grows with audio_duration validate with audio_duration 30 / 240 0.8 min / 6.6 min, basis: derived, "scaled from the curated 3.3 min: audio_duration N vs 120"
    Warning when a lyric is too long for its seconds music-long, 21-word section at seconds: 20 warning kind text_may_overrun, words: 21, max_words: 14, at validate and in job.warnings
    Section cut while playing snaps back ≤ 8 s, with slice_dropped_loud_tail naming it job a7d0461877ed (sections short 40 s/40 s, cut 20 s/45 s) trim@short: snapped 6.67 s (40.00 → 33.33). trim@cut: snapped 1.93 s (20.00 → 18.07). Both events have kind: slice_dropped_loud_tail and the trim@<section> prefix in job.warnings.
    Section Music 3 ends early is kept at its own length, joined_short warned job e8469bf7b28c (sections early seconds 25 / audio_duration 15, tail 15/15) event kind: joined_short, short_tracks: {"track 1": [15.0, 25.0]}, snapped_tracks: {"track 2": [11.261, 15.0]}, joined 24.76 s of the 38.50 s asked. 15 + 11.26 − 1.5 crossfade = 24.76, so the arithmetic matches.
    No silence ≥ 0.5 s at −50 dBFS inside the piece assess_output(..., probe="analyze_shots") on both finals a7d0461877ed: dead_air_seconds: 0.0, no findings. e8469bf7b28c: dead_air_seconds: 0.05 at 24.7 s, which is the fade-out at the end of the track, not inside it. No findings.

    An adjacent observation, not a defect: in a7d0461877ed the short section (2-word lyric, ceiling 40 s) filled the whole 40.04 s rather than ending early. So a short lyric alone doesn't make Music 3 end early; seconds > audio_duration reliably does.

    A minor issue that doesn't block this: the text_may_overrun message appends the full lyrics constraint reason, including the empty-lyric/instrumental text, which is irrelevant to a word-rate warning. The message runs to about 1 kB.

    Outputs from both runs are kept in the default workspace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    owner:testerTester's turn to actstageA child issue: one stage of a featurestatus:verifiedTester confirmed the fix via a real MCP calltarget:mini-aiFound against a non-lem server (DW_TARGET=mini-ai); Don triagesverified-on:mps

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions