ADR-0070: Training Questionnaires — Versioned, Auto-Scored, Release-Gated¶
- Status: accepted (Nicolas 2026-07-14: Q-1..Q-4 confirmed "I agree with your suggestions"; re-training semantics settled the same evening — full questionnaire per release, per-release training-relevance flag)
- Date: 2026-07-14
- Deciders: Nicolas Burri, design by Claude.
- Relates to: ADR-0022 (decided the "simple questionnaire" mode this realizes; its out-of-scope list is partially superseded by the Phase-2 training-plans ADR to follow), ADR-0052/0053 (the acknowledgement machinery this extends — addressee policy, release fan-out, controlled ack record), ADR-0019 (tasks/notifications), ADR-0064 (who authors = the document's workflow groups), ADR-0016 (attempt records under retention).
Context¶
The acknowledgement system tracks read-and-understood. For SOPs/WIs the company additionally needs PROOF OF TRAINING EFFECTIVENESS (ISO 13485 §6.2): a questionnaire the addressee must pass. The current Atlassian mechanism (Jira true/false questions, sample-solution pages, macro triggers) is functionally right and mechanically brittle — the replacement makes questionnaire, attempts and scoring first-class, versioned schema.
Decision¶
- Q-1 Question model: multiple-choice / true-false, AUTO-SCORED against a per-questionnaire pass threshold. No manual grading (the brittle part of the old system). Free-text-with-grading is a possible later extension, not built now.
- Q-2 The questionnaire is part of the document version: authored in the draft alongside content (by the document's AUTHOR group), FROZEN at release. Questions carry STABLE IDS that survive revision (cheap future-proofing for a delta-answering mode — not built now).
- Q-3 Requirement control: the acknowledgement policy gains
trainingModeper (scope, type):NONE | ACKNOWLEDGE | QUESTIONNAIRE(defaults: SOP/WI → QUESTIONNAIRE, REC → NONE), overridable per document. RELEASE GATE in the established pattern: a version whose effective mode is QUESTIONNAIRE cannot release without one (action surface: TRAINING_QUESTIONNAIRE_MISSING). - Q-4 Completion semantics: the training task completes ONLY via a passing attempt. EVERY attempt (pass and fail) is a record: user, version, question ids, answers, score, timestamp — effectiveness evidence, retained like acknowledgements. Unlimited retries.
- Re-training semantics (the "which questions again" decision):
- There is no cross-version question pool: each release carries exactly ONE questionnaire, current by construction. A NEW addressee always answers the current release's full questionnaire — stale questions cannot exist.
- Each release carries a training-relevant change flag (
trainingRelevant, the Johner "schulungspflichtige Änderung" adopted): set while drafting, confirmed at release. TRUE → training tasks fan out to all addressees, each answering the release's FULL questionnaire. FALSE → no re-training; every addressee's status carries forward. - The system records WHICH VERSION each user is trained to; a training-neutral release keeps the prior version's pass as the valid evidence ("trained on v3, v4 declared neutral").
- Full-questionnaire-always over delta-answering: one attempt record proves understanding of ONE version — the airtight audit claim; questionnaires are small by design.
Consequences¶
- Schema: questionnaire + question rows keyed to the document version (frozen at release like content parts; disposal severs); attempt rows (RLS scope-carrying, retention-managed).
- The release fan-out (ADR-0052) branches by effective trainingMode: ACKNOWLEDGE → today's ack task; QUESTIONNAIRE → a training task completed only by a passing attempt (a pass records the acknowledgement — one evidence trail, not two).
- UI: questionnaire editor in the draft surface (author-gated); the take-questionnaire flow from the task/inbox; status reporting per document/role/scope extends the existing ack reporting.
- Import follow-up (ADR-0068): the Johner per-document training flag already maps to requiresAck; their questionnaires (Jira-based) are NOT imported — documents start fresh with mode defaults.
- Phase 2 (own ADR, to follow): per-user training plans aggregating document obligations + external trainings/certifications (evidence as FILE attachments, expiry tasks, restricted visibility: the user + MANAGE_TRAINING holders).