Skip to content

Hybrid scoring locus, item bank, and immutable item versions

Status: accepted

Three coupled assessment-integrity decisions, driven by emergent’s offline-first delivery and its research goals.

Response processing runs client-side in the headless core for formative/practice assessments (works offline; scoring keys ship in the synced payload) and server-authoritative for summative/secure assessments (keys withheld; the client captures and submits the response only). A per-assessment scoring_policy (client | server | server-rescore) selects the behaviour.

Why: always-server breaks the “fast local reads for active learning” promise in the sync topology; always-client exposes correct answers in PGlite for high-stakes work. The split keeps offline practice instant while protecting secure attempts.

A new first-class assessment_item (QTI assessmentItem) replaces items embedded in the test payload. Items are reusable, independently identified, and standalone- deliverable (drills, CAT) as well as referencable by an Assessment Test.

Why: embedding items in the test blob blocks reuse, makes CAT impossible (no item pool), and denies item statistics a stable identity — directly defeating the research goal. It also diverges from QTI’s own resource model, where tests reference items.

Item drafts are mutable; publishing freezes an immutable assessment_item_version. Attempts and item statistics bind to a specific version; editing a published item creates a new version. Mirrors the existing course_material_version pattern.

Why: editing an item in place silently corrupts historical attempts and any psychometrics keyed to it. Version binding keeps attempt history and research data sound.

  • New tables assessment_item and assessment_item_version; assessment_attempt and statistics reference an item version id. assessment_definition (the Test) references items rather than embedding them.
  • assessment_definition needs a scoring_policy; secure attempts require a key-withholding path in sync (keys excluded from the client-facing shape).