Skip to content

CASE 1.1 is a boundary adapter; competency nodes become durable referents

Status: accepted

With CASE 1.1 contracts complete in @conform-ed/contracts and the competency lane starting, the QTI-vs-OneRoster question repeated (ADR-0001 vs ADR-0012): does CASE become the canonical competency model, or a boundary projection? Examining the spec against the existing model also exposed two genuine domain gaps: cross-framework associations (crosswalks like provider-B1.2 exactMatchOf CEFR-B1) were structurally unrepresentable (competency_node_edge is scoped to one framework version), and node identity was per-version, so longitudinal mastery history threaded across editions by nodeKey convention only.

  • The neutral competency core stays canonical; CASE is a totality-gated boundary adapter (consumer first, provider later), following the ADR-0012 pattern: staging snapshots, reconcile service, CASE GUIDs/URIs held in boundary mappings — never as core identity. CASE terms (CFItem, CFDocument, fullStatement) stay at the contracts boundary per the one-vocabulary rule.
  • But CASE’s deepest lesson is absorbed into core: competency nodes become durable referents. competency_node splits into a durable node (the object of longitudinal mastery history, stable across editions) and per-edition node revisions carrying statement text and metadata. Person evidence/state and OB3/CLR/qualification alignments reference the durable node; psychometric pooling and reproducibility reference the edition. This extends the Person-rooted durable-history principle to the object side of competency history.
  • Associations widen to the CASE vocabulary and may cross frameworks. The parent|prerequisite|related enum grows toward CASE’s association types (exactMatchOf, isPartOf, precedes, replacedBy, isTranslationOf, …), and cross-framework associations become representable — crosswalks and framework translations are core language-platform features, not boundary exotica.
  • CASE’s descriptive field set enters core as neutral columns (coding scheme, item type, education level, language, abbreviated statement, …).
  • CASE is semantically richer only on the descriptive layer. Emergent’s hardest competency concerns — immutable editions for research reproducibility (ADR-0005, ADR-0007), evidence, derived state, time-aware content alignment — are all outside CASE’s scope and would survive as extensions under any re-base; the extension, not the standard, would carry the load-bearing invariants.
  • CASE’s native lifecycle (mutable documents, status dates, replacedBy) runs against the frozen-snapshot grain research requires; re-basing would mean enforcing our most critical invariant against the adopted standard’s semantics.
  • The dual-model cost that justified the QTI pivot is absent: CASE is flat and enumerable (~20 CFItem fields, 10 association types), so boundary mapping is bounded and provable by a round-trip CI gate.
  • 1EdTech CASE conformance tests service behavior; a projection satisfies it.
  • Re-base on CASE core + extensions. Its real strengths — durable item identity and native authoring of subject packs as CASE documents — were respectively absorbed into core (durable nodes) and judged servable by a totality-gated provider projection. What remained exclusive to re-base was wire-shape storage, which is mostly liability (spec-evolution coupling, mutable-document semantics).
  • Minimal expansion (fields + crosswalk table only). Cheapest, but leaves the longitudinal node-identity flaw — the exact category of omission the standards-first strategy exists to catch early, and far harder to fix after evidence pipelines build on per-version nodes.
  • Schema rework before any consumer lands: durable competency_node + per-edition revision table; evidence/state/alignment FKs re-point to durable nodes (+ edition where pooling requires it); association table replaces the version-scoped edge table. Zero application code uses these tables today (seeds/tests only), so this is an ADR-0010-style in-place reshape — the cost is at its historic minimum.
  • The CASE consumer follows the OneRoster consumer architecture (batches, staging snapshots, reconcile); imported framework updates create new editions with node continuity via CASE GUID bindings.
  • Emergent-authored frameworks (subject packs) gain a provider/export path as CASE CFPackages, gated by the same round-trip totality test as OneRoster (ADR-0012).
  • docs/architecture/competency-framework-model.md needs updating to the durable node + revision model.