Asset Release Registry / Asset release tooling / 2026
Retrieving a media release with its files and reviews intact.
A local Python registry checks a pinned manifest, every listed file and the selected creative's dependencies before accepting the release's recorded readiness.
Confidential work. Names and identifying business details have been changed.
- ROLE
- Software engineering
- STATE OF THE BUILD
- In progress
- RECORD UPDATED
THE WORK
The project.
Asset Release Registry lets another tool retrieve a particular media release and check the work behind its selected output. A manifest identifies the files, edits and reviews that belong together. The Python CLI compares their sizes and hashes, follows the output back through its required inputs, and checks that technical and semantic reviews refer to that same creative. A matching final file is only one part of the decision.
Consumers can pin the manifest hash instead of following a mutable current pointer. Campaign Record Validator uses an implemented local file integration to compare that release and its selected media with a campaign record. This anonymized case study covers the registry and validation code: it checks recorded reviews, but doesn't perform a new visual assessment or publish the release.
IMPLEMENTATION
Design choices.
- The discovery registry is separate from versioned manifests. It can point to the current release while a consumer pins the exact hash it reviewed, making a changed pointer visible instead of silently selecting new material.
- File integrity, technical review, semantic eligibility and reuse scope remain separate checks. Passing a checksum doesn't complete an unfinished review or repair an input the final creative depends on.
- The dependency walk focuses on the selected output without ignoring the rest of the inventory. It answers whether required inputs pass while still reporting inconsistencies elsewhere in the release.
- The required schema subset uses the Python standard library. That keeps the CLI dependency-free, but any new schema feature needs deliberate support rather than an assumption that a general validator will handle it.
- Hashes serve as content identities, not signatures. They make file changes detectable against a known pin, but they don't identify an approver or stop someone with filesystem access from rewriting the records.
HOW IT FITS TOGETHER
Architecture.
- Retrieval starts with the registry entry and expected release location. The CLI resolves the path inside the local root, compares the manifest's SHA-256, and checks that identity, version and canonical location agree before returning a release.
- A small schema validator checks record structure. Python rules then connect the fields across the manifest: selected assets must exist, review references must point to the right output, and edit steps must form the expected sequence.
- Every inventoried file receives a size and hash check. For the selected creative, an output-to-input map traces all required dependencies; a visited set avoids repeatedly traversing the same asset.
- Readiness checks combine those file results with recorded technical review, semantic eligibility, blocking claims and reuse scope. A required input failure can block the selected output, while a broken file elsewhere remains a release error.
- Campaign Record Validator reads the exact manifest and creative hashes through a separate local file integration. The registry identifies and validates the release; the campaign tool checks how that release is referenced in its own records.
Explore the architecture map9 components · 10 connections
Release validation before exact retrieval
The registry, manifest, asset files and readiness records are separate inputs to the local retrieval boundary.
Local release inputs
Validation and retrieval
Consumer result
Scroll or drag the background to move. Use the zoom buttons to resize.Arrow keys move between components. Enter selects.
Choose a component to explore
Select a numbered component on the map or use the component menu. Its details and connections will appear here.
No component selected.
All connections (10)
- 03 · Mutable release registry → 04 · Schema and identity checksregistered identity · Direct call
- 01 · Versioned manifest → 04 · Schema and identity checksrecord to validate · Direct call
- 04 · Schema and identity checks → 08 · Rejected releasepath or digest mismatch · Blocked / denied
- 04 · Schema and identity checks → 06 · File integrity checksdeclared asset references · Direct call
- 02 · Asset files → 06 · File integrity checksactual bytes · Direct call
- 06 · File integrity checks → 05 · Cross-record business rulesfile integrity outcomes · Direct call
- 05 · Cross-record business rules → 08 · Rejected releaseinconsistent readiness · Blocked / denied
- 06 · File integrity checks → 08 · Rejected releasechanged or missing file · Blocked / denied
- 05 · Cross-record business rules → 07 · Validated retrievalvalidated release · Direct call
- 07 · Validated retrieval → 09 · Exact release handoffexact retrieval · Response / return
MADE WITH
Python · JSON Schema · JSON · Markdown · SHA-256
CHECKS & RESULTS
What was checked.
A source review shows what the code does. It is not a fresh test of the running app.
Code and development records reviewedReviewed
The code, tests and available development records were checked. Reported test results keep their original scope. No fresh app or live deployment check was run for this write-up.
- Scope of this check
- Code review, not a fresh run of the app
NEXT
Still to work through.
The release can now be checked as a connected set of files and review records, rather than as one finished video. The next step is stronger promotion and independent synthetic fixtures: the CLI doesn't enforce immutable storage or move a release atomically. The implementation described here is uncommitted local source. No manifests, media validation or self-tests were run for this write-up.