Author the assessmentItem XML with the required QTI 3.0 namespace and schema version attributes
Define a responseDeclaration with a choiceInteraction identifier, cardinality single, baseType identifier, and a correctResponse value
Add an outcomeDeclaration for SCORE with cardinality single and baseType float
Author the itemBody containing a choiceInteraction element with the prompt and at least two simpleChoice elements, one of which matches the correctResponse
Write a responseProcessing block that uses the match template or inline conditional logic to assign SCORE based on the response
Bundle the item XML and any referenced media into a manifest-based content package with an imsmanifest.xml at the root
Known gotchas
QTI 3.0 uses a different XML namespace from QTI 2.1; delivery engines validate against the namespace and will reject mixed-version documents
The identifier attributes on responseDeclaration and the choiceInteraction must match exactly; a mismatch silently produces zero scores
Media files referenced in the item body must have relative paths within the content package; absolute URLs break portability
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp