35. Schema, vocabulary, domain-pack, and migration control plane
The registry is executable governance. It supplies immutable schemas, canonicalization metadata, vocabulary definitions, validation shapes, policy bundles, migration programs and golden vectors. Runtime services resolve only content-addressed locks that…
The registry is executable governance. It supplies immutable schemas, canonicalization metadata, vocabulary definitions, validation shapes, policy bundles, migration programs and golden vectors. Runtime services resolve only content-addressed locks that were promoted through the registry state machine; they never execute definitions fetched from a user-controlled URL.
#35.1 Registry artifact manifest
Content-addressed registry artifact
RegistryArtifact {
artifactId, artifactKind, namespace, name, semanticVersion,
contentDigest, canonicalProfile, mediaType, byteLength,
dependencyConstraints[], resolvedDependencyLocks[],
compatibilityClaims[], supersedes[], deprecates[],
publisherPrincipalId, reviewerDecisionRefs[],
sourceRevision, buildProvenanceRef, signatureRefs[],
state, activatedAt?, deprecatedAt?, revokedAt?,
testVectorManifestDigest, resourceBudget, licenseRef
}
artifactKind in {
jsonSchema, vocabulary, graphShape, typeRecipe, domainPack,
policyBundle, canonicalProfile, migrationProgram, testCorpus, sdkPackage
}#35.2 Promotion state machine
| State | Permitted use | Transition gate |
|---|---|---|
| DRAFT | author workspace only | Schema parses; namespace and ownership valid |
| CANDIDATE | isolated test tenants | Dependencies locked; static safety/resource scan passes |
| REVIEWED | release-candidate corpus | Independent semantic/security review decisions recorded |
| ACTIVE | new canonical writes | Compatibility scan, golden vectors, migration/loss plan, signatures and rollout approval |
| DEPRECATED | historical read; new writes warn or deny by policy | Replacement relation and end-of-write date published |
| REVOKED | verification/read only under explicit incident handling | Security/integrity incident and superseding advisory |
| RETIRED | offline archive interpretation | All supported writers migrated; retention and export path confirmed |
Revocation blocks new use; it does not make historical bytes uninterpretable. Verifiers report both validity-at-signing and current registry/key status. Activation is monotonic per namespace/version and never reuses a version string for different bytes.
#35.3 Dependency resolution and pack sandbox
Deterministic dependency resolver and validation sandbox
resolve(rootArtifacts, registrySnapshot):
candidates = exact content-addressed versions in snapshot only
solve semantic-version constraints deterministically:
1. exact lock wins
2. otherwise highest non-revoked version satisfying every constraint
3. tie-break by bytewise artifactId
reject cycles except vocabulary cross-reference groups explicitly marked cyclic
reject namespace ownership conflict and duplicate term definitions
emit RegistryLockfile(sorted artifacts, snapshotDigest, resolverVersion)
validate(pack):
no network, filesystem, clock, randomness or process access
bounded AST nodes, recursion depth, input graph size, output findings and CPU
stratified deterministic rules only; no write or authorization side effects
timeout/error => INDETERMINATE and fail closed for required safety/policy checks- A domain pack may add terms, recipes, constraints, mappings and stricter rules inside its declared scope. It cannot redefine kernel identity, time, evidence, rights, canonicalization or action semantics.
- Validation and capability rules are pure functions over a bounded input snapshot. They return structured findings/proofs and cannot query live external services.
- External registry adapters produce attributed mapping records. They never insert external class codes directly into core columns or promote a registry assertion into ownership.
- Pack outputs carry the exact lockfile and evaluation engine digest so a later implementation can reproduce the result.
#35.4 Compatibility classification
| Class | Definition | Required evidence |
|---|---|---|
| wire-backward | new reader accepts every old valid canonical instance | Complete old corpus plus generated boundary values |
| wire-forward | old reader safely preserves/rejects every new instance as declared | Unknown-field/term and extension round-trip vectors |
| semantic-equivalent | projection under stated policy produces the same propositions and units | Bidirectional transform plus proof of no information loss |
| semantic-refinement | new form adds precision without contradicting old meaning | Downcast loss manifest and query-equivalence tests |
| policy-breaking | visibility, authority, purpose or duty meaning changes | New policy/version, impact review, re-consent or explicit migration |
| digest-breaking | canonical bytes differ for previously valid input | New canonical profile; dual verification and representation binding |
| storage-only | indexes/partitions change with identical canonical behavior | Replay/golden digest equality and rollback plan |
#35.5 Migration program contract
Append-only schema migration
MigrationProgram {
migrationId, fromSchemaLock, toSchemaLock, programDigest,
engineProfile, preconditions[], mappingRules[],
informationLossClasses[], defaultSources[],
expectedFindingCodes[], goldenVectorsDigest,
reviewerDecisionRefs[], activationWindow
}
MigrationReceipt {
sourceRecordId, sourceDigest, targetRecordId, targetDigest,
migrationId, programDigest, executedAt, executorWorkload,
findings[], lossManifest[], validationResult, rollbackRelation
}
Rules:
- Historical RecordCore is never rewritten.
- Upcast creates a derived replacement record and explicit relation.
- A supplied default names its source and epistemic lane.
- A lossy transform cannot claim semantic equivalence.
- Bulk activation requires corpus scan counts and quarantine thresholds.#35.6 Software and definition supply-chain gates
| Gate | Minimum technical evidence |
|---|---|
| source | immutable revision, protected review path, named maintainers and source provenance |
| build | hermetic/reproducible where feasible, dependency lock, builder identity and SLSA-style provenance |
| package | artifact digest/signature, SBOM, license, vulnerability status and target compatibility |
| distribution | TUF-style signed metadata roles, expiry, rollback/freeze protection and key rotation |
| activation | canary tenant/partition, conformance evidence, database migration proof and rollback/forward-fix plan |
| runtime | loaded digest exposed in health/receipts; unexpected definition or binary digest prevents readiness |