Kizuki
    Preparing search index...

    Spaced review

    Kizuki brings a concept back for review on a schedule that grows while your sessions on it stay clean. planReviews works it out in plain code, with no model, from the logs every time a page loads.

    • A concept is due the day you confirm it.
    • A clean session doubles the wait: 1, 2, 4, 8, 16, 32 days, then MAX_GAP_DAYS at most. The streak counts clean sessions in a row since the last unclean one.
    • An unclean session (a confirmed miss, or "the material is right" on a "Does this fit?" question) brings the concept back the next day and resets the streak.
    • The date counts from the calendar day the last session ended, in your computer's time zone (localDate).

    A concept is blocked while any concept it needs first (a confirmed link to a confirmed concept) has never had a clean session. The Today page lists blocked concepts with what they wait on. After an unclean session, the session page names those weak prerequisites (weakPrerequisites) and suggests teaching them first.

    Set an exam date on a course page (setExamDate). While the exam is today or later, a review that would fall after the day before the exam moves to the day before the exam, or to today if that day has passed.

    Sessions on a concept that was later merged count toward the concept it was merged into (reviewPlans follows merges with resolveConceptId).

    todayView builds the Today page's three lists from the plans: due now (today or earlier), coming up, and blocked, each sorted by date. The concept page shows "Due now.", "Next review …", or "Waiting on …", and the streak. A clean session's result says when the concept comes back.

    Each plan (ReviewPlan) holds the due date, the status, the streak, the current wait in days, and what blocks it.