Files
Learn_System/plans/ai-trainer/ROADMAP_V4.md
T
Maxim Dolgolyov 2b7f6ab12f docs(trainer): план развития v4 — разнообразие задач/условий по темам + все направления
ROADMAP_V4.md — мастер-план: 103 новых генератора по 6 группам тем (матрица
диверсификации), 38 формулировок условий, 10 новых форматов заданий (kinds:
choice/verify/findError/fillBlank/estimate/multi/order/match/context/figureAsk),
педагогика (3-уровн. подсказки, библиотека ошибок, образцы, guided, сократ.),
адаптивность (запись уровня/времени, мастерство на L3, граф пререквизитов,
диагностика, due-mix), вовлечение+учитель (XP, задания+журнал, аналитика,
карта-созвездие), охват ЦТ (функции/корни/логарифмы/тригонометрия/коорд-геометрия,
ЦТ-режим), техника/качество. Рекомендуемая последовательность V4.1–V4.6.

V4_GENERATOR_SPECS.md — спутник: полные «корень-вперёд»-рецепты всех 103
генераторов (форма/пример/вывод/фигура), формулировки и сквозные предложения
с what/why/how/effort. Собрано анализом 11 агентов по реальному движку
(каждое предложение реализуемо в текущем контракте, инварианты соблюдены).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 13:04:52 +03:00

30 KiB
Raw Blame History

ИИ-Тренажёр — План развития v4: разнообразие задач + все направления

Дата: 2026-06-26. Фокус заказа — разнообразие задач и условий по текущим темам; плюс полный охват направлений (форматы, педагогика, адаптивность, вовлечение, охват ЦТ, техника). План собран глубоким анализом (11 агентов, каждый сверялся с РЕАЛЬНЫМ движком): 103 новых генератора, 38 новых формулировок условий, 44 сквозных улучшения.

Что уже есть (база v1–v3)

  • Движок параметрических генераторов + детерминированная проверка SimExpr.
  • 64 генератора / 21 тема (алгебра + геометрия). Виды: solve, compute, roots, simplify, inequality, system.
  • Геометрия с чертежами-данными (figures.js, 13 типов) + режим «читать с чертежа» (figurePrompt у всех 19 геом-генераторов, тумблер «Текст / На чертеже»).
  • Структурные уровни сложности (1–3), умная тренировка + интервальное повторение (SR, мигр.081/082), LLM-задачи с серверной проверкой (мигр.083), пошаговое решение (checkStep), правиловый разбор ошибок (analyzeMistake), 3-уровневое объяснение (/api/practice/explain), мат-клавиатура + live-KaTeX, аналитика класса, авторинг/раздача учителем, конструктор генераторов (/trainer-builder, мигр.084).

Инварианты (НЕ нарушать ни в одном пункте)

  1. Только SimExprбез eval/new Function.
  2. «Корень-вперёд»: сначала выбираем целый корень/множители, ВЫВОДИМ остальное → ответ всегда чистый (целое ИЛИ конечная десятичная дробь, как окружность с π≈3,14), самопроверка движка проходит. Ответ ВСЕГДА вводим без потери точности.
  3. Без эмодзи — только inline SVG .ic / Lucide. Тексты экранируются.
  4. Зарезервированные имена параметров: t, w, h, pi, e, E, PI, tau — нельзя.
  5. Каждая фаза — со смоуками/тестами и коммитом; lint:routes baseline 0.

Ключевые ограничения движка (выявлены анализом — важно для реализации)

  • roots проверяет КАЖДЫЙ корень подстановкой → |ax+b|=c реализуется как roots с lhs:'abs(...)' (exprToLatex уже рендерит \left|...\right|).
  • inequality поддерживает только ОДНУ полупрямую {op, bound}. Двойные неравенства a<bx+c<d, |x|<c, знак-чарты — через compute («сколько целых решений», «наименьшее целое x»), они остаются самопроверяемыми. Не делать их inequality — самопроверка упадёт.
  • system поддерживает answerVars длины 3 → система 3×3 возможна ЧИСТО ДАННЫМИ.
  • Новые виды (choice/verify/fillBlank/findError/estimate/multi/order/match) требуют правок движка + страницы (Часть II).

