feat(trainer): P7 пошаговое решение (репетитор) + P8 мат-клавиатура

- движок checkStep(problem, line): шаг = равносильное уравнение (держится во всех корнях И не выполняется в не-корнях) → ловит арифметику, потерю корня, тождество; статусы equivalent/solved/wrong/identity/parse
- страница: тумблер «Решить по шагам» (kind solve), ввод и проверка каждого шага, список принятых шагов (KaTeX + галочка), подсказка следующего шага, завершение по solved-форме; общий onSolved; stepPref между задачами
- P8: экранная мат-клавиатура (( ) x / ^ √ ; ⌫, вставка в курсор, без либ) + live-превью KaTeX; для поля ответа и поля шага
- ROADMAP_V2: P7+P8 → DONE; смоук движка 300/300 (T14 checkStep), страница 33/33 (шаг-сценарии)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-25 15:06:46 +03:00
parent 10c9b007d8
commit 277bddf1fd
3 changed files with 315 additions and 10 deletions
+89
View File
@@ -0,0 +1,89 @@
# ИИ-Тренажёр — Roadmap v2 (Phase 7+)
**Контекст.** P0P6 готовы (`PLAN.md`): движок параметрических генераторов + SimExpr-
верификатор (+несколько корней, эквивалентность сэмплингом), 17 генераторов / 5 тем,
умная тренировка с интервальным повторением, LLM-задачи с серверной проверкой, пул,
авторинг/раздача учителем, аналитика-тепловая карта, визуальный редизайн.
**Цель v2.** Превратить «проверяльщик ответов» в **репетитора** (ведёт по шагам,
объясняет ошибки) и расширить **охват** (классы 5–9, ЦТ) и **вовлечение**.
**Инвариант (не нарушать).** Выражения — только SimExpr (⛔ без eval). Любая задача
проходит проверку подстановкой/сэмплингом; неверная ученику не попадает. Тексты
экранируются. Каждая фаза — со смоуками/тестами и коммитом.
---
## P7 — Пошаговое решение (репетитор) ⭐ — DONE
**Сделано:** движок `TE.checkStep(problem, line)` — шаг = равносильное уравнение
(держится во всех корнях И не выполняется в не-корнях → ловит арифметику, потерю
корня, тождество `0=0`); статусы equivalent/solved/wrong/identity/parse. Страница:
тумблер «Решить по шагам» (для kind solve), ввод шагов с проверкой каждого, список
принятых шагов (KaTeX + зелёная галочка), подсказка следующего шага, завершение по
solved-форме `x=c` → общий `onSolved` (засчитывается как решение). stepPref хранит выбор
между задачами. Смоук движка T14 + страницы шаг-сценарий.
Ученик решает по шагам, движок проверяет КАЖДЫЙ шаг.
- Режим «по шагам»: ввод следующей строки преобразования → проверка эквивалентности
предыдущему (reuse `_sampleEquiv`; для уравнений — сохранение множества корней) +
прогресс к ответу.
- Подсказка следующего шага; «застрял» → раскрыть шаг. Guided-вариант: заполнить
пропуски в данных шагах.
- **Ценность:** глубочайшая педагогика, уникальное отличие от «answer-checker».
## P8 — Математический ввод ⭐ — DONE
**Сделано:** лёгкая экранная мат-клавиатура (`( ) x / ^ √ ; ⌫`, вставка в позицию
курсора, без библиотек) под полем ответа И под полем шага; live-превью KaTeX введённого
(показывается только при валидном разборе через `exprToLatex`). Переиспользуется и для
ответа, и для пошагового ввода.
Удобный ввод дробей/степеней/корней (моб. + выражения).
- Лёгкая экранная мат-клавиатура (свои кнопки `/ ^ √ ( ) ± x`), live-превью KaTeX
введённого. Без тяжёлых библиотек.
- Синергия с P7 (ввод шагов) и с multi-root / simplify.
## P9 — Разбор ошибок + сократические подсказки (LLM)
«Почему неверно» и подсказки, не выдавая ответ сразу.
- Правиловая детекция типовых ошибок (потерян знак, забыл поделить, арифметика) для
linear/quadratic — по разнице ответа ученика с «ответом при типичной ошибке».
- LLM-фолбэк «объясни мою ошибку» / «подскажи» через Квантик-ассистента
(`callLLMFailover`) — только ОБЪЯСНЕНИЯ (безопасно, не генерация задач).
- 3 уровня подсказок (намёк → шаг → решение).
## P10 — Контент 5–9 классов + ЦТ
Расширить охват и связать с подготовкой к ЦТ/ЦЭ.
- Новые темы: арифметика/дроби/десятичные (5–6), степени, формулы сокр. умножения,
разложение на множители, **линейные неравенства** (новый тип ответа: парсинг и
нормализация отношения `x>3`/`x≤−2`), системы 2 лин. уравнений, линейная функция (k,b),
текстовые семьи (движение/работа/смеси) параметрически.
- Дерево навыков по таксономии exam-prep ЦТ (связь с готовым модулем экзамена).
## P11 — Геймификация + карта навыков
Вовлечение через существующую инфраструктуру.
- XP/монеты/достижения (Квантик-геймификация) за решения/серии/мастерство; учёт
kill-switch геймификации.
- Карта-дерево навыков (визуализация прогресса) на странице/дашборде.
- Дневная цель + календарь серий.
## P12 — Задания и журнал
Учительский рабочий процесс поверх раздачи.
- Задание: темы/навыки + цель (N решено / мастерство) + дедлайн → ученики видят,
прогресс трекается; учитель видит выполнение и результаты; интеграция с journal/homework.
- Апгрейд текущего `assign` (уведомление) до отслеживаемого задания (таблица).
## P13 — Конструктор генераторов + управление пулом
Учитель создаёт ПАРАМЕТРИЧЕСКИЕ генераторы (не только одиночные задачи).
- Визуальный билдер: диапазоны `pick`, формулы `derive`, шаблоны `lhs/rhs`, ответ,
шаги решения + live-превью + валидация (отложенный «полный P4»).
- Управление пулом (ревью/правка/удаление), генерация по теме урока/§ учебника.
---
## Сквозное
Тесты/смоуки на каждую фазу; доступность (ARIA, клавиатура, озвучка формул);
офлайн-режим (PWA) для параметрики; производительность.
## Рекомендация
Начать с **P7 + P8** (репетитор + мат-ввод — сильная синергия, наибольший скачок
качества обучения), затем **P9** (разбор ошибок) — вместе дают эффект «личный
репетитор». Параллельный быстрый выигрыш по охвату — **P10** (неравенства/системы/ЦТ).