0059. Personal remediations: learner-scoped, grounded, cached per struggle pattern
Generated from docs/decisions/0059-personal-remediations.md
- Status: Proposed
- Date: 2026-10-09
- Plan:
docs/plans/phase-4.md(section 7.2)
Context and problem statement
Section titled “Context and problem statement”When a learner struggles with an element, the spec asks for a personal remediation (a simpler explanation, an example or practice) that is grounded only in the course’s cited sources, stored as a learner-scoped variant and not as a change to the course, and cached for learners with the same struggle pattern to control cost.
Considered options
Section titled “Considered options”- Remediation documents in the learner catalogue, generated by task
remediationfrom the element’s cited fragments and a generic struggle description, cached by(element, applied version, rule, kind, language, pattern detail). - Generate per learner without caching.
- Ask the author to pre-write remediations.
Decision
Section titled “Decision”Option 1, for courses built with the Course Builder:
- Validation. Citations must be a subset of the provided fragments, then the markup check, the quiz support check and the grounding task. Two failures mean no remediation is shown.
- Data minimisation. No learner identity, history or free text reaches the model;
ai_calls.user_idis null. - Assignments. Record shown, feedback and hide.
- Retirement. Remediations retire when the element’s applied version changes.
- Components. Worked example, practice question, elaborative question and Feynman reflection. Reflection feedback sends only the learner’s explicitly submitted text.
Consequences
Section titled “Consequences”- Good: cheap when struggles repeat, cited like all course content, and the shared course is never changed.
- Bad: not available for courses without a builder session; nudges still work for those.