Skip to content
VERASPEC
Repository
Record size corpusstable

§2 Method

Sources measured, three ways:

  1. Every conformance fixtureconformance/valid/*.json (14) and conformance/invalid/*.json (78) — skipping only ver101-unparseable-json.json (deliberately not JSON; it carries none of the five quantities to measure), plus the three published examples (standards/ver/1.0.0/example-record.json, standards/ver/1.0.1/example-record.json, standards/ver/1.1-draft/example-record-lineage.json). This is **the realistic corpus**, N=90: every record-shaped document this project has committed for a reason other than probing a size threshold.
  2. Four fixtures pulled out as designed outliers, reported separately and never folded into the realistic distribution: ver103-record-exceeds-hard-cap.json, ver104-record-size-policy.json and ver105-record-size-exceeded.json are, by `conformance/manifest.json`'s own per-fixture notes, deliberately built at the cheapest possible size to trip one specific quantity. ver106-size-should-cap-exceeded.json joins them for the identical reason — its 65 embeddings[] entries are a manufactured breach of quantity (d), not a naturally occurring record. Its file is small (22,768 bytes, smaller than several genuine fixtures), which is exactly why it has to be pulled out explicitly rather than caught by a byte-size threshold: left inside "the realistic corpus", it would make that corpus look like it reaches a quantity-(d) budget no real record here reaches.
  3. Parametric synthesis grounded only in in-repo bytes — no fabricated content anywhere: every distinct real metadata.raw[] segment found across every fixture and example above (deduplicated by content digest), plus the eight real EXIF blobs tests/test_cpnp_determinism.py::_exif_blob generates for orientations 1–8 (imported and called, not reimplemented); and a vector matrix at the two dimensions this project actually ships — 512 and 768, per `standards/reference-sets/README.md` — in fp32 and fp16, inline (vector / vector_b64) and by-reference (vector_ref), with components generated by standards/ver/1.1-draft/RELEASE.md's own closed-form construction (v[i] = sin(i + 1), L2-normalized) rather than a new one. Every synthesized shape's construction is stated in the script's docstrings so it reproduces exactly; none of it is written to disk.

Reproduce from the repository root:

bash
PYTHONPATH=services/verd/src:packages/ver-validator/src \
.venv/bin/python scripts/measure_record_sizes.py

No network, no new dependencies, nothing written to disk. The script also bootstraps sys.path itself (services/verd/src, packages/ver-validator/src and the repository root), matching the pattern scripts/migrate_named_vectors.py and scripts/make_refset_manifests.py already use, so PYTHONPATH is not strictly required — it is set above to match every other reproduction command on this branch. §3 below is this command's output, unedited; regenerating it and diffing against §3 is the verification this document was checked with.