A readable file is attached to the wrong shot.
Correct the file-to-shotId binding and recheck its internal identity. Regenerating a hash alone cannot repair the editorial mismatch.
Hands-on recipe
Keep shotId, exact filename, SHA-256 and order consistent before assembly. These checks establish file identity and sequence, not visual continuity or the quality of generated footage.
Includes executed local fixtures, scripts and receipts. These checks do not represent a video-generation service run.
node run-recipe.mjs --out ./my-run
The fixture writes three distinct shot JSON files and a manifest with shotId, order, file and sha256. The editorial identity is opening/hinge/hold, while the basenames are shot-01.json through shot-03.json. This distinction lets a renamed file remain a separate reviewed decision.
Check the exact row count, unique shot IDs, sequential order values and unique safe filenames. A duplicate ID is a failure even when its bytes can be opened; a reordered manifest is not silently sorted into a different editorial sequence.
Require the file to exist, its SHA-256 to match and its internal shotId to equal the manifest. The suite swaps a filename while keeping the original hash, then rebinds the hash to the wrong shot as a separate case. The second case still fails identity binding.
Inspect eight assertions and six expected-rejection records. A missing shot, duplicate ID, wrong order, swapped filename, wrong internal identity and duplicated file each retain a concrete failure reason. Use a separate video review for action and continuity.
Correct the file-to-shotId binding and recheck its internal identity. Regenerating a hash alone cannot repair the editorial mismatch.
Assign the intended distinct shotId to the incorrect record and its file content, then recompute only that file’s expected hash.
Use the manifest order values as the handoff contract and reject row-position disagreement; do not substitute alphabetical file sorting.
The manifest makes the three shot specifications reviewable as a package. It does not inspect footage, enforce narrative meaning or demonstrate any video model run.