--- name: general-video description: > Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill. --- # General video Before relying on this workflow, run: ```bash npx hyperframes skills update general-video ``` A successful no-op means the skill is current. Surface an update failure instead of continuing from memory. ## 1. Apply cross-cutting source adapters - **Media:** For any audio, image, icon, logo, voice, grade, LUT, treatment/effect, caption, or media-operation need, load `/media-use` and follow `../media-use/references/resolve.md` (resolve, adopt, reuse) and `../media-use/references/setup-providers.md` (providers, auth). Vague footage feedback and named styles use `../media-use/references/media-treatments.md` before editing; do not improvise supported media effects with CSS/SVG/opacity. Before the first authenticated provider action, run `npx hyperframes auth status` and relay its output verbatim. If signed out, apply the gate in `../hyperframes-core/references/brief-contract.md`: collaborative waits for sign-in or an explicit offline choice; autonomous states the status and continues through an available offline provider. Surface a blocker when no offline provider can satisfy a required capability. Local adoption alone does not require an auth gate. - **Figma:** If any input is a `figma.com` URL, run `/figma` first. Build from its exported assets, tokens, components, or storyboard frames. Do not use raw Figma connector calls because they skip SVG sanitization, media provenance, and brand-token binding. These adapters do not change the workflow selected by `/hyperframes`. ## 2. Start from project state Apply the first matching row; do not evaluate lower state rows: | State | Action | | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | Specific edit | Make the edit, preserve existing project decisions, then rerun affected checks. Do not reopen discovery. | | `BRIEF.md` exists | Read it. If `workflow` names another workflow and `flow` is not `companion`, hand off. Ask no brief questions. | | No brief, but `hyperframes.json` or `STORYBOARD.md` exists | Resume from files and recorded preferences. Backfill `BRIEF.md` only from known facts. | | Fresh creation | Run `/hyperframes` and its intent layer. Return here only for `workflow: general-video` or `flow: companion`. | For a new project, choose a kebab-case directory name from the brief and scaffold before writing the brief: ```bash npx hyperframes init "videos/" --non-interactive --example=blank --skill=general-video ``` Then write `BRIEF.md` at the project root using `../hyperframes-core/references/brief-format.md`. In an existing project, the root is the directory containing `hyperframes.json`. Record only the confirmed preference-backed fields named by the brief format, using `node /scripts/prefs.mjs record --hyperframes `; never record inferred defaults. Here `` is the installed `/media-use` skill directory and `` is the directory containing `hyperframes.json`. If the intent layer adopted a recipe, apply it now with `node /scripts/recipe.mjs use --hyperframes --name ` and do not ask again. ## 3. Interpret the run shape Use only the canonical terms from `../hyperframes-core/references/brief-contract.md`: | Field | Meaning | Effect | | -------------- | ------------------------------------- | ----------------------------------------------------------------------------------- | | `flow` | Who drives | `automation`: choose and execute the route. `companion`: co-create in conversation. | | `storyboard` | Whether the board is a review surface | `yes`: run plan and sketch review. `no`: build without the board. | | derived `mode` | How checkpoint gates behave | Follow the brief contract. Never ask the user to name a mode. | Do not invent synonyms for these states. An ongoing “just build it” signal is handled by the intent layer and arrives as `flow: automation`, `storyboard: no`. - For `flow: automation`, choose the route and state it in one line in the first progress update. - For a specific edit, make the edit without inventing a new route. For a hard cut, trim, splice, or reorder of existing footage, duplicate the same video source into multiple clip elements. On each copy, set the source range with `data-media-start` plus `data-duration`, then set authored placement/order with `data-start`. Separately authored audio follows the identical clip ranges and timing on matching `