Habit formation engine — spaced repetition, lock-in tracking & retention curves — Phase 1: Spaced repetition cadence engine #94

Closed
opened 2026-06-09 06:15:17 +00:00 by Mark · 0 comments
Owner

Phase 1: Spaced repetition cadence engine

Replace flat intervals with expanding-interval scheduling, similar to Anki/SM-2.

  • Implement a cadence calculator: given { ideal_interval, history_of_on_time_actions }, produce the next nudge delay
    • Base formula: next_interval = prev_interval * factor where factor depends on on-time consistency (e.g., 2.0 for perfect, 1.5 for good, 0.5 for missed)
    • Floor: minimum interval (e.g., 2 days for important relationships)
    • Ceiling: maximum interval (e.g., 30 days — habit is considered locked in)
  • On a successful on-time interaction (logged within the scheduled window), stretch the interval by the factor
  • On a missed/skipped interaction, compress the interval back toward the floor
  • Store per-person cadence state: { current_interval, last_action_date, consistency_score, next_nudge_date }
  • Expose getNextNudgeDate(personId) and recordAction(personId) in the store
  • Integrate with existing Goal cadence: each goal can opt into spaced repetition instead of flat cadence

Decomposed from kimi_agent_kin_app_sync#81

## Phase 1: Spaced repetition cadence engine Replace flat intervals with expanding-interval scheduling, similar to Anki/SM-2. - [ ] Implement a cadence calculator: given `{ ideal_interval, history_of_on_time_actions }`, produce the next nudge delay - Base formula: `next_interval = prev_interval * factor` where `factor` depends on on-time consistency (e.g., 2.0 for perfect, 1.5 for good, 0.5 for missed) - Floor: minimum interval (e.g., 2 days for important relationships) - Ceiling: maximum interval (e.g., 30 days — habit is considered locked in) - [ ] On a successful on-time interaction (logged within the scheduled window), stretch the interval by the factor - [ ] On a missed/skipped interaction, compress the interval back toward the floor - [ ] Store per-person cadence state: `{ current_interval, last_action_date, consistency_score, next_nudge_date }` - [ ] Expose `getNextNudgeDate(personId)` and `recordAction(personId)` in the store - [ ] Integrate with existing Goal cadence: each goal can opt into spaced repetition instead of flat cadence --- _Decomposed from [kimi_agent_kin_app_sync#81](https://forgejo.tail018ac4.ts.net/Mark/kimi_agent_kin_app_sync/issues/81)_
Mark 2026-06-11 07:16:07 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/kimi_agent_kin_app_sync#94
No description provided.