From d016247e0e0e10adab043bacd86c5ecc8c500725 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 29 Oct 2026 23:30:10 +0000 Subject: [PATCH] chore(skills): satisfy CI gates for reverse-any-video - docs: list diff, measure, analyze and billing in "Find your command" in docs/packages/cli.mdx, each with its own section. - skills: bring media-use/SKILL.md under its 5120 B budget by pointing setup, direct-recipe and treatment detail at the references that already hold it; the sign-in, credits, --max-credits and billing rules stay in SKILL.md. - comments: register transcript.json and REVERSE.md as project files for the citation checker, and drop a history note from face.test.ts. - comments: cut restating prose or move it into names so every changed file is at or under its comment share. Allowlist the two deleted remotion scripts in check-no-main-deletions. Co-Authored-By: Claude Opus 5.5 (1M context) --- docs/packages/cli.mdx | 101 +++++++++++++++++- packages/cli/src/auth/browser.ts | 7 +- packages/cli/src/auth/oauth.ts | 7 +- packages/cli/src/commands/auth/login.ts | 7 +- .../cli/src/commands/auth/status-guidance.ts | 1 - packages/cli/src/heygen/plan.ts | 4 +- packages/cli/src/heygen/pricing.ts | 5 +- packages/cli/src/measure/cuts.ts | 13 +-- packages/cli/src/measure/drawn.ts | 20 ++-- packages/cli/src/measure/energy.ts | 3 +- packages/cli/src/measure/face.test.ts | 2 +- packages/cli/src/measure/face.ts | 6 +- packages/cli/src/measure/segments.ts | 9 +- scripts/check-comment-citations.mjs | 2 + scripts/check-no-main-deletions.mjs | 8 ++ skills-manifest.json | 2 +- skills/media-use/SKILL.md | 24 ++--- .../media-use/references/setup-providers.md | 18 ++-- 18 files changed, 161 insertions(+), 78 deletions(-) diff --git a/docs/packages/cli.mdx b/docs/packages/cli.mdx index 1ba90e01e4..20c1d62ee6 100644 --- a/docs/packages/cli.mdx +++ b/docs/packages/cli.mdx @@ -28,11 +28,12 @@ npm install -g hyperframes | Bring in source material | [`capture`](#capture), [`media-use`](#media-use), [`transcribe`](#transcribe), [`tts`](#tts), [`remove-background`](#remove-background), [`media-treatment`](#media-treatment), [`beats`](#beats), [`audio`](#audio), [`normalize-audio`](#normalize-audio), [`models`](#models) | | Look at it, or share it | [`preview`](#preview), [`present`](#present-and-play), [`play`](#present-and-play), [`publish`](#publish), [`open`](#open-and-catch-up), [`catch-up`](#open-and-catch-up) | | Find problems | [`lint`](#lint), [`check`](#check), [`snapshot`](#snapshot), [`keyframes`](#keyframes), [`compare`](#compare-and-grade-compare), [`grade-compare`](#compare-and-grade-compare) | +| Rebuild a video | [`measure`](#measure), [`analyze`](#analyze), [`diff`](#diff) | | Edit from the terminal | [`timeline`](#timeline), [`history`](#history) | | Make a file | [`render`](#render), [`benchmark`](#benchmark) | | Render somewhere else | [`cloud`](#hyperframes-cloud), [`lambda`](#hyperframes-lambda), [`cloudrun`](#hyperframes-cloudrun) | | Fix your setup | [`doctor`](#doctor), [`browser`](#browser), [`upgrade`](#upgrade), [`docs`](#docs), [`info`](#info-and-compositions), [`compositions`](#info-and-compositions), [`clean`](#clean) | -| Connect other tools | [`auth`](#hyperframes-auth), [`skills`](#skills), [`usage`](#usage), [`figma`](#figma-and-events), [`events`](#figma-and-events), [`telemetry`](#telemetry), [`feedback`](#feedback) | +| Connect other tools | [`auth`](#hyperframes-auth), [`billing`](#billing), [`skills`](#skills), [`usage`](#usage), [`figma`](#figma-and-events), [`events`](#figma-and-events), [`telemetry`](#telemetry), [`feedback`](#feedback) | `validate`, `inspect`, and `layout` still work but are [deprecated](#deprecated-validate-inspect-and-layout). Use `check` instead. @@ -1503,6 +1504,88 @@ session, and it is where new work should go. Their flags are unchanged — run `npx hyperframes inspect --help` if you are maintaining automation that still calls them. +## Rebuild an existing video + +These commands serve the `reverse-any-video` skill: measure a video, have HeyGen +draft its timeline, then score your rebuild against it. + +### `measure` + +Measures a video file and prints JSON. Each measurement is a subcommand; run +`npx hyperframes measure --help` for its flags. + +```bash +npx hyperframes measure probe ref.mp4 +npx hyperframes measure cuts ref.mp4 +npx hyperframes measure frames ref.mp4 --events +npx hyperframes measure box ref.mp4 --start 1 --end 2.5 --roi 200,300,600,200 --track +``` + +| Subcommand | What it reports | +| ------------ | --------------------------------------------------------------------------------------- | +| `probe` | Displayed size, frame rate, duration, sound, and what to fix before rebuilding | +| `cuts` | Hard cuts from the frame-to-frame difference, and the shots between them | +| `events` | Cuts, flashes, appears, disappears and holds; `--map` adds the sound's hits | +| `frames` | Frames as pictures: chosen moments, an overview sheet, a range, or strips around events | +| `trail` | An onion skin of a window's frames, the moving part's path, and a heat map | +| `extract` | A still or a clip cut from the video, cropped to a region, as project media | +| `box` | One graphic's box, ink, colours, text lines and cap height; over a range, its moves | +| `ink` | Where text ink sits in a region, for timing and font size | +| `curve` | Each move of one element: start, duration, overshoot and the closest GSAP ease | +| `rhythm` | Moving share, holds, update rate, cuts, and each shot's zoom, pan or handheld | +| `objects` | Separate elements at one time: count, sizes and arrangement | +| `energy` | How much two clips move, and whether at the same moments | +| `look` | Brightness, contrast, saturation and warmth, alone or against another video | +| `track` | One textured thing followed frame by frame from its box | +| `flow` | One element's motion from optical flow inside its box | +| `face` | The face's size and position over a window | +| `sync` | The lag between mouth motion and the voice | +| `continuity` | Seams your rebuild has and the original does not | + +### `analyze` + +HeyGen's video model watches a video and returns JSON: with `--preset reverse` +(the default) a draft timeline, with `--prompt` an answer to your question and +the moments it cites. It uploads the video and needs a HeyGen sign-in or API key. + +```bash +npx hyperframes analyze .reverse/source.mp4 --preset reverse +npx hyperframes analyze clip.mp4 --prompt "Does the logo animate in or cut in?" +``` + +| Flag | Description | +| ------------------- | ------------------------------------------------------------------- | +| `--preset` | `reverse`: the draft of a reverse spec (default) | +| `--prompt` | Ask your own question instead | +| `--start` / `--end` | The window in seconds (default: the whole video) | +| `--fps` | Frames a second the model sees (default 6; long parts get fewer) | +| `--model` | HeyGen's analysis model | +| `--out` | Where to write the draft (default `.reverse/