Generated by bun run conformance:render — do not edit by hand.
Denominator: pinned Coverage Map docs/conformance/maps/qti-v2.1.json (generated 2026-06-18). See conform-ed ADR-0013 (map) and emergent ADR-0028 (overlay).
| Profile |
Requirements |
Done |
Partial |
Other |
Progress |
| item |
4 |
0 |
0 |
4 |
░░░░░░░░░░░░░░░░ 0% |
| outcome-declaration |
1 |
0 |
0 |
1 |
░░░░░░░░░░░░░░░░ 0% |
| response-declaration |
1 |
0 |
0 |
1 |
░░░░░░░░░░░░░░░░ 0% |
| response-processing |
1 |
0 |
0 |
1 |
░░░░░░░░░░░░░░░░ 0% |
| results |
1 |
0 |
0 |
1 |
░░░░░░░░░░░░░░░░ 0% |
| section |
1 |
0 |
0 |
1 |
░░░░░░░░░░░░░░░░ 0% |
| test |
2 |
0 |
0 |
2 |
░░░░░░░░░░░░░░░░ 0% |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-ITEM-1 |
MUST |
➖ not-applicable |
— |
An assessmentItem MUST declare a unique identifier and a human-readable title. |
| QTI21-ITEM-2 |
MUST |
➖ not-applicable |
— |
An assessmentItem MUST contain exactly one itemBody holding the candidate-facing content. |
| QTI21-ITEM-3 |
MUST |
➖ not-applicable |
— |
An assessmentItem MUST carry the timeDependent attribute and declare whether it is adaptive. |
| QTI21-ITEM-4 |
MUST |
➖ not-applicable |
— |
A scored assessmentItem MUST declare its response variable(s) via responseDeclaration and carry responseProcessing to score them. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-OD-1 |
MUST |
➖ not-applicable |
— |
An outcomeDeclaration MUST declare an identifier under which its computed value is stored. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-RD-1 |
MUST |
➖ not-applicable |
— |
A responseDeclaration MUST declare an identifier, a cardinality (single / multiple / ordered / record) and a baseType. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-RP-1 |
MUST |
➖ not-applicable |
— |
A responseProcessing block MUST either reference a standard processing template (via its template attribute) or carry custom processing rules. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-RES-1 |
MUST |
➖ not-applicable |
— |
An assessmentResult MUST carry the context identifying the candidate session it reports on. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-SEC-1 |
MUST |
➖ not-applicable |
— |
An assessmentSection MUST declare an identifier for the grouping it represents. |
| Req |
Level |
Status |
Evidence |
Statement |
| QTI21-TEST-1 |
MUST |
➖ not-applicable |
— |
An assessmentTest MUST declare an identifier and contain at least one testPart. |
| QTI21-TEST-2 |
MUST |
➖ not-applicable |
— |
A testPart MUST contain at least one assessmentSection organising the items it delivers. |
- 4971 literal items — 186 modelled ✅, 0 partial 🟡, 385 gaps ❌
- Silent gaps (in spec, not modelled): 385
- triaged by category (1 gap-group(s)):
- ➖ not-applicable —
qti:2.1:def:* (385 gap(s)): emergent implements the QTI 3.0 binding (see qti:3.0.1), not the QTI 2.1 one, so the entire 2.1 information model is unmodelled by design — not a coverage gap in emergent’s target version. The single catch-all is honest here precisely because the reason is uniform across the whole map (unlike qti:3.0.1, where the gaps are triaged by subtree because emergent does implement that version).
- conform-ed extensions (modelled, not in spec): 64
- documented conform-ed normalisations (renames, not gaps): 12 key(s) across:
- XSD
xs:any open-content wildcard → conform-ed extensions (an unnamed wildcard has no literal name to join).
- XSD
simpleContent text node → conform-ed value (the literal leaves the text node unnamed).