SPEC-EVO-003 — Object Registry¶
Purpose¶
The Object Registry provides deterministic, generated indexes for discovery, validation, timelines, and graph operations.
Generated artifacts¶
The default registry SHOULD contain:
registry/
objects.json
spaces.json
relations.json
versions.json
tags.json
timeline.json
manifest.json
These files MUST be generated and MUST NOT be treated as canonical authoring surfaces.
Object record¶
Each registry object entry MUST include OID, object type, title, status, version, Research Space, canonical path, content hash, timestamps, tags, and declared relationships.
Requirements¶
- Registry generation MUST be deterministic for identical repository content.
- Every generated file MUST declare its format version.
- The manifest MUST record generator version and source-tree digest.
- Stale registries MUST be detectable.
- Unknown fields MUST be preserved or explicitly rejected according to the format-version policy.
- Registry writes MUST be atomic.
- A failed rebuild MUST NOT leave a partially valid registry.
Acceptance criteria¶
- Two clean builds from the same commit produce equivalent registries.
- Editing a canonical object invalidates the corresponding registry digest.
- The repository remains usable after deleting the entire registry directory.
- Duplicate OIDs prevent publication of a valid registry.
Non-goals¶
The registry is not a manually curated catalog and is not a replacement for Git.