Article chapter 02 of 08
Separate conversation, evidence and calculation
Treat the system as three cooperating parts with explicit contracts between them.
The conversation layer presents questions, acknowledges responses, asks permitted follow-ups and helps the respondent give an answer in a usable form. It can adapt its wording and order within defined limits. It should not secretly award points.
The evidence layer stores the respondent's original input and the structured answer proposed from it. A response might map to a selected option, a numeric value, a date, a list of artefacts or an explicit unknown. Preserve the source text alongside the structured value so a reviewer can see how the mapping occurred.
The calculation layer accepts only the structured values, assessment definition and rule version. It returns dimension results, rule outcomes, reasons and any flags. The same inputs and version must always return the same result. A model call does not belong in this path if reproducibility is required.
Use a typed boundary between these parts. For each answer, include the question identifier, assessment run identifier, raw response, proposed structured value, mapping status, confidence or ambiguity flag where useful, and the identity of whoever confirmed it. Do not compress the entire interview into a summary and score the summary. Summarisation can omit qualifications that affect a threshold.
This separation also supports failure handling. The conversation can be unavailable while completed structured answers remain intact. The scoring service can reject an incomplete input without losing the interview. A reviewer can correct one mapped answer and run the same rules again without replaying the conversation.