Generated by bun run conformance:render — do not edit by hand.
Point-by-point certification submission: every conformance requirement against the literal published schema (conform-ed ADR-0013), with emergent’s implementation status, the spec citation, the modelled schema anchors, and the verifying evidence (emergent ADR-0028).
- Denominator: pinned Coverage Map
docs/conformance/maps/xapi-v1.0.3.json (generated 2026-06-22), sha256 731ba441a4b06a355dea24fa9621b7191ff97263095bff806d492bcba0db2075.
- Requirements: 11/11 done across 3 profile(s) — attachment, context, statement.
- Information model: 84/111 literal items modelled.
- Evidence: each claim cites its
[covers:] evidence key; run bun run conformance:prove to resolve these to the proving test names for a submission copy.
| Req |
Level |
Status |
Statement |
Verified by / justification |
Spec source |
| XAPI-ATT-1 |
MUST |
✅ done |
An Attachment MUST carry a usageType (IRI), a display Language Map, a contentType, a length and the sha2 hash of its contents. |
xapi:1.0.3:conf:attachment/XAPI-ATT-1 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
Modelled schema anchors
- XAPI-ATT-1 →
xapi:1.0.3:def:Attachment/usageType, xapi:1.0.3:def:Attachment/display, xapi:1.0.3:def:Attachment/contentType, xapi:1.0.3:def:Attachment/length, xapi:1.0.3:def:Attachment/sha2
| Req |
Level |
Status |
Statement |
Verified by / justification |
Spec source |
| XAPI-CTX-1 |
MUST |
✅ done |
When a Context references an Activity through contextActivities, each of parent, grouping, category and other is a list of Activities. |
xapi:1.0.3:conf:context/XAPI-CTX-1 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-CTX-2 |
MUST |
✅ done |
A Context’s instructor is an Agent or Group, team is a Group, registration is a UUID, and a context statement reference is a StatementRef. |
xapi:1.0.3:conf:context/XAPI-CTX-2 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
Modelled schema anchors
- XAPI-CTX-1 →
xapi:1.0.3:def:Context/contextActivities, xapi:1.0.3:def:ContextActivities/parent, xapi:1.0.3:def:ContextActivities/grouping, xapi:1.0.3:def:ContextActivities/category, xapi:1.0.3:def:ContextActivities/other
- XAPI-CTX-2 →
xapi:1.0.3:def:Context/instructor, xapi:1.0.3:def:Context/team, xapi:1.0.3:def:Context/registration, xapi:1.0.3:def:Context/statement
| Req |
Level |
Status |
Statement |
Verified by / justification |
Spec source |
| XAPI-STMT-1 |
MUST |
✅ done |
A Statement MUST carry an actor, a verb and an object. |
xapi:1.0.3:conf:statement/XAPI-STMT-1 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-2 |
MUST |
✅ done |
An Agent MUST be identified by exactly one Inverse Functional Identifier — mbox, mbox_sha1sum, openid or account. |
xapi:1.0.3:conf:statement/XAPI-STMT-2 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-3 |
MUST |
✅ done |
An identified Group MUST have exactly one IFI; an anonymous Group (no IFI) MUST carry a member list. |
xapi:1.0.3:conf:statement/XAPI-STMT-3 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-4 |
MUST |
✅ done |
A Verb MUST carry an id that is an IRI. |
xapi:1.0.3:conf:statement/XAPI-STMT-4 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-5 |
MUST |
✅ done |
An Activity object MUST be identified by an id that is an IRI. |
xapi:1.0.3:conf:statement/XAPI-STMT-5 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-6 |
MUST |
✅ done |
An Activity Definition’s interactionType MUST be one of the ten CMI interaction types (true-false, choice, fill-in, long-fill-in, matching, performance, sequencing, likert, numeric, other), and the interaction sub-components MUST NOT appear without it. |
xapi:1.0.3:conf:statement/XAPI-STMT-6 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-7 |
MUST |
✅ done |
A Result Score’s scaled MUST be a decimal between -1 and 1 inclusive; when present, raw MUST fall within min and max. |
xapi:1.0.3:conf:statement/XAPI-STMT-7 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
| XAPI-STMT-8 |
MUST NOT |
✅ done |
A SubStatement’s object MUST NOT itself be a SubStatement (sub-statements do not nest). |
xapi:1.0.3:conf:statement/XAPI-STMT-8 |
ADL xAPI 1.0.3 (Experience API, Part Two: Data) — https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md |
Modelled schema anchors
- XAPI-STMT-1 →
xapi:1.0.3:doc:Statement/actor, xapi:1.0.3:doc:Statement/verb, xapi:1.0.3:doc:Statement/object
- XAPI-STMT-2 →
xapi:1.0.3:def:Agent/mbox, xapi:1.0.3:def:Agent/mbox_sha1sum, xapi:1.0.3:def:Agent/openid, xapi:1.0.3:def:Agent/account
- XAPI-STMT-3 →
xapi:1.0.3:def:Group/mbox, xapi:1.0.3:def:Group/mbox_sha1sum, xapi:1.0.3:def:Group/openid, xapi:1.0.3:def:Group/account, xapi:1.0.3:def:Group/member
- XAPI-STMT-4 →
xapi:1.0.3:def:Verb/id
- XAPI-STMT-5 →
xapi:1.0.3:def:Activity/id
- XAPI-STMT-6 →
xapi:1.0.3:def:ActivityDefinition/interactionType
- XAPI-STMT-7 →
xapi:1.0.3:def:Score/scaled, xapi:1.0.3:def:Score/raw, xapi:1.0.3:def:Score/min, xapi:1.0.3:def:Score/max
- XAPI-STMT-8 →
xapi:1.0.3:def:SubStatement/object