Rights-safe production
What survived the first rights-safe short build
One exact 18.804-second video survived a repeatable build and defined technical checks. Here is what that proves—and what it does not.
A finished video is easy to overclaim. The file plays, the captions look right, and a checksum matches—so it is tempting to call the work safe, approved, and ready for an audience.
The first local short in this project produced narrower evidence. It established that one exact 18.804-second file survived a repeatable build and a defined set of technical checks. It also kept a provenance record beside the render. That is useful, but it is not proof of legal clearance, editorial quality, platform acceptance, or publication.
Here is the build as an evidence trail rather than a victory lap.
1. Start with a bounded claim
The script uses a hypothetical one-star review to suggest an onboarding test. It does not quote a real reviewer, identify an app, or claim that a customer experienced the problem. The bundle manifest says the content is editorial and hypothetical, with no customer, revenue, review, or testimonial claim.
That boundary matters before rendering. A technically perfect export cannot repair an invented case study. Keeping the script hypothetical also makes the testable advice clearer: watch where a user exits, replay the first minute, remove one decision, and make the next step obvious.
2. Keep source evidence outside the MP4
Five source images feed the visual system: a workspace, a host sprite sheet, a runner background, a runner sprite sheet, and an object sprite sheet. Each source has its own SHA-256 fingerprint and adjacent provenance record. Those records identify the generation method, summarize the prompt, state that no reference images were used, and preserve the editorial review observations.
For example, the workspace record says it was generated from text with no reference images. Its review records no people, readable text, logo, watermark, or recognizable third-party reference observed. The public bundle then carries the source filename, source fingerprint, and provenance-record filename forward into its manifest.
This is stronger than writing “AI-generated” in a caption and discarding the source trail. It is still not a legal opinion. A provenance record shows what process and review were recorded; it cannot guarantee that a generation system produced no disputed resemblance or that every jurisdiction will treat the output the same way.
3. Make the transformation inspectable
The factory checks source fingerprints before rendering and stops on a mismatch. It crops and chroma-keys the source sprite sheets, animates the resulting elements programmatically, renders narration from the exact editorial script with a standard non-cloned local synthetic voice, synthesizes sound effects locally, and uses no music.
The render specification preserves four editorial beats, captions beginning at time zero, and 17 timed animation events produced by the factory’s deterministic item-index schedule. It also records the value 1000 in its seed field. The current event generator does not use randomness, so that field is a build label rather than evidence of seeded random generation. The record does not prove the animation is engaging. It does make the timing decisions inspectable instead of hiding them inside an opaque export.
The distribution bundle contains six items:
- the MP4 master;
- the exact script;
- timed SRT captions;
- platform-specific title and caption drafts;
- a public rights and provenance manifest;
- a checksum list tying those files together.
A bundle is easier to review than a loose upload folder because an edit to any listed file changes its fingerprint.
4. Rebuild twice, then compare the artifact
The deterministic proof records two generation passes. Both produced this SHA-256 fingerprint for the first MP4:
f038b85d0078164f2f91eb05dfeac916c04911f445c008f754002980cdabbc59
That result supports a precise statement: under the recorded local build path, those two passes produced identical MP4 bytes. It does not establish reproducibility on another operating system, toolchain version, processor, or future dependency set. A two-pass check is evidence of repeatability in the tested environment, not a universal reproducible-build guarantee.
The checksum list was checked again while preparing this log. The MP4, script, captions, metadata, and manifest all matched their recorded hashes.
5. Separate measurable checks from editorial review
A live probe of the current MP4 reported:
- H.264 video at 1080 × 1920;
- 30 frames per second;
yuv420ppixel format;- mono AAC audio at 48 kHz;
- 18.804 seconds duration.
The factory validation also recorded 19 unique one-frame-per-second samples out of 19, mean audio level of −14.7 dB, and maximum audio level of −0.4 dB. It checked that caption words preserve the script order, caption chunks stay within the configured size, the first caption starts on the first frame, animation-event gaps stay bounded, the expected disclosure phrases are present, and the current MP4 matches the two-pass proof. A six-frame contact sheet was generated for visual review.
These are useful rejection gates. They can catch a wrong codec, stale checksum, missing caption words, silent track, clipped level, nearly static render, incomplete disclosure, or changed master. They cannot decide whether the hook is honest, the advice is good, the pacing feels humane, the captions are comfortable for every viewer, or the visuals are sufficiently distinct from unrelated work. Those remain editorial review questions.
6. Stop at local readiness
The bundle is validated locally and marked ready for a private upload. It has not been uploaded, listed, or published. No platform has processed it, run its own rights checks, confirmed its metadata, or assigned it a public video URL.
An active session still has to use an owned first-party account, upload privately, wait for processing, inspect playback and captions, review any platform rights signal, confirm visibility, and only then decide whether to publish. If that process stops at an unlisted upload, the accurate state is “unlisted upload,” not “published.”
The reusable checklist
For the next short:
- bound the factual claim before production;
- preserve source files and generation or license records;
- fingerprint sources before transforming them;
- keep the exact script and timed captions beside the master;
- disclose generated visuals and synthetic narration accurately;
- record third-party assets explicitly—even when the correct list is empty;
- rebuild and compare exact output bytes;
- probe codecs, dimensions, frame rate, duration, and audio;
- check caption order, first-frame coverage, motion, and clipping;
- create a human-readable contact sheet;
- regenerate checksums whenever any bundle item changes;
- report local validation separately from upload and publication state.
The useful outcome of this first build is not “the machine proved the video safe.” It is a smaller and more defensible result: the project can identify the exact artifact reviewed, explain where its ingredients came from, reproduce it twice in the tested environment, and name the decisions that automation still cannot make.
Evidence notes
This log is based on the local factory README and source; all five adjacent source-provenance records; the first short’s render specification, public bundle manifest, and checksum list; the two-pass proof; and the validation report and validator source. During final fact-checking on 2026-08-12, all five checksum-list entries matched, FFprobe returned the media properties reported above, and a fresh run of the validator passed all three current short bundles. The full fingerprint, event count, and measured media properties above refer only to the first local short, “Your One-Star Review Might Be an Onboarding Bug.” The factory source confirms that its event sequence is a deterministic function of duration and item index; although the render record contains a seed field, the event generator does not call a random-number generator. No publication, platform review, audience response, customer result, or revenue is claimed.