ЧАСТЬ I — РАЗНООБРАЗИЕ ЗАДАЧ И УСЛОВИЙ (главное по запросу)

Разнообразие растёт по двум осям: (A) новые форматы условий/ответов (применимы ко ВСЕМ темам) и (B) новые варианты и формулировки внутри каждой темы (103 генератора + 38 рамок).

I.A. Новые форматы условий (новые kind — Часть II.формат)

Это умножает разнообразие сразу во всех темах. Подробности и приоритеты — в разделе «II. Форматы заданий».

Формат kind Что даёт
Выбор ответа choice дистракторы из analyzeMistake (типовые ошибки)
Верно/неверно verify проверить утверждение (1/0 через SimExpr-булеву)
Найди ошибку findError указать неверный шаг в готовом решении
Вставь пропуск fillBlank число/выражение в тождестве
Оценка/прикидка estimate ответ в допуске (интервал)
Многошаговая multi одна задача — несколько проверяемых под-ответов
Упорядочи order расставить числа/шаги по порядку
Сопоставь match формула↔результат, фигура↔площадь
Реальный контекст context обёртка существующих задач в бытовые сюжеты
Читать с фигуры/таблицы figureAsk ответ берётся с чертежа/таблицы

I.B. Матрица диверсификации по темам (103 генератора)

Условные обозначения: L — структурный уровень (1–3), вид — kind. Все «корень-вперёд». Многие новые формулировки реализуются чистыми данными (без правок движка): инверсные («найди коэффициент по корню»), пропущенный шаг, словесный контекст, «что больше», истина/ложь кодом (1/0), «вставь знак», «сколько целых решений».

Группа 1. Линейные: Уравнения · Неравенства · Системы (15 генераторов)

Тема id Форма / условие L kind
linear-eq lin-both-frac ax+b=cx+d с делением на (a−c)≥2 2 solve
linear-eq lin-x-denom a/(x+b)=c (x в знаменателе) 3 solve
linear-eq lin-k-over-x k/x=c (обратная пропорция) 2 solve
linear-eq lin-abs |ax+b|=c (два корня) 3 roots
linear-eq lin-frac-eq-frac (ax+b)/c=(dx+e)/f 3 solve
linear-eq lin-nested-paren a(b(x+c)+d)=e (вложенные скобки) 3 solve
linear-eq lin-literal ax=b·k−c·x (буквенный коэффициент) 3 solve
inequalities ineq-both-sides ax+b<cx+d 2 inequality
inequalities ineq-both-flip ax+b≥cx+d, c>a (смена знака) 3 inequality
inequalities ineq-paren a(x+b)>c 2 inequality
inequalities ineq-count-int сколько целых решений / наим. целое 2 compute
systems sys-subst подстановка (одно ур-е разрешено) 2 system
systems sys-sum-diff x+y=S, xy=D 1 system
systems sys-3x3 система 3×3 (тизер, answerVars=3) 3 system
systems sys-word текстовая на два неизвестных 2 system

Формулировки: инверс «при каком a корень = R», конструктор «дополни 2x+▢=10 чтобы корень 3», пропущенный шаг (берётся из solution[]), счёт целых решений (обход ограничения inequality), инверс параметра системы «при каком k решение (1;2)».

Группа 2. Пропорции · Проценты · Текстовые (17 генераторов)

Тема id Форма / условие L kind
proportions prop-direct-word прямая пропорция (цена/кол-во) 1 compute
proportions prop-inverse-word обратная (рабочие/дни) 2 compute
proportions prop-scale-map масштаб карты 2 compute
proportions prop-compound тройная пропорция 3 compute
proportions prop-share-ratio деление в отношении a:b 2 compute
percents pct-increase увеличение на p% 2 compute
percents pct-decrease уменьшение на p% 2 compute
percents pct-change на сколько % изменилось 3 compute
percents pct-simple-interest простые проценты (вклад) 2 compute
percents pct-compound-2y сложные проценты (2 года) 3 compute
percents pct-restore-before исходное до изменения 3 compute
applied app-meet встречное движение 2 compute
applied app-overtake движение вдогонку 3 compute
applied app-upstream по реке (по/против течения) 2 compute
applied app-work-joint совместная работа 3 compute
applied app-mix-blend смешивание растворов 3 compute
applied app-profit-pct прибыль в процентах 3 compute

Формулировки: «что больше: 30% от 80 или 40% от 50», таблица-данные, цепочка скидка→налог, проценты vs процентные пункты, прикидка, средняя скорость кругового рейса (2v₁v₂/(v₁+v₂)).

Группа 3. Выражения: Упрощение · Степени · Формулы (16 генераторов)

Тема id Форма / условие L kind
simplify simp-like-multivar привести подобные (две буквы) 2 simplify
simplify simp-like-const подобные с числом 2 simplify
simplify simp-sub-bracket вычесть скобку (знаки) 3 simplify
simplify simp-distribute-combine раскрыть и привести 3 simplify
simplify simp-factor-common вынести общий множитель 2 simplify
simplify simp-factor-group группировка 3 simplify
formulas diff-sq-factor разложить разность квадратов 3 simplify
formulas sq-trinom-factor свернуть в квадрат 3 simplify
formulas sq-sum-coef квадрат суммы с коэффициентом 3 simplify
formulas cube-sum куб суммы 3 simplify
formulas sum-cubes-factor сумма кубов 3 simplify
powers pow-div частное степеней 2 simplify
powers pow-product-base степень произведения 2 simplify
powers pow-frac-combine дробь степеней 3 simplify
powers pow-numeric-laws степени одного основания (число) 2 compute
powers pow-standard-form стандартный вид числа 2 compute

Формулировки: вставь число в тождество ((x+a)²=x²+▢x+a²), найди-ошибку→правильный ответ, «запиши в виде произведения» (обратное разложение, simplify-эквивалентность), «в какую степень возвести», упрости-и-вычисли при x=x₀ (мост к арифметике, защита от заучивания строки).

Группа 4. Квадратные · Прогрессии (16 генераторов)

Тема id Форма / условие L kind
quadratic quad-incomplete-bx ax²+bx=0 (вынесение x) 2 roots
quadratic quad-incomplete-c ax²=c (корень) 2 roots
quadratic quad-disc-clean ax²+bx+c=0 (дискриминант, чистый D) 3 roots
quadratic quad-trinomial-factor разложить трёхчлен 2 simplify
quadratic quad-find-b найти b по корню 3 compute
quadratic quad-count-roots сколько корней (знак D) 2 compute
quadratic quad-vertex-x вершина x₀=b/2a 2 compute
quadratic quad-complete-square выделить полный квадрат 3 simplify
progressions prog-arith-sum сумма n членов (арифм.) 2 compute
progressions prog-arith-find-d найти d по двум членам 2 compute
progressions prog-arith-find-n каким по счёту идёт член 3 compute
progressions prog-arith-mean вставить среднее арифм. 2 compute
progressions prog-geom-find-q найти знаменатель q 2 compute
progressions prog-geom-mean геометрическое среднее 3 compute
progressions prog-geom-sum сумма n членов (геом.) 3 compute
progressions prog-arith-word ряды кресел / зарплата 2 compute

Формулировки: корни-как-пара (сумма/произведение по Виета), «составь приведённое ур-е по корням» (simplify), классификация по знаку D, кратный корень (полный квадрат, 1 корень), числовой сюжет (произведение последовательных), инверс a₁/n/q, сумма 1..n и 1+3+..+(2n1), реальный геом. сюжет (мяч/бактерии, q∈{2,3}).

Группа 5. Арифметика 5–6: НОД/НОК · Дроби · Десятичные · Отрицательные (19 генераторов)

Тема id Форма / условие L kind
gcd-lcm gcd-triple НОД трёх чисел 2 compute
gcd-lcm lcm-triple НОК трёх чисел 3 compute
gcd-lcm coprime-check взаимно простые? (1/0) 2 compute
gcd-lcm lcm-buses «снова вместе» (НОК-задача) 2 compute
fractions frac-reduce сократить дробь 2 compute
fractions frac-add-unlike сложение (разные знаменатели) 3 compute
fractions frac-mult умножение дробей 2 compute
fractions frac-compare сравнить дроби (код 1/2/0) 2 compute
fractions frac-of-whole-inverse число по его части 3 compute
fractions frac-to-decimal дробь → десятичная 2 compute
decimals dec-div деление десятичных 3 compute
decimals dec-round округление 2 compute
decimals dec-times-pow10 ×/÷ на 10/100/1000 1 compute
decimals dec-compare сравнить десятичные 1 compute
negatives neg-div деление (отрицательные) 2 compute
negatives neg-order-ops порядок действий со знаками 3 compute
negatives neg-abs модуль числа/выражения 2 compute
negatives neg-compare-line сравнение на коорд. прямой 1 compute
negatives neg-square квадрат отрицательного 2 compute

Формулировки: истина/ложь (1/0), «что больше» кодом (1/2/0), «вставь знак» (1/2/0), словесный контекст (НОК-автобусы, остаток пирога), прикидка с округлением, смешанное число ↔ неправильная дробь.

Группа 6. Геометрия: Углы · Пифагор · Площади · Многоугольники · Подобие · Окружность (20 генераторов)

Все используют систему фигур-данных (figures.js); где нужно — новый тип фигуры.

Тема id Форма / условие L Нужна фигура
g-angles ang-parallel-transversal параллельные + секущая 2 новый тип parallel-lines
g-angles ang-isosceles-base углы равнобедренного 2 triangle-angles (расш.)
g-angles ang-vertical-bisector вертикальные / биссектриса 1 новый crossing-lines
g-pyth pyth-perimeter периметр прям. треугольника 3 right-triangle
g-pyth pyth-distance расстояние между точками 3 новый coord-points
g-pyth pyth-rect-diagonal диагональ прямоугольника 2 rectangle+диагональ
g-pyth pyth-space-diagonal диагональ параллелепипеда 3 новый box-3d
g-area area-rect-inverse сторона по площади 2 rectangle (▢)
g-area area-l-shape площадь L-фигуры 3 новый l-shape
g-area area-sector площадь сектора 3 circle-arc+заливка
g-poly poly-diagonals число диагоналей 2 regular-polygon+диаг.
g-poly poly-find-n число сторон по углу 3 regular-polygon
g-poly poly-exterior-sum внешний угол правильного 2 regular-polygon+метка
g-sim sim-scale-factor коэффициент по сторонам 2 two-similar
g-sim sim-area-ratio отношение площадей (k²) 3 two-similar
g-sim sim-thales отрезок по т. Фалеса 3 новый thales
g-sim sim-map-scale масштаб карты 2 (без фигуры)
g-circle circ-inscribed-angle вписанный/центральный угол 3 circle+две хорды
g-circle circ-chord-pyth длина хорды через радиус 3 circle+хорда
g-circle circ-tangent-len длина касательной 3 circle+касательная

Формулировки: только-с-чертежа (L3-вариант любого углового), двухшаговая «погоня за углом» (вертикальный→смежный; накрест→сумма треугольника), обратная «прямоугольный ли?» (1/0, rhs:'(a*a+b*b==c*c)'), закрашенная область (круг в квадрате, π≈3,14), инверс «сколько сторон по сумме углов», подобие через тени (дерево/столб), угол в полуокружности (Фалес).


ЧАСТЬ II — НОВЫЕ ФОРМАТЫ ЗАДАНИЙ (kinds)

Дают наибольший прирост разнообразия условий — применимы ко всем темам. Каждый сохраняет SimExpr-проверку.

# Формат Усилие Суть реализации
P1 choice (выбор) M 4 варианта; дистракторы из analyzeMistake (типовые ошибки) + случайные; правильный — текущий ответ
P2 verify (верно/неверно) M утверждение → булева SimExpr (1/0); часть истинных, часть ложных
P3 findError (найди ошибку) M портим ОДИН шаг solution[]; ученик указывает номер неверного шага
P4 fillBlank (вставь пропуск) M равенство с ▢; ответ — число/выражение, проверка подстановкой/эквивалентностью
P5 estimate (оценка) S ответ в допуске (band ±ε); для прикидки/π
P6 multi (многошаговая) M несколько gated под-ответов в одной задаче (путь→время→…)
P7 order (упорядочи) M расставить числа/шаги; идеально для отрицательных/дробей/десятичных
P8 match (сопоставь) L два столбца: выражение↔форма, фигура↔площадь
P9 context (бытовой сюжет) S тонкая обёртка существующих compute/solve в случайные сюжеты (данными)
P10 figureAsk (с чертежа/таблицы) M ответ ЧИТАЕТСЯ с фигуры; + новый тип фигуры table

Старт: P9 (контекст-обёртки — почти бесплатно), P5 (estimate), затем P1/P4/P2 (высокая ценность, средняя цена). P8 (match) — позже.


ЧАСТЬ III — ПЕДАГОГИКА / РЕПЕТИТОР

# Что Усилие
C1 3-уровневые подсказки (намёк → первый шаг → полное решение) из solution[] S
C2 Библиотека типовых ошибок по темам (MISTAKES data, расширяет analyzeMistake) M
C3 Режим «сначала образец» (worked example) → задача-близнец M
C4 Направляемые пропуски в шагах (валидатор — checkStep) M
C5 Мастерство с учётом помощи (флаг assisted → «освоено» = без подсказок) M
C6 Сократический «объясни мою ошибку» (вопрос вместо ответа, анти-чит) M
C7 Интервальное повторение МЕТОДА (мини-карточки «вспомни формулу») L

ЧАСТЬ IV — АДАПТИВНОСТЬ / МАСТЕРСТВО / ДИАГНОСТИКА

# Что Усилие
D5 Фундамент: писать структурный level и time_ms в попытку (POST attempt) S
D3 Мастерство = серия верных на уровне 3 (а не на 1) M
D7 Авто-калибровка уровня по точности/времени последних попыток M
D1 Граф пререквизитов навыков + гейтинг (как unlockStars в Квантике) M
D2 Входная диагностика → персональный стартовый план L
D6 Подмешивание due-навыков (кривая забывания) в КАЖДУЮ сессию M
D4 «Повторить всё слабое» — кросс-темовый режим слабых навыков M
D8 Полоса мастерства на чипе навыка + аналитика глубины учителю S

Начинать с D5 — без записи уровня/времени остальные пункты слепы.


ЧАСТЬ V — ВОВЛЕЧЕНИЕ + УЧИТЕЛЬ

# Что Усилие
E1 XP/монеты за практику (хук в submitAttempt, reuse геймификации) S
E2 Практика в Дневной цели + календарь серий на странице M
E3 Достижения/бейджи (объёмы, мастерство, идеальная сессия) M
E4 Задания учителя + журнал (practice_assignments: темы/цель/дедлайн, трекинг) L
E5 Глубже аналитика класса (помастерство, слабые места, время, динамика) M
E6 Карта-созвездие навыков (reuse QuantikMap) с пререквизитами L
E7 Очередь ревью LLM-пула (одобрить/править/удалить черновики) M
E8 Конструктор генераторов на ВСЕ виды + шаринг/клон L

Учитывать kill-switch геймификации (body.no-gamification) для E1E3/E6.


ЧАСТЬ VI — ОХВАТ ЦТ/ЦЭ (новые темы) + ТЕХНИКА/КАЧЕСТВО

Новые темы (к программе 9–11 и ЦТ):

id Тема Усилие Заметка
g-func Функции: чтение графика, значение, область M новые kinds graph-read/domain; линейная/квадратичная
roots Корни и иррациональности (7–9) S √ из точных квадратов; √(a²b)→a√b (simplify)
logs Логарифмы и показательные (10–11) M log_a(aᵏ)=k, aˣ=aᵏ; целые логи
trig Тригонометрия (9–11) M значения в особых углах (0/30/45/60/90)
g-coord Координатная геометрия (9) M середина, расстояние (пифагоровы пары), прямая

ЦТ-режим (B5, L): формат А1–А10 / В1–В20, бланк ответов, таймер, тег ct_code со связью с таксономией exam-prep (как tag-exam-textbook).

Техника/качество (сквозное):

# Что Усилие
H1 Ленивая загрузка KaTeX/Lucide, defer модулей тренажёра (first-paint) S
H4 Закоммиченный смоук: инстанс КАЖДОГО генератора × сидов + покрытие всех kinds M
H3 Телеметрия: труднейшие навыки, эффективность подсказок M
A11y ARIA, клавиатура, prefers-reduced-motion, озвучка формул M
H2 Офлайн/PWA для параметрики + очередь синка прогресса L

ЧАСТЬ VII — РЕКОМЕНДУЕМАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ

Сначала — то, что даёт максимум разнообразия при минимуме риска (чистые данные), затем форматы, затем педагогика/адаптивность/вовлечение, затем охват ЦТ.

  1. V4.1 — Контент-разнообразие волнами (★ главное по запросу). Выкатить 103 генератора группами (1→6) + формулировки, требующие ТОЛЬКО данных (инверс, пропущенный шаг, словесные, «что больше», 1/0, счёт целых решений) + контекст-обёртки P9. Геометрия — с расширением figures.js (новые типы: parallel-lines, crossing-lines, coord-points, box-3d, l-shape, thales, таблица). Риск низкий — движок не меняется (кроме фигур).
  2. V4.2 — Новые форматы условий (kinds): P9→P5→P1→P4→P2→P3→P6→P7→P10→P8 (движок + страница + смоуки).
  3. V4.3 — Педагогика: C1→C2→C5→C3→C4→C6→C7.
  4. V4.4 — Адаптивность: D5 (фундамент)→D3→D7→D6→D4→D8→D1→D2.
  5. V4.5 — Вовлечение + учитель: E1→E2→E3→E5→E7→E4→E6→E8.
  6. V4.6 — Охват ЦТ: rootsg-coordg-funclogstrig→ЦТ-режим (B5) + ct_code.
  7. Сквозное (каждую фазу): H4 (закоммиченный смоук всех генераторов/kinds), затем H1/H3/A11y/H2.

Каждая фаза: смоук движка (инстанс всех генераторов + самопроверка) + смоук страницы + бэкенд-тесты (где есть API) + коммит/пуш; эмодзи/eval = 0; lint:routes baseline 0.


Приложение — где что в коде

  • Генераторы (данные): frontend/js/trainer/generators.js
  • Движок/проверка/kinds: frontend/js/trainer/_trainer_engine.js
  • Чертежи-данные: frontend/js/trainer/figures.js
  • Умная сессия: frontend/js/trainer/adaptive.js
  • Страница: frontend/trainer.html
  • Прогресс/SR/пул: backend/src/controllers/practiceController.js, routes/practice.js, мигр.081/082/083; конструктор — customGeneratorController + мигр.084.
  • Предыдущие планы: plans/ai-trainer/PLAN.md, ROADMAP_V2.md, ROADMAP_V3.md.