18Standard
Provenance
NO ASSET WITHOUT A RECORDVALIDATOR: tools/validate_provenance.pySCHEMA: docs/MILO_PROVENANCE_STANDARD_V1.md
Every image in this system can say who made it, where it lives, what rights allow its use, and what Milo did to it. The validator fails the build if any of that is missing.
Three source kinds18.01
What kind of thing is this?
Human-created sourceA work of art or a photograph made by a person, held by an institution or agency, with explicit reuse rights. The original is never altered; the file in
originals/ is the institution's own reproduction.Computationally transformedA Milo derivative: the original run through a named recipe by
milo-image-engine. The record carries the recipe, the full config and the source id, so it can be regenerated and always credits the human source.Generated sourceImagery made by a model (Codex Image 2.5) for UI visualisation, icon exploration or storyboards. Carries generator, model, date and inputs. Never used in place of a real artist or a real photograph.
Schema18.02
Required fields
| Field | Meaning |
|---|---|
id req | Stable slug; derivative filenames derive from it |
type req | art · nature · generated |
title req | The institution's title, unedited |
creator req | Artist, photographer, agency or generator |
institution_or_agency req | Holding institution or issuing agency |
source_url req | The object page at the institution |
rights req | Rights statement in the institution's words |
rights_url | Where the statement lives, when published |
date_accessed req | ISO date the record was verified |
local_file req | Path inside the package |
source_kind req | One of the three kinds above |
derivatives[] | Each: file, recipe, config, engine, source, source_kind |
object_id req | Accession / object number |
date, medium | As catalogued |
image_source | The IIIF or CDN URL fetched |
theme | Curation theme: creation, sublime, light, work… |
location | Place, orbit or field |
date | When available |
agency | NASA, Library of Congress… |
subject | mountains, water, clouds, geology, astronomy… |
generator req | Tool and account, e.g. Codex Image 2.5 (codex --2) |
model | Model identifier |
source_inputs req | Prompt, palette tokens, reference ids (may be empty list) |
transformation_status | untransformed · transformed by recipe |
Validator18.03
Deterministic, fails loud
Runs
python3 tools/validate_provenance.py over both manifests, before packaging and in the JEV provenance gate.Fails onAny missing required field; an art record without
object_id; a generated record without generator or inputs; a local_file or derivative that does not exist on disk; a derivative whose source is not a record.ReportsCount by type and source kind, and the first missing fields by record id. Exit code 1 on any failure.
Downloadsart/manifest.json · art/manifest.csv · nature/manifest.json · nature/manifest.csv · the standard
Register18.04
Every packaged source
| Kind | Creator | Title | Institution / agency | Object | Rights | Source | Deriv. |
|---|