Skip to content

Workflow skills reach render before FFmpeg is checked, and the docs only offer brew install ffmpeg #5232

Description

@pixagentur

Problem

FFmpeg is the only hard prerequisite that nothing before render needs. init, lint, check, snapshot and preview all run without it, so an agent can go through planning, several design rounds and the user's approval, and only then hit "FFmpeg not found", at the moment the user is waiting for the file.

  • motion-graphics/SKILL.md lists under Prerequisites "brew install node ffmpeg. npx hyperframes doctor once", but no numbered step runs doctor. hyperframes/SKILL.md and hyperframes-cli/SKILL.md (development loop steps 1 to 10) do not run it either; hyperframes-cli only says "The CLI requires Node.js 22 or newer and FFmpeg." (main @ 042ec2e, identical to the installed skills.)
  • render does fail fast (fix(cli): pre-flight FFmpeg check and propagate render failure stage #1149), but that is still the last step.
  • The only remedy anywhere in the skills and in doctor's hint is brew install ffmpeg. On a Mac without Homebrew (our case) that is a dead end for an agent, which then improvises. We ended up with a project-local npm ffmpeg-static + ffprobe-static prepended to PATH.
  • The CLI already has two clean answers that are documented nowhere in the skills or in doctor-browser.md: HYPERFRAMES_FFMPEG_PATH / HYPERFRAMES_FFPROBE_PATH (fix: run the configured ffmpeg and ffprobe everywhere and say when an upload was not checked #4611) and project-local discovery in .hyperframes/bin (fix(cli): discover project-local ffmpeg binaries #2464, resolved against the working directory in packages/parsers/src/ffBinaries.ts).

Proposed solution

  1. Skills: run npx hyperframes doctor --json | jq -e '.ok' (or at least check FFmpeg/FFprobe in the payload) right after init / project resume in the entry skill, so every workflow inherits it, and surface a missing render dependency before design work starts.
  2. Docs: in hyperframes-cli/references/doctor-browser.md ("Missing FFmpeg") and in the doctor hint, add the non-Homebrew paths: the two env vars, .hyperframes/bin, and e.g. a static build (npm i ffmpeg-static ffprobe-static in a scratch folder, then point the env vars at the binaries).
  3. Optional CLI: init (or the first preview/check) prints a one-line warning when FFmpeg/FFprobe cannot be resolved, so the gap shows up without anyone remembering to run doctor.

Alternatives considered

Additional context

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions