Repository navigation
feat(cli): measure trail, box, rhythm, objects, track, flow and continuity - #7728
Draft
WaterrrForever wants to merge 1 commit into
Draft
WaterrrForever wants to merge 1 commit into
WaterrrForever wants to merge 1 commit into
Conversation
…nuity Seven measure ops written for reverse-any-video were left out when the skill landed (#6754), because the skill did not call them yet. They answer what cuts, frames and faces do not: how a title enters, where a graphic sits and how it eases, whether an element moves in the render as it does in the original, and where a rebuild has seams the original lacks. - trail: a window's frames as one picture: onion skin, the moving part's path and a heat map of change - box: one graphic found by its colour: box, ink, colours, text lines and cap height; over a range, when it is on screen, and with --track each move's ease and the holds - rhythm: moving share, holds, update rate, cuts and each shot's camera, alone or as ratios against a render (--compare) - objects: the separate elements at one time and their arrangement (ring, grid, row, column, stack) - track: one textured thing followed by template matching until a cut or a lost match, its moves fitted to eases - flow: one element's moves from optical flow, or compared with a render's on one clock - continuity: jumps, flicker and extra or missing shapes a render has and the original does not, with a sheet per event They run on main's shared measure helpers, so they get its ffprobe reasons and odd-sized box reads; window flags also take --from/--to (trail's --start/--end) and folder flags -o, as the other ops do. curve exports Row, EASES and fitMoves again for box, track and flow. continuity's Gaussian and box blurs share one separable pass. The optical-flow tests load opencv.js with loadOpenCvFirst, as diff's do. docs/packages/cli.mdx lists every measure op, ink included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NqeWUzwnWFt2hjCRT7p6ux
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
This branch was successfully deployed
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 this carries
Seven
hyperframes measureops that were written forreverse-any-videoand never reachedmain. They were staged onfeat/reverse-video-skill(Oct 22–29, identical to the copies onmiao/reverse-journey-test) and dropped from #6754 because the skill did not call them yet.trailbox--trackeach move's ease and the holdsrhythm--comparegives ratios against a renderobjectstrackflowcontinuityAdapted to
mainas it is now:defineCommandfactory, so the agent-mode contract test covers them.main's measure helpers (ffprobe reasons, odd-sized box reads). Window flags also take--from/--to(trail:--start/--end) and folder flags-o, like the other ops;rhythmusescompareWindowArgs.curve.tsexportsRow,EASESandfitMovesagain (used bybox,track,flow).continuity's Gaussian and box blurs share one separable pass (fallow flagged the duplicate). The results are the same.fallow-ignore-next-line complexity, as the existing measure code does.track,flow) load opencv.js withloadOpenCvFirst, asdiff's do, so CI runs them. The face test in the oldopencv.test.tsis dropped becausefaceVerdict.test.tsalready covers it.ref.mp4, not.reverse/source.mp4.docs/packages/cli.mdxlists every measure op, includingink, which was missing.Skipped:
mainalready has it (newer)Most of the staged work landed through #6754, #6833 and #6891 and has changed since, so
main's version is kept:commands/measure/{probe,cuts,events,frames,extract,curve,energy,ink,look,face,sync}.tsandmeasure/{command,cuts,curve,diff,drawn,energy,events,face,ink,look,media,opencv,person,segments,sync}.ts.commands/diff.ts,commands/media-use.ts,commands/media-use/generate.ts,commands/snapshot.ts,commands/transcribe.ts,api/transcribe.ts,heygen/{generate,pricing,transcribe,v3}.tswith their tests,utils/checkBrowser.tswith its test, andmedia-use/lib/*.d.mts.reverse-any-video(SKILL.md, references/match.md, references/people.md),media-use(SKILL.md, references/heygen.md, references/operations.md), andremotion-to-hyperframes(including the two deleted scripts). Also.prettierignore,scripts/check-core-skills.mjsandskills-manifest.json. Each staged handbook is identical to, or an older draft of, what is onmain, and none of them uses the seven ops, so no skill changes.Left out
analyze(commands/analyze.tsand its test,heygen/reverseDraft.ts, and itscli.ts/help.tsentries), plusdiff --explain(heygen/explain.tsand its test). feat(skills): reverse any video on the HyperFrames plan #6754 dropped these on purpose because nothing called them.analyzecallsrunJob(route, body, key, statusPath, opts), butmain'srunJobnow takes aJobRoute, so it would need rework.audioMixerfirst_ptsfix and its test. This pads a sound read from the file's start to its first decoded timestamp, for HE-AAC edit lists that played about 0.1 s early.maindoesn't have it, but the patch conflicts withmain's rewritten seek path (ffmpegSeekSeconds,misstatedByteRate, the sidecar warm-up). It's an engine-wide audio change, so it belongs in its own PR.bun.lock: the staged change only bumped version numbers.Open question
No skill calls these ops yet, which is why #6754 dropped them. Should
reverse-any-video(for examplereferences/match.md) point agents at them, or should they stay CLI-only, documented indocs/packages/cli.mdx?Tests
bun run build✓packages/clitypecheck (tsc --noEmit) ✓box,objects,continuity,rhythm,opencv(track, flow, similarity) andcurve: 6 files, 11 tests ✓cli.agentMode.test.ts -t measure: 76 tests ✓scripts/ci/flake-gate.mjs --base origin/main: each of the 5 new test files passed 10/10 under CPU contention ✓packages/clisuite: 8593 passed, 139 skipped, 16 failed in 9 files:checkSweep.chromium,cloud/offload.undecodableTrack,lambda/deploy,snapshotHdrFrame,server/fileWatcher.atomic,publishProject(the Unicode-form case), andwhisper/{manager-resolution,manager.install,sherpa}. The same 16 fail onorigin/main(58ef24c) on this machine. None of those files imports measure code, and the failures look tied to this machine's toolchain (whisper and sherpa runtimes, ffmpeg 6.0, Chrome WebGL, APFS file names).bun run lint✓;fallow audit --base origin/main --fail-on-issues✓ (its only warnings are the 12 added suppressions); comment citations and ratchet ✓;check-docs-cli-commands✓; test reachability ✓;check:cli-lazy-deps✓trackfollows a 200 px slide over 0.5–1.5 s with no loss (mean score 0.997).flow --comparegives an energy ratio of 0.97 and motion correlation of 0.98.continuityflags the one red frame drawn into the render as a jump.box --trackreads a 0.8 s linear x move.trailandtrackwrite their pictures.🤖 Generated with Claude Code
https://claude.ai/code/session_01NqeWUzwnWFt2hjCRT7p6ux