Non-collapsible state separation is a hard architectural constraint in the Lacefield Adaptive Learning System. It mandates that the Dynamic Learning Profile and the Student Context Profile are maintained as permanently separate data structures — never averaged, merged, weighted together, or collapsed into a single representation.
This is not a design preference. It is a constraint enforced at the data model level because the two profiles answer categorically different questions and must never be allowed to contaminate each other.
Averaging them destroys the precision the entire platform is built on. The DLP and SCP answer different questions. Merging them produces a profile that answers neither correctly.
Most adaptive learning systems collapse context and cognition into a single learner model. A student's career background, engagement patterns, and conceptual understanding all contribute to a unified representation that drives recommendations. This produces systems that are good at personalization in the shallow sense — appropriate tone, relevant examples — while being imprecise about the student's actual cognitive state.
The non-collapsible separation exists because the DLP and SCP must be able to diverge independently. A student's schema floor on linear equations can change in a single session without any change to their career context. A student's career context can change dramatically — new job, different goals — without any change to their schema floor. If these are stored in a merged representation, updating one requires carefully avoiding contamination of the other. If they are stored separately, updates to one have zero impact on the other by design.
The second reason is query independence. The problem generation call queries the DLP to determine what to teach. It queries the SCP to determine how to frame it. These are separate operations on separate data. A merged profile forces the problem generator to extract two categorically different pieces of information from a single structure — which introduces coupling that does not need to exist.
The separation must be enforced at the database level, not just at the application level. Application-level separation can be violated by a developer who decides to add a field to the wrong object. Database-level separation — separate tables or separate top-level document keys — makes the violation structurally impossible.
// CORRECT — separate structures, zero coupling
{
"student_id": "...",
"dlp": {
"schema_floor": { ... },
"wrong_schema_flags": [ ... ],
"fluency_bottlenecks": [ ... ],
"language_ceiling": { ... },
"calibration_state": { ... }
},
"scp": {
"career_context": "...",
"hobbies": [ ... ],
"goals": "...",
"available_materials": "..."
}
}
// WRONG — merged representation destroys query independence
{
"student_id": "...",
"learner_model": {
"schema_floor": { ... },
"career_context": "...", // contamination
"wrong_schema_flags": [ ... ],
"engagement_score": 0.82 // averaging
}
}
This constraint came directly from observation, not from software architecture theory. In seven years of classroom teaching, the failure mode that produced the most damage was treating where a student was conceptually as a function of who they were contextually. A student from a difficult background was assumed to be at a lower conceptual level. A student with prior work experience was assumed to understand applied math better than their actual schema floor warranted.
Both assumptions destroyed instruction precision. The student's actual conceptual state was contaminated by demographic context in the teacher's mental model, producing instruction that was miscalibrated in both directions. Keeping these explicitly separate — in the teacher's own diagnostic thinking first, and then in the system's data model — was the intervention that produced reliable diagnosis independent of contextual assumptions.
Never compute a weighted average of DLP and SCP fields. There is no meaningful scalar combination of "schema floor on linear equations" and "works in construction."
Never use SCP fields to modify DLP assessments. A student's career background does not change their schema floor. The diagnostic protocol determines the schema floor independently of context.
Never store DLP data in the SCP or vice versa. If a field belongs to both, it belongs to neither — create a third structure for genuinely cross-cutting data.
Never collapse the two profiles for reporting or analytics. Aggregate reports show DLP state and SCP distributions independently.