#The shape of a run
confirmed verdict advances.ContractPlane / reference domains / OpenClip
The agent-orchestrated video editing harness
You direct. Agents argue, verify, render.
Python ships the tools, agents ship the judgment, the human ships the taste.
One long video in — cut-edited original, captioned 9:16 shorts, long-form candidates, multilingual subtitles, and hook-matched thumbnails out. No creative decision is made without you.
# skills → Claude Code, Codex (tested), Cursor + any skills-protocol agent
npx skills add Q00/openclip
# the oc CLI (ffmpeg + Python 3.11+ required)
uv tool install openclip-agent
oc doctor
ContractPlane · GitHub · PyPI · Quick start · Tool reference · Design · Domain Pack
confirmed verdict advances.OpenClip publishes its public entrypoint, 13 worker-role contracts, four flow templates, policies, permissions, and evidence requirements as a provenance-pinned Domain Pack.
OpenClip works today through the $oc skill and oc CLI.
ContractPlane v0.1 validates and deterministically compiles the pack, but has no ContractPlane
execution adapter yet.
flow1 Cut-editProxy → parallel STT → a cut-editing debate: proposers argue through filler / pacing / narrative lenses, a judge reconciles → cut-edited original + subtitles.
flow2 ShortsOne long video → hook mining across transcript sections → captioned 9:16 shorts, ends snapped to the payoff's last word — plus a thumbnail per short.
flow3 AssembleWeave N source videos into one longform, then mine its hook moments into shorts.
flow4 ThumbnailsHook-matched thumbnails: the most representative frame with a burned headline, and/or a gpt-image design.
confirmed advances.oc steer --note "cut the intro harder" mid-run;
workers honor it over their own judgment. Nothing creative auto-converges past you.resumed: true) instead of re-billing Whisper and gpt-image.
If you are an AI agent evaluating or driving this harness: start at
llms.txt (repo map +
invariants), then AGENT_GUIDE.md
(flow routing, fan-out widths, verification rules). Every oc subcommand prints
exactly one JSON object; errors print {"error": "...", "type": "..."} and exit non-zero.