Репозиторій, у якому історія навчання зберігається в git, а ШІ-агент виступає викладачем. Файли — джерело правди: агент і людина працюють з тими самими файлами, тому нічого не «губиться в контексті» між сесіями.
Це порожній старт. Уроків тут ще немає — перший створить агент після того, як ти заповниш state/profile.md.
Почни з SETUP.md — там покроковий перелік того, що треба зробити для запуску.
Звичайний чат із ШІ про англійську має дві проблеми: він забуває твої помилки між сесіями і хвалить за текст із трьома помилками. Тут обидві закриті файлами.
state/errors.md— лог твоїх повторюваних помилок. Агент дописує його після кожного розбору, а наступне завдання будує прицільно під ці записи. Це головна перевага перед застосунками зі стандартними вправами.AGENTS.md— правила ментора, серед них пряма заборона хвалити за роботу з помилками.git— історія навчання. Можна подивитись, які помилки були три місяці тому і чи зникли вони.
Термінал — агент (Claude Code, Codex, Cursor, будь-який інший, що вміє читати й писати файли в папці). Читає AGENTS.md, дивиться state/, генерує урок, перевіряє git diff, пише розбір, оновлює стан.
Браузер — ти. Повторюєш слова, пишеш відповіді на завдання, читаєш розбір.
Інтерфейс навмисне не викликає жодного API і нічого не надсилає в мережу — тільки читає й пише файли поруч. Уся «розумна» частина — в агента, уся «фіксована» — у файлах. Заміниш агента на іншого — нічого не зламається.
python app.pyВідкриється http://127.0.0.1:8765. Потрібен лише Python 3.10+, без залежностей. На Windows можна двічі клацнути run.bat, на macOS/Linux — ./run.sh.
AGENTS.md правила ментора (статичні, редагуєш під себе один раз)
CLAUDE.md вказівник на AGENTS.md для Claude Code
state/profile.md рівень, цілі, контекст — заповнюєш ти
state/errors.md ★ повторювані помилки — головний файл, веде агент
state/grammar.md теми: у роботі / далі / вивчено
state/vocab.csv словник + дати повторень
state/inbox.md слова, накидані з телефону — чекають на імпорт
lessons/<дата>-<тема>/
task.md завдання (не редагується після видачі)
answers.md пишеш ти
review.md пише агент
archive/ старі уроки, агент їх не читає
srs.py інтервальні повторення
app.py локальний інтерфейс
python app.py→ повторив слова, що на сьогодні- У терміналі: «дай новий урок» → агент читає
state/, створює папку вlessons/ - У браузері відкрив урок, заповнив відповіді (зберігаються автоматично)
- У терміналі: «перевір урок» → агент пише
review.md, оновлюєerrors.mdі словник git commit— знімок стану на цей день
Коли уроків назбирається багато, старі можна перенести в archive/ — агент туди не заглядає, тому це не роздуває контекст.
Мовна модель не веде надійного розкладу: забуває, плутає інтервали, дрейфує. srs.py тримає дати в CSV детерміновано, агент лише проводить заняття.
python srs.py due # що сьогодні на повторення
python srs.py add "word" "переклад" "приклад" # нове слово
python srs.py stats # найважчі слова
python srs.py import # забрати слова з state/inbox.mdІнтервали: 1, 3, 7, 16, 35, 90, 180 днів. Не згадав — рівень обнуляється, слово повертається на сьогодні.
Слово трапляється не за ноутбуком — у серіалі, в чаті, на вулиці. Щоб не губити його до вечора, є state/inbox.md: відкриваєш файл у своєму репозиторії на GitHub з телефону, олівець «Edit», дописуєш рядок, «Commit changes». Один рядок — одне слово, переклад необов'язковий.
leverage
mitigate — пом'якшити, зменшити
retry — повтор — The client will retry the request twice.
За ноутбуком git pull && python srs.py import переносить рядки з перекладом у state/vocab.csv. Рядок без перекладу лишається в inbox — переклад і живий приклад підбере агент на наступному уроці, це вже прописано в AGENTS.md. Ніякого сервера, бота чи застосунку: слова їдуть тим самим каналом, що й решта стану.
Пробіл — показати переклад · 1 / ← не згадав · 2 / → знав
Вимови, аудіювання, спонтанного мовлення. Текстовий репозиторій дає граматику, лексику, письмо й читання. Решту закривай окремо — розмовним клубом, серіалами, репетитором.
MIT — див. LICENSE. Бери, форкай, переробляй під себе й під іншу мову без обмежень.
Усе спілкування ментора українською зашите в AGENTS.md та в підписи інтерфейсу. Щоб перевести на іншу рідну мову, достатньо переписати перший абзац AGENTS.md — інтерфейс можна лишити як є або перекласти рядки в app.py.