Conformance — reference README
Conformance is testable: an implementation demonstrates it by round-tripping
the published test vectors for the profile and tier it claims, comparing against the
normalized canonical form defined in SPEC.md §8.3 (parse → canonicalize → serialize,
RFC 8785). The per-element tier assignments in §§4–7 are normative for what is tested.
Profiles (SPEC §8.2)
- Observation core —
Measurementwithtype, a value, conditionalunit,startTime/endTime; envelopeid/recordType/subject. - Training core —
WorkUnitwithscoring(all five kinds readable); envelopeid/recordType/subject.
An implementation declares the profile(s) it supports; producer and consumer conformance may be asymmetric (§3.3). Lossless passthrough of unsupported elements is mandatory at every tier.
Layout
vectors/— the minimum core vectors (the conformance bar). Per SPEC §8.3 these MUST cover: eachWorkUnit.scoringkind; a resistance set; an interval/round scheme; continuous endurance; scalar-and-Targetforms; nested vs flat+partOfequivalence; an unresolvedExerciseRef, an unknown extension, and an unknown open token (each round-tripping losslessly); a supersession lineage and a tombstone; asampleArrayin regular/irregular × scalar/multi-channel with anullsample; and a normalization-determinism vector (sets-expansion + id-less child + number canonicalization).corpus/+CORPUS.md— the extended activity-coverage corpus (coverage validation, not a conformance bar): the executable form of the “never inferior to prior art” gate.
Status
The minimum-core vectors/ and the activity-coverage corpus/ are both authored and
runnable: openbody-ts (npm run vectors) checks each assertion against the reference
implementation, and this repo’s npm run check schema-validates every record. The corpus
covers 16 real-world training methodologies (see CORPUS.md); it grows as new activities
are stress-tested, and gaps it surfaces feed the standard’s change process.