An editor receives three exports of an AI video: a horizontal clip, a vertical crop, and a clean master. Which can go to the website? Which contains the title? Which generated takes would need replacing if one shot changed?
An effective AI video file naming convention gives each file a permanent identity. Version control then connects that identity to its inputs, review decisions, edits, and deliveries. The filename locates an object; the lineage ledger explains whether that object is usable for a particular job.
Here is a worked method for a shared drive and spreadsheet. Its central test is practical: someone receiving a delivery should be able to trace it back to the selected takes without asking the person who generated them.
Genflow Editorial prepared this article with AI assistance. The RILL project below is entirely fictional, including people, receipts, storage addresses, technical observations, and decisions. No video generation, editing, delivery, or live workflow test was performed. The ledger is an external editorial design, not a native Genflow asset-management feature.
Begin with the handoff question
The fictional RILL project is a silent, 12-second study of an unbranded ceramic cup. Shot 010 is a slow camera move; shot 020 shows the cup beside a folded cloth. The editor needs two versions of the picture: one without text and one with a title.
At handoff, the ledger returns this answer:
| Delivery identity | Intended use | Exact media parent | Current decision |
|---|---|---|---|
| RIL-D001 | Horizontal website clip with title | RIL-E002 | Approved for the specified website placement |
| RIL-D002 | Vertical social preview with title | RIL-E002 | Held: the crop cuts into the cup handle |
| RIL-D003 | Clean master for the internal editing library | RIL-E001 | Accepted for internal reuse; no publication authorization |
The filenames are simply ril-d001.mp4, ril-d002.mp4, and ril-d003.mov. They do not change when a review changes. “Clean,” “website,” and “held” belong in the records because they describe content or permitted use rather than identity.
A delivery may have a higher number and still be unusable for your task. Choose it by its purpose and latest applicable decision, not by sorting for the newest file.
Give every object one addressable identity
For a small project, use {project}-{record-number}.{extension}. Here, the project prefix is ril; t identifies a generated take, e an edited master, and d a delivery. Numbers increase within each type and are never reassigned. Shot numbers live in the ledger, so moving a take to a different sequence does not require renaming it.
For example, ril-t002.mp4 identifies one particular stored output. A second generation gets another take ID even if its prompt is unchanged. A re-encode gets another asset ID because its bytes have changed. Copying the same bytes to a second storage location adds a location to the existing record.
Allocate IDs through one shared register or designated owner to prevent two editors independently creating the same number. Consistent vocabulary, punctuation, ordering, and padded numbers follow the general principles in MIT Libraries' file-creation guidance. The short grammar here is an editorial choice for this example.
Four production record types carry the trace:
| Type | Records | Does a review change this record? |
|---|---|---|
| TAKE | A generated binary and its generation receipt | No; append a SELECT transaction |
| SELECT | One decision about one TAKE, for a stated use | No; append a superseding SELECT |
| EDIT | A rendered master, its media parents, and the edit recipe | No; append a review event or create a new EDIT if media changes |
| DELIVER | A destination export, its master parent, and export specification | No; append a release event or create a new DELIVER if media changes |
Supporting source records, receipts, review events, and deletion events sit alongside these four types. A media parent answers “what material made this?” A decision reference answers “who allowed its use?” Keep those relationships in separate columns.
Build the evidence packet before assembling the edit
The following compact packet contains the complete fictional trace. Every media parent and decision reference resolves to a record below. Storage URIs are illustrative private object addresses, not working downloads.
Source material and run instructions
The three source assets are roots: they have no upstream media parents in this project.
| Source ID | Content and specification | Registered by / timestamp | Storage URI |
|---|---|---|---|
| RIL-A001 | Shot 010 first frame; unbranded cup; PNG, 1920×1080, RGB | Maya Chen / 2026-09-30T08:00:00Z | s3://rill-example/assets/ril-a001.png |
| RIL-A002 | Shot 020 first frame; cup and cloth; PNG, 1920×1080, RGB | Maya Chen / 2026-09-30T08:01:00Z | s3://rill-example/assets/ril-a002.png |
| RIL-A003 | Raster title overlay reading “A quiet moment”; PNG, 1920×1080, RGBA; transparent outside centered title | Maya Chen / 2026-09-30T08:02:00Z | s3://rill-example/assets/ril-a003.png |
Maya records these as team-created materials cleared for the fictional project's stated uses. That entry is an accountable source assertion, not a license verification performed by this ledger.
The frozen instruction records are:
| Record ID | Full recorded content or settings | Storage URI |
|---|---|---|
| RIL-C001 | Shot 010: six seconds of gentle camera movement; preserve the cup handle throughout. Shot 020: six seconds of locked composition; preserve the cloth edge. Assemble in that order, without audio. | s3://rill-example/records/ril-c001.txt |
| RIL-W001 | Team workflow snapshot, revision 1; adapter “Example Adapter 1.0”; model “DemoVideo 1.0”; image-to-video; one first-frame image; 6 seconds; 1920×1080; 24 fps; audio disabled; seed and provider build ID not exposed. | s3://rill-example/records/ril-w001.json |
| RIL-P001 | “Slow camera move toward the cup. Keep the cup stationary. Six seconds. No lettering.” | s3://rill-example/records/ril-p001.txt |
| RIL-P002 | “Very gentle camera move toward the cup. Preserve the entire handle shape and opening throughout. Keep the cup stationary. Six seconds. No lettering.” | s3://rill-example/records/ril-p002.txt |
| RIL-P003 | “Locked camera on the cup and folded cloth. Maintain the cloth outline and the cup shape. Six seconds. No lettering.” | s3://rill-example/records/ril-p003.txt |
Maya froze those five records at 2026-09-30T08:05:00Z. DemoVideo and Example Adapter are deliberately invented labels, not Genflow integrations. They show where to put the exact model and adapter information available in a real run. “Not exposed” is an explicit limitation; it is not a missing field to fill with a guessed seed.
Generation receipts and TAKE records
Each receipt uses workflow snapshot RIL-W001 and contract RIL-C001. Maya is the operator for all three. The fictional observed outputs are silent MP4/H.264 files, 1920×1080, constant 24 fps, 144 frames, six seconds, Rec.709.
| Receipt ID | Prompt / first-frame source | Submitted / output stored | Provider output ID | Output TAKE | Receipt URI |
|---|---|---|---|---|---|
| RIL-R001 | RIL-P001 / RIL-A001 | 2026-09-30T08:10:00Z / 2026-09-30T08:12:00Z | demo-output-701 | RIL-T001 | s3://rill-example/records/ril-r001.json |
| RIL-R002 | RIL-P002 / RIL-A001 | 2026-09-30T08:20:00Z / 2026-09-30T08:22:00Z | demo-output-702 | RIL-T002 | s3://rill-example/records/ril-r002.json |
| RIL-R003 | RIL-P003 / RIL-A002 | 2026-09-30T08:25:00Z / 2026-09-30T08:27:00Z | demo-output-703 | RIL-T003 | s3://rill-example/records/ril-r003.json |
| TAKE ID | Shot | Exact media parent | Receipt | Binary URI |
|---|---|---|---|---|
| RIL-T001 | 010 | RIL-A001 | RIL-R001 | s3://rill-example/assets/ril-t001.mp4 |
| RIL-T002 | 010 | RIL-A001 | RIL-R002 | s3://rill-example/assets/ril-t002.mp4 |
| RIL-T003 | 020 | RIL-A002 | RIL-R003 | s3://rill-example/assets/ril-t003.mp4 |
These TAKE rows contain provenance, not acceptance decisions. The second attempt does not erase the first attempt's receipt. Nor does retaining a receipt promise that another run will reproduce identical pixels.
Selection is a transaction
Reviewer Leon Park watches each complete take against RIL-C001. Each decision has its own ID and stored record. All three have supersedes: none because these are their initial decisions.
| SELECT ID | Exact take | Decision and scope | Evidence | Timestamp | Record URI |
|---|---|---|---|---|---|
| RIL-S001 | RIL-T001 | Rejected for shot 010 in RIL-E001 | Handle opening closes at 00:02.000 | 2026-09-30T08:15:00Z | s3://rill-example/records/ril-s001.json |
| RIL-S002 | RIL-T002 | Selected for shot 010 in RIL-E001 | Handle outline and opening remain intact throughout 00:00.000–00:06.000 | 2026-09-30T08:30:00Z | s3://rill-example/records/ril-s002.json |
| RIL-S003 | RIL-T003 | Selected for shot 020 in RIL-E001 | Cloth edge and cup shape remain stable throughout 00:00.000–00:06.000 | 2026-09-30T08:32:00Z | s3://rill-example/records/ril-s003.json |
These are fictional observations illustrating evidence fields. Selecting a take authorizes the stated edit use; it does not approve a future crop or publication.
Keep the clean picture upstream of the title
Editor Sam Rivera creates two separately identified masters. Both are silent, 12-second QuickTime/ProRes 422 files, 1920×1080, constant 24 fps, 288 frames, Rec.709.
| EDIT ID | Exact media parents | Selection authority | Recipe | Created | Binary URI |
|---|---|---|---|---|---|
| RIL-E001 | RIL-T002, RIL-T003 | RIL-S002, RIL-S003 | Concatenate all 144 frames of RIL-T002 then all 144 frames of RIL-T003; no transition, text, or audio | 2026-09-30T09:00:00Z | s3://rill-example/assets/ril-e001.mov |
| RIL-E002 | RIL-E001, RIL-A003 | Inherited through RIL-E001 | Composite RIL-A003 at native size over frames 240–287 of RIL-E001; preserve all other frames | 2026-09-30T09:10:00Z | s3://rill-example/assets/ril-e002.mov |
Frame numbering starts at zero. The title therefore appears during the final two seconds. The clean master remains RIL-E001; no later export has to remove baked-in lettering from RIL-E002.
Leon records two master reviews:
| Review event | Subject | Decision and evidence | Reviewer / timestamp | Record URI |
|---|---|---|---|---|
| RIL-Q001 | RIL-E001 | Approved as clean master; correct shot order, 288 frames, no text or audio | Leon Park / 2026-09-30T09:05:00Z | s3://rill-example/records/ril-q001.json |
| RIL-Q002 | RIL-E002 | Approved as texted master; title matches RIL-A003 and appears only on frames 240–287 | Leon Park / 2026-09-30T09:15:00Z | s3://rill-example/records/ril-q002.json |
Both events have supersedes: none. If a title correction arrives, create a new title source and a new EDIT derived from the clean master. Preserve the earlier texted master and its review history.
Record the export and the permission separately
Sam produces these delivery objects. All remain silent, 12 seconds, 24 fps, Rec.709; there is no speech, caption sidecar, or audio dependency. These are project specifications, not statements of platform requirements.
| DELIVER ID | Exact media parent / master review | Export operation and specification | Created | Binary URI |
|---|---|---|---|---|
| RIL-D001 | RIL-E002 / RIL-Q002 | Full frame; 1920×1080; MP4/H.264 High, YUV 4:2:0, target 8 Mb/s | 2026-09-30T09:20:00Z | s3://rill-example/assets/ril-d001.mp4 |
| RIL-D002 | RIL-E002 / RIL-Q002 | Center crop 608×1080 from x=656, y=0; scale to 1080×1920; MP4/H.264 High, YUV 4:2:0, target 8 Mb/s | 2026-09-30T09:22:00Z | s3://rill-example/assets/ril-d002.mp4 |
| RIL-D003 | RIL-E001 / RIL-Q001 | Full frame; re-encode to 1920×1080 QuickTime/ProRes 422 HQ | 2026-09-30T09:24:00Z | s3://rill-example/assets/ril-d003.mov |
The vertical export is a distinct object with its own review. Master approval cannot settle what happens when a crop removes part of the frame.
Release owner Priya Shah records the following events after viewing each exact export. All have supersedes: none; there are no actual upload or publication receipts in this example.
| Release event | Subject | Decision, destination, and scope | Evidence / timestamp | Record URI |
|---|---|---|---|---|
| RIL-L001 | RIL-D001 | Approved for the RILL website homepage, English title, worldwide, 2026-10-01 through 2026-10-31; upload not performed | Full-clip review: title legible, cup intact / 2026-09-30T09:30:00Z | s3://rill-example/records/ril-l001.json |
| RIL-L002 | RIL-D002 | Hold for RILL social preview; English, worldwide, proposed 2026-10-01 through 2026-10-31; no upload permitted | Crop cuts handle at 00:04.000 / 2026-09-30T09:32:00Z | s3://rill-example/records/ril-l002.json |
| RIL-L003 | RIL-D003 | Accepted into RILL internal editing library; no title language, internal access only, no public release term | Full-clip review confirms no title or audio / 2026-09-30T09:34:00Z | s3://rill-example/records/ril-l003.json |
Reframing the vertical clip would create a new delivery ID and require another review event. If Priya instead changed a permission without changing the bytes, she would append a release event referencing the existing delivery and superseding the applicable earlier event.
Tie the records to the actual bytes
A file can retain its name while somebody accidentally overwrites it. Store a whole-file SHA-256 digest at intake and after each render, then verify it when transferring or accepting the object. A matching hash checks byte identity; it does not establish authorship, rights, or visual quality.
Here is the populated digest register for the fictional packet. These are synthetic 64-character values for illustration, not checksums measured from videos or images. In a real ledger, calculate each value from its associated file; never paste these into production records.
RIL-A001 97cb49f09978d1b69780edbaa805ab930bc4084cb0cb454dd067fb9485b83d37
RIL-A002 70e32aaf0042a6c3cc0f69dfda7649919adc8b87e5db292bd799a41f7173a6f8
RIL-A003 f4434d30f1e1352f520bc2b70ed7064bfa9f35d2c6233ba6a6dc623a41cc6181
RIL-T001 403ad4d58eb893a5f297b5a6e4d80daf116e2f6d66b3d4d9dc077997316565d1
RIL-T002 d4ce12454ae60be79e610f125383dd06e79ea6ef037a9b139b82d0a4aebef2ea
RIL-T003 f152f981c89ed1686be5a1c2f4773fe84341496a690200deb56135d321724cf1
RIL-E001 27fb5e5623c45aba560a876a4cfaac0beca4008f44e863d7d4289d0dd94f9d2a
RIL-E002 45971c29fae7a167fae15c0c786df71722206daebac8bba1c6d6038e495e0663
RIL-D001 08dd87023055aeed00e3e8cc2f9609d8d168f071d7788c29bca9fa8bd17495f7
RIL-D002 3e1c343929526311e5d605905ea850729f2afed216aa18f6c8c8211d8dec66b0
RIL-D003 a3aed3640580fb4b6b21b94213c64056a74b462b1aa2d25f832e4c7f7d8ae949
At handoff, search the received filename, verify its stored hash, and follow the exact parent IDs. For ril-d003.mov, the path is RIL-D003 → RIL-E001 → RIL-T002 + RIL-T003. Its clean ancestry never passes through the texted RIL-E002.
Deleting a rejected take must not delete its history
Storage cleanup needs a separate availability record. Removing a binary does not justify removing the TAKE row, hash, receipt, or decision that explains it.
For this example, records owner Priya authorizes disposal of the unused RIL-T001 binary after checking that no EDIT or DELIVER depends on it and that the project's applicable retention rules permit removal. The retained tombstone is:
event_id: RIL-X001
event_type: binary_deleted
asset_id: RIL-T001
former_uri: s3://rill-example/assets/ril-t001.mp4
sha256: 403ad4d58eb893a5f297b5a6e4d80daf116e2f6d66b3d4d9dc077997316565d1
decision_retained: RIL-S001
receipt_retained: RIL-R001
downstream_media_dependents: none
reason: rejected unused take; project retention review permits disposal
authorized_by: Priya Shah
authorized_at: 2026-09-30T10:00:00Z
performed_by: Maya Chen
deleted_at: 2026-09-30T10:05:00Z
recoverability: binary unavailable; no retained backup in this example
record_uri: s3://rill-example/records/ril-x001.json
The old asset URI now identifies a former location. A ledger lookup must show “binary deleted” and the tombstone, rather than offering a broken download as though the file still exists. The trace explains the rejected attempt, but cannot replay its pixels. Preserve the binary too whenever later visual review or a retention obligation requires it.
No universal deletion interval is implied here. The accountable project owner must apply the organization's actual retention and access requirements.
Put this into a shared drive and spreadsheet
Start with three tabs: Objects, Decisions, and Receipts. Objects holds IDs, types, URIs, hashes, specifications, and exact media-parent IDs. Decisions holds SELECT transactions, master reviews, and release events with reviewer, scope, evidence, timestamp, and supersession. Receipts holds the generation path, prompts, input IDs, exposed settings, provider output IDs, and operator. Keep disposal events available from Objects.
Use separate controlled folders for assets and record files, as the example does. Treat a “ready to send” view as a filtered list of authorized delivery IDs. Moving a file into a folder does not grant permission to use it.
Before handing over the packet, check these relationships:
- Every parent ID exists, and selected takes have explicit SELECT authority for the intended edit.
- Every stored media object has a file location, digest, and technical specification.
- Every delivery points to the correct clean or texted master and has its own destination decision.
- Every deleted object resolves to a tombstone with the retained receipt and decision.
For larger teams, a database or DAM can enforce these references. A spreadsheet can demonstrate the method, but its users still need to protect historical rows and prevent accidental overwrites.
Connect the production workflow to the record
Genflow's AI video generator keeps prompts, references, model choices, and output logic together in reusable workflows. Its AI workflow automation tool describes preserving inputs, steps, outputs, and review notes in a saved production structure.
When using Genflow, link that workflow context to your external generation receipt. Record the model path and settings actually available for your run, preserve your own prompt and input references, and register each output when it enters controlled storage. A reusable workflow and an immutable output record answer different questions: how to run the process again, and exactly which file a particular decision covered.
This article does not claim Genflow calculates file hashes, allocates local asset IDs, exports the illustrated receipt schema, enforces append-only records, validates licenses, or manages deletion and release approvals. Those are responsibilities of the team's external ledger and storage process.
The RILL packet is an original editorial example. Product statements were checked against Genflow's repository tool-page definitions on September 30, 2026; general naming guidance was checked against MIT Libraries' file-creation guidance. The synthetic project demonstrates relationships and field coverage, not tested output quality or guaranteed reproducibility.
For your next handoff, register one delivery and follow its parents all the way back to the selected takes. Resolve missing identities, decisions, and file locations before expanding the method across the project.
Turn this method into a reusable workflow
Start from one product asset, ad concept, or template and save repeatable production steps as a Genflow workflow.
