Skip to content

v0.10.0 — Shorts + interview production lines

Choose a tag to compare

@Hao0321 Hao0321 released this 28 Jul 02:45
· 2 commits to main since this release

Making the wrong edit structurally impossible.

This release grows the kit from one production line into three — long-form, vertical Shorts, and interview show — each built the same way: a knowledge layer, a mechanical gate, and a one-command driver.

The idea worth stealing, even if you never run this code

expand_caps() binds captions to segment indexes and derives their timings from the segments. Nobody touches a timeline number.

The bug it kills is a nasty one. A caption gate that checks "this caption must not span a cut" passes a whole file of captions that are each shifted one segment late — because every one of them does sit inside a segment. Just the wrong segment. The gate is green, the video is wrong, and you only find out when a human watches it. Bind to indexes instead and that class of error cannot be expressed.

Two silent failures fixed (both were in previous releases)

  • Fake green. final_delivery_qa had no profile gate — passing only a video printed DELIVER OK. It now forces the full gate set and BLOCKs on missing inputs. The signature is also keyword-only after video, because the positional form that earlier docs showed bound asscontact_out and sheets_diraudio, leaving the real inputs None and BLOCKing forever. That one looked like the gate working.
  • Fake block. detect_flash flagged every fade-to-black transition as strobing, so delivery was permanently blocked. classify_flash now separates real strobing from intentional dips and lists transitions for human review.

If you only test that a gate passes when it should, a gate that blocks everything looks like a strict gate. Test both directions.

New

  • shorts_gate.py — 12 labelled structure/caption rules; thresholds overridable via rules=
  • shorts_autopilot.pyscan normalizes to 9:16, builds a contact sheet, crops likely text regions, and auto-arranges segments by per-0.5s sharpness/brightness/motion; build gates, renders, and QAs
  • interview_gate.py + interview_autopilot.py — invite → plan → build. A guest with no verifiable achievement is blocked at plan time, and compliance is a human signature: plan writes "pending review" and the gate blocks until you pass --compliance-ok. A program that writes its own compliance stamp and then checks for that stamp is not a gate.
  • 11 interview templates + a show profile — copy lives in templates, code only fills it in
  • examples/04 and 05 run with no media and no pip install

Calibrate, don't copy

Shorts length is bimodal: 13-25s or 45-60s; 26-44s is a dead zone. Earlier versions of this kit suggested 20-45s, which is half dead zone. Every other threshold shipped here is one calibration, not a universal truth — recalibrate on your own 3-5 videos.

Full detail in CHANGELOG.md.