DogStark / DogStark/mathbloc

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

Open
#5 2 comments 0 reactions 1 assignee Claimed by @caramel222 View on GitHub
GrantFox OSS Maybe Rewarded Third Campaign
Dominant language
TypeScript
Stars
1
Forks
6
Avg merge
3d 12h
Merged PRs (30d)
7

Description

## 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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.