Repository navigation
feat(cli): beats analyses an audio or video file given directly - #6812
Merged
Merged
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Contributor
There was a problem hiding this comment.
Verdict: APPROVE · 0 blocker · 1 important · 0 nits · head 49730369
- important:
skills/hyperframes-cli/references/beats.md:11still saysbeatstakes "the project folder, never a media file" and sends agents tohyperframes audio <file> --only beats --json. That is the refusal this PR removes, and agents read that skill, so they will keep avoiding the new file form. It needs a one-line follow-up (plus askills-manifest.jsonrefresh for theSkills: manifest in synccheck).
What I checked
beats.test.ts: 24/24 at head. With basebeats.tsrestored, the new test fails withexpected 1 to be +0, which matches the body's fails-without-the-fix line.- The file form reuses
decodeandanalyzeMusicFromSignal, fails on 0 beats the same way the project form does, and writes nothing..htmlarguments still point to their folder. - CI is green at this head, including Windows render verification.
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.
What
hyperframes beats <file>now analyses an audio or video file given directly and prints the result (--jsonaddsbeatTimes). It writes nothing.hyperframes beats <folder>is unchanged and still writesbeats/<audio>.json; an.htmlargument still points to its folder.Why
Agents keep running
hyperframes beats song.mp3and were refused with "beats takes a project folder", then sent tohyperframes audio. Three feedback reports in one night hit this. Accepting the file is what they reach for, and the project form keeps working.Related work
#6544 made the refusal point at
hyperframes audio; this replaces that refusal with the analysis itself.How
The file form decodes with the same
decodeand runs the sameanalyzeMusicFromSignalas the project form, so both give the same beats for the same track. It writes no beat file because there is no project to put one in.Size
79 changed lines (60 added, 19 removed) in 5 files:
beats.ts(the file branch), its test, the CLI docs entry, thehyperframes-clibeats skill reference and the regenerated skills manifest.Test plan
beats.test.ts: a wav given directly exits 0, reportsbpmwithin 1 of 120 and 18+beatTimes, and creates nobeats/folderbeats.test.ts24/24 on three runs in a rowbeatsupdatedfails without the fix:
AssertionError: expected 1 to be +0 // Object.is equality(the file argument was refused with exit 1)What I measured
Red and green of the new test on Linux with ffmpeg.
What I did NOT execute
The built
dist/cli.jsby hand, a video file with a music track, and Windows or macOS.