What problem does it solve? Hand-editing six interdependent JSON learner databases (learner-profile, progress, mistakes, mastery, spaced-repetition, session-log) after each language practice session is error-prone and causes silent desync between streaks, accuracy, and review queues. ## Core Features & Use Cases - Atomic multi-database writes: Pipe one JSON payload to update-db.py, which validates the payload, runs pre-write backups, and applies all changes via .tmp + fsync + rename. - Spaced-repetition integration: Records new vocabulary and review results, runs SM-2 scheduling, and rebuilds the review queue on every run. - Session bookkeeping: Bumps total_sessions, streaks, study minutes, milestones, and achievements from a single session record. - Use Case: After a /fluent-review session with five vocabulary items and one grammar error, send one payload containing review_results, errors, and skill_scores to persist everything consistently. ## Quick Start At the end of a practice session, ask the AI to run update-db.py with a JSON payload containing the session_id, date, skill scores, errors, and review results.