open-take
CLI

check

Judge an existing take without rendering anything — the standalone post-shoot verdict.

open-take check demos/myapp.mp4             # exit 0 = postable, 2 = defective
open-take check demos/myapp.mp4 --no-strict # findings print, exit stays 0

check re-runs the post-shoot gates against a take already on disk — the same verdict make and render apply to their own output, for the take that got here some other way: an older CLI, a copied working dir, the editor's Export, or plain "is this still postable?".

What it judges:

  • cursor audit — every pointer-landing beat's drawn cursor, template-matched against the compositor's own math (the gate that catches a mis-drawn master before it ships)
  • dead opening — unpainted head, measured on the kept capture's pixels
  • static tail — a delivered video that ends frozen
  • zoom vs payoff — a zoom punched into a global repaint
  • skipped steps — re-printed from the capture log; missing beats keep a take unpostable no matter how clean its pixels are
  • plan-target warnings — the pre-capture findings recorded in capture.json (late-bound targets, ambiguous names) re-surface here, so the suspects stay visible after the shoot

The defects block

ANY judged finding — the warn-only tier included — makes check print the machine-readable report (one JSON object between --- open-take defects v1 --- and --- end open-take defects ---) and write it to <name>.take/defects.json; a fully clean verdict removes a stale one. Exit 1 (could not judge) emits no block and leaves any existing defects.json untouched — an unjudged run has no verdict to report, and keeping the last judged report beats replacing it with a partial one. make and render print the same block on their defective verdicts. Each entry carries gate, severity, field path, measured values, and the computed fix where one exists — relay it verbatim to whatever authored the plan (the skill's repair loop: at most two rounds, fix only what the report names).

Exit codes

exitmeaning
0no error finding, no skipped step — the summary line says
2defective: at least one error finding or skipped step (--no-strict downgrades to warnings and exits 0)
1could not judge — a gate never ran (no working ffmpeg, an unreadable file, a capture log that exists but won't parse). "No error found" by a gate that never ran is not a clean bill.

READ-ONLY by contract

check never rewrites the take — the master, the capture, and the composition are untouched (defects.json, the verdict's own report file, is the one thing it writes). When the cursor audit fails, render is the healing move — it re-renders from the frozen capture and re-audits (the transient-misdraw class heals on one re-render; a repeat failure is a real renderer bug). check prints exactly that hint when it applies.

A take without its capture.json (an old or cleaned working dir) is still judged: the pixel gates and the cursor audit run; only the coverage checks and the skipped-step re-print stand down, and check says so.

On this page