learn-pi
Can a tutor talk to me just above my level?
learn-pi is a language tutor that runs as a pi-mono agent. It speaks to you slightly above your current level, adjusts when you struggle or cope, and keeps everything it knows about you in a markdown vault you can edit by hand.
What is learn-pi?
learn-pi is a proactive language tutor built on pi-mono. It talks to you in the target language at a difficulty calibrated to your zone of proximal development: just above where you are. When you reply fluently it climbs a rung. When you reply with ? it drops one. A Telegram bridge sends scheduled prompts so the tutor comes to you, and a git-synced vault means a laptop and a VPS see the same state.
How it tracks learning
Every learnable item is typed as a fact, a skill or a principle, following the KLI framework. Every assistant turn declares what kind of learning event it is: memory fluency, induction or sense-making. SM-2 spaced recall schedules review, but it is scoped to memory fluency only, not used as a universal progress measure.
Mastery is kept separate from SM-2 ease and updated only by unscaffolded probe turns. Items that look fluent on SM-2 but have never been probed are queued for cold-retrieval probes. Each turn logs its rung, event class and graded opportunities, which feed learning curves in a terminal report and a single-file HTML dashboard.
The vault
The source of truth is a folder of markdown: vocabulary, grammar, ZPD state, due queue, sessions and profile. It is diffable, version-controlled and editable in Obsidian. SQLite holds only what cannot be expressed as text, such as the graph of beliefs about the user, which has a confirmation gate on every write.
Design principles
The repo is organised along the four GIFT tutoring modules: learner, domain, pedagogical and sensor. Difficulty and pedagogy are treated as orthogonal axes: the rung controls how hard the language is, the learning event class controls what cognitive work is happening. Every new metric must be falsifiable.
