From c96b6abf037bf104db00bbed0a8df4fb078f683b Mon Sep 17 00:00:00 2001 From: VEED Open Source Date: Thu, 3 Sep 2026 11:19:14 +0300 Subject: [PATCH] Project import generated by Copybara. GitOrigin-RevId: 5f12ffdb29274c9c77492f59940a7a99c6c06583 --- .claude/skills/open-edit/SKILL.md | 96 +++++++++++++++++++++++++++---- AGENTS.md | 8 ++- docs/FLOW.md | 7 ++- pipeline/director-brief.md | 5 +- 4 files changed, 98 insertions(+), 18 deletions(-) diff --git a/.claude/skills/open-edit/SKILL.md b/.claude/skills/open-edit/SKILL.md index 882787b..a7c0a42 100644 --- a/.claude/skills/open-edit/SKILL.md +++ b/.claude/skills/open-edit/SKILL.md @@ -90,9 +90,13 @@ Init names which of the two it resolved (`reusing the local checkout at …` or at …`); read that line before trusting a run to be testing your changes. Resolve the supplied video to an absolute path from WORKSPACE before changing working directories. -At the start of EVERY session, before doing Open Edit work, report what setup would do (init also keeps -the workspace's SessionStart hooks current when it applies — idempotent, and a hook problem never blocks -a run): +**If the session opened with a note saying preflight is ready AND naming `OPEN_EDIT_ROOT`, that note IS +the preflight** — the hook ran it. Take the root from the note, read `AGENTS.md`, and start work. Running +init again only repeats what has already been answered. + +Otherwise, at the start of the session, before doing Open Edit work, report what setup would do (init also +keeps the workspace's SessionStart hooks current when it applies — idempotent, and a hook problem never +blocks a run): ``` npx --yes @veedstudio/openedit-cli init --dry --workspace "$WORKSPACE" ``` @@ -133,7 +137,8 @@ client discovering instructions inside the newly cloned runtime automatically. Written for the footage case. PREFLIGHT, FOOTAGE, DESIGN + RENDER and PREVIEW hold for every run; **PREP** (transcript, frames, meta), **SAMPLE ONE STYLE** (the style draw) and **MUX AUDIO** derive from a source file, so a run with no video simply has no subject for them — see INPUTS: authoring, lint, `--verify` and -`--record` are unchanged. +`--record` are unchanged. **CUT** runs only when there is an edit to make, and it splits PREP: the sources +are transcribed, the cut is assembled, and everything downstream then sees the edited timeline. ### PREFLIGHT — completed above · SCRIPT Do not run a second dependency implementation. `pipeline/scripts/preflight.mjs` (and its `.sh` twin) is only a compatibility wrapper @@ -141,6 +146,68 @@ around the init command. If `node` itself is missing, treat installing it as an (macOS: `brew install node` — the shim reports this itself; Windows: `winget install --id OpenJS.NodeJS.LTS`). The provider choice — and any sign-in or install it implies — remains the interactive PREP step. +### CUT — assemble the footage you actually want · SCRIPT (only when there is an edit to make; splits PREP) +Applies whenever the deliverable is not simply one source file played end to end: something to REMOVE +(dead air, filler, a weak take), something to REORDER, or several clips to JOIN into one piece. When the +ask is a single clip captioned as-is, this step has no subject — skip it and run the PREP step normally. + +**Where it sits.** `retime-transcript` needs the SOURCES already transcribed, so this step splits PREP +rather than preceding it: transcribe the sources (the PREP step's own batch — one command, all files), +then CUT, then run `prep` on the assembled file. Never transcribe the assembled file. + +**Measure the cut points; do not take them from the transcript.** +``` +npx @veedstudio/openedit-cli speech-probe