UDLM is a wire-compatible substrate for systems that manage data through its lifecycle from intent to realization. Any system conformant to UDLM produces data that any other conformant system can read, interpret, and exchange.
docs/start-here/— the slow walk: one short step at a time, each ending with a command that proves it worked. Start here if the model is new to you.docs/guides/quickstart.md— the fast version: one VM followed through its four records in ten minutes; every step names the file to open.docs/spec/foundations/class-tiers.md— the class system: Base, Type and Provider Class, and how where an element sits decides how portable it is.docs/spec/foundations/four-states.md— the records: intent, requested, realized, discovered.docs/guides/working-with-udlm.md— then go by role: author, reviewer, system builder, contributor.docs/guides/co-engineering.md— joining from another organization: what to read, how to check your own records, how to change the spec, how decisions are made.docs/guides/udlm-0.1-engineering-handoff.md— the engineering handoff: what is experimental, what is known open, how to check your work.
UDLM is the substrate layer. Above it sit implementations — operational
platforms that consume UDLM and turn it into a running system. The reference
implementation is DCM (github.com/dcm-project/dcm), but UDLM is implementation-
neutral: any operational platform that honors the UDLM interfaces is a peer.
Named implementations (DCM for the Resource family, DAV for the Knowledge family)
are non-normative examples — UDLM's definition, validation, and use depend
on none of them. Term definitions: GLOSSARY.md.
udlm/
├── CONFORMANCE.md What a conformant implementation must provide
├── docs/
│ ├── spec/ THE normative tier — what ratification covers
│ │ ├── foundations/ Core model: four states, entity types/families,
│ │ │ entities, layering, ownership, groups, topology
│ │ ├── contracts/ Wire contracts: identifier, time, error, retry,
│ │ │ events, provider/policy/data-store, audit
│ │ ├── governance/ Auth, registry governance, governance matrix,
│ │ │ accreditation, credentials, authority tiers
│ │ ├── lifecycle/ Ingestion, operational models, subscriptions
│ │ └── principles/ Core tenets, priorities, adopted standards
│ ├── adr/ design/ authoring/ flows/ guides/ examples/ research/
│ └── file-index.md Per-file ownership index
├── registry/ Resource Type Registry — meta-schemas, the authored
│ classes/, generated flat specs, instances, tooling
├── use-cases/ The CI-consumed coverage corpus
├── tests/ The gate suite
└── scripts/ signoff and tooling
For a per-file breakdown — what each document owns, so a rule lives in exactly one place — see docs/file-index.md.
An implementation that claims UDLM conformance:
- Implements every required contract in
docs/spec/(foundations, contracts, lifecycle, governance, principles). - Publishes a schema bundle at
/.well-known/udlm/schema-bundleperdocs/spec/contracts/schema-sharing.md. - Publishes a conformance declaration at
/.well-known/udlm/conformanceperCONFORMANCE.md. - Runs the conformance test suite,
tests/conformance.py, against the records it writes (CONFORMANCE.md§8).
See CONFORMANCE.md for full details.
UDLM is udlm/1.0, at release candidate udlm/1.0-rc1. 1.0 fixes the framework: the
version law, the four records and the class tiers, the conformance suite and the graduation
ladder. It declares no part stable: every part is experimental until a running implementation
has used it and the suite has judged its records (registry/stability.yaml).
The wire-compatibility promise applies to a part once it is stable. See
registry/VERSIONING.md for the two version axes (SPEC vs ENTITY).
The path to the tag is registry/UDLM-1.0-LOCKDOWN.md: the
surface is frozen, the open issues are binned into blockers and 1.x, and the cut follows the
exit criteria there.
Post-1.0, UDLM follows semver: two implementations conformant to the same major version are
wire-compatible, and cross-major interop requires a peer to support multiple majors
concurrently. See CONFORMANCE.md §9.
UDLM is licensed under the Apache License 2.0 — see LICENSE. This is the
project's single license declaration; other documents (e.g.
docs/spec/principles/adopted-standards.md) reference
it rather than restating it.
UDLM was extracted from the DCM repository's architecture/data-model/
directory in May 2026. Git history is preserved for files that originated
there. New substrate contracts (identifier-scheme, time-and-clock, error-model,
retry-semantics, rate-limit-and-backpressure, schema-sharing, CONFORMANCE)
were authored fresh during the split to make wire-compatibility explicit.
The split planning record is architecture/00-split-manifest.md in the DCM repo.