ADR-0004: Separate observations, hypotheses and executable DatasetSpec

  • Status: Accepted — retrospective baseline.
  • Recorded: 2026-09-29. This is the recording date, not an invented original approval date.
  • Authority and implementation boundaries: see Evidence below and the register conventions.

Context

An observed pattern is not a universal business rule or authorization. Persisted contracts also outlive the package version that created them.

Decision

DatasetProfile carries safe evidence; inferred relationships/rules retain confidence and review status. DatasetSpec is the reviewed executable generation contract. A model proposal cannot promote its own evidence or approval.

Version DatasetSpec separately from the package. Missing legacy version means 1.0; explicitly support tested versions and reject unknown versions instead of guessing. Candidate 1.1 adds exact DECIMAL; do not silently downgrade it to FLOAT. Migrations produce newly reviewed specs, not in-place rewrites of old bundles.

Alternatives and consequences

Generating directly from arbitrary samples or free-form hypotheses collapses evidence and authority. Automatic forward-version interpretation hides incompatible semantics. Schema compatibility does not promise identical generated bytes.

Evidence

Sources: profiles and specs, schema compatibility, relational evidence contract. Executable anchors: DatasetSpec tests, profile/spec diagnostics.

Revisit when

New required fields, changed meanings or narrowed values require the documented schema and migration decision, not a fixture refresh alone.