Skip to content

Make adaptive tutor difficulty and weak-area tracking operation-specific #5

Description

@llinsss

Problem

Adaptive difficulty is stored once per profile, although the product teaches six materially different operations. Performance in counting can raise multiplication difficulty, and failures in division can lower addition difficulty. weakAreas is also updated from the last six results across all operations because SessionResult does not record an operation; three correct answers in unrelated topics can remove the current topic from the weak set.

Proposed scope

  • Store tutor state per profile and operation, or include operation in every result and compute topic-scoped windows.
  • Define age/topic-specific difficulty bounds and promotion/demotion rules.
  • Ensure hints and weak-area recovery use only relevant attempts.
  • Add a persisted-state migration from the current single tutor object.
  • Surface the model's current level and evidence in the parent dashboard for explainability.

Acceptance criteria

  • Results in one operation do not change another operation's difficulty or weak status.
  • Three correct results only clear the matching weak area.
  • Switching profiles/topics restores the correct independent state.
  • Existing localStorage data migrates without losing profiles or progress.
  • Deterministic tests cover mixed-operation histories, threshold boundaries, hints, and migration.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third Campaign

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions