Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


id: ADR-0006 title: Adopt D3: one catalog holds CanonicalModel, CanonicalMathGraph and CanonicalMathProblem status: accepted date: 2026-09-13 deciders: [paul-heyse] level: decision principles: [DM-13, DM-21, DM-23] blueprint: [§D3, §5, §14.1] review: not-required: neither review raised a finding against D3 evidence: Proposed supersedes: [] superseded-by: null revisit: A fourth artifact level is proposed, or a level needs identity, hashing or provenance conventions the other two do not share verification: tests/governance/tests/every_crate_registered.rs; the lifecycle test layer in tests/lifecycle


ADR-0006: Adopt D3: one catalog holds CanonicalModel, CanonicalMathGraph and CanonicalMathProblem

Context

Blueprint D3 states that the three artifact levels are stages in one catalog sharing identity conventions, extension types, hashing and provenance, not three applications.

Scope

Binds the artifact levels to one schema system and one catalog. It does not bind the pass boundaries between them (§14.1 does).

Drivers

Three catalogs would mean three identity schemes and three hashing contracts; the reproducibility contract (§20) needs one manifest shape.

Options

Separate stores per level — rejected: the snapshot hash of §5.3 step 7 could not span them. A single flat namespace — rejected: the seven catalog namespaces are what makes authority legible.

Outcome

One catalog, seven namespaces, one identity and hashing contract (ADR-0023), one manifest (§20.2).

Consequences

A change to the hashing contract or to the extension-type set touches all three levels at once, which is the intent.

Compensating controls

The snapshot catalog (§5.4) is the only reader of artifact bytes; tests/lifecycle exercises publish, read back and query for each level.

Confirmation

docs / build publishes the relation index (Appendix B) so the level of every relation is visible.

Pros and cons

Coupling the levels is the point: the alternative is three products.

More information

Blueprint §D3, §5 (identity and catalog), §14.1 (pass pipeline).

Status history

  • 2026-09-13 — accepted with the repository-seeding pull request (backfilled from blueprint revision 3).