- Шапка-пилюля теперь УНИВЕРСАЛЬНАЯ и не мигает: всегда «Математика · 5–9 класс» (не переключается на «Алгебра»; предмет выбирается сегментом Алгебра/Геометрия)
- Системы 2 ур-ний — ПОЛНОЕ решение методом сложения (6 шагов): уравнять коэффициенты при x, вычесть (исключить x → coefY·y=rhsY), найти y, подставить, найти x, ответ-пара. Коэффициенты 2..4 / |коэф|≥2 — без «1x» в шагах
- Аудит решений по ВСЕМ темам: 7 «тонких» (1 шаг) генераторов (simp-like/expand, pow-mult/pow, sq-sum/diff, diff-sq) развёрнуты в 2 шага (правило → итог)
- смоук T21: у каждого из 60 генераторов решение ≥2 шагов; движок 1214/1214, страница 42/42; эмодзи 0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
НОД/НОК (числа больше + без степеней):
- движок: фича factorize ({name, of}) кладёт в шаги решения СТРОКУ разложения на простые множители без степеней (36 -> «2*2*3*3»); helper primeFactorString
- генераторы: a=g·m, b=g·n (g,m,n из 2..9) -> нормальные числа (14, 35, 16, 112…), общий множитель гарантирован; решение показывает разложение обоих + НОД/НОК = произведение множителей
- пример: 16 = 2·2·2·2, НОК = 2·2·2·2·7 = 112
НОК теперь появляется (раньше показывался только НОД):
- причина: smart-подбор брал первый неосвоенный навык ГЛОБАЛЬНО -> из НОД прыгал на lin-basic, НОК не доходил
- фикс: умная тренировка теперь адаптируется В ПРЕДЕЛАХ выбранной темы (pickNext scope = skillsOf(curTopic)) -> в теме «НОД и НОК» ведёт по обоим навыкам; тему выбирает ученик в рейле
Шапка: пилюля стала универсальной и динамической (updateSubjectPill: «Алгебра · 5–9 класс» / «Геометрия · 7–8 класс» по текущему предмету), вместо статичной «Алгебра · 7–8 класс».
Смоук движка 1154/1154, страница 42/42; эмодзи 0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Подключение на странице (после редизайна-премиум-консоли):
- applyInputMode: kind system в multi (скрыт префикс «x =») + placeholder «напр. x = 2; y = 3»
- answerLabel/isLabelKind: для системы показываем пару «x = 2, y = 3»
- check(): на неверном ответе зовём TE.analyzeMistake -> адресная подсказка (не разделил на коэффициент / перепутан знак / арифметика), не выдавая ответ; иначе общий текст
- смоук страницы 40/40 (системы: пара принята, префикс скрыт; неверный ответ -> разбор-подсказка)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Полный визуальный редизайн страницы /trainer (разметка-каркас + CSS).
Логика не тронута (генераторы, адаптив, шаги, аналитика, конструктор):
сохранены все DOM-ID и инжектируемые классы. Кольцо мастерства в рейле
запитано из существующей updateOverall() (только отражает данные).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Пользователь верно заметил: масштабирование чисел (больше/меньше) — не настоящая сложность. Настоящая = больше действий, скобки, дроби, переменная в обеих частях.
- генераторы размечены структурным level 1-3 (generators.js, LEVELS): напр. Уравнения ax+b=c (1) -> a(x+b)=c (2) -> a(x+b)=c(x+d) (3); Степени: вычислить -> произведение -> степень степени
- контрол сложности выбирает ВАРИАНТ-генератор нужного уровня в теме (pickByLevel с клампом к доступным), а не масштабирует числа
- клик по чипу навыка закрепляет конкретный вариант (pinned); Авто = адаптивный подбор (умная тренировка от простого к сложному) + показ ур.N текущего
- кросс-тематический адаптив pickNext — только в Авто без закрепления
- движковое _scaleRange/level оставлено как capability (T18), страница его НЕ использует
- смоук движка 682/682, страница 36/36 (Сложный->ген ур.3, Лёгкий->ур.1); эмодзи/eval 0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- подпись «Тема» над вкладками тем; бейдж класса (7/8) на каждой теме — видна ступень программы
- навыки вынесены в отдельную подписанную панель «Навыки темы «…»» (для текстовых/авторских — свой заголовок) → ясная иерархия тема → навыки
- лёгкая тонировка панели отделяет навыки от тем; анимация появления на контейнерах
- смоук страницы 33/33; эмодзи/eval 0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- новый тип kind:inequality: answerRel{op,bound}, парсер отношения (_parseRel/_checkInequality) — нормализация «x op c», приём обратной записи, сверка op+границы; self-check внутри/снаружи решения
- темы: Степени (aⁿ, xᵃ·xᵇ, (xᵃ)ᵇ), Формулы сокр. умножения (квадрат суммы/разности, разность квадратов), Неравенства (вкл. смену знака при делении на отрицательное) → 26 генераторов, 8 тем
- движок: simplify рендерит выражение в KaTeX (exprToLatex(srcExpr)); неравенство — в KaTeX с отношением; fallback-display учитывает op
- страница: ввод/лейбл для неравенств, isLabelKind
- смоук движка 397/397 (T15 неравенства, T16 степени/формулы; T3 ≥10 для малых пространств), страница 33/33; ROADMAP_V2 P10 → DONE
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- движок 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>
- фон-ambient «тетрадь в клетку» (материал предмета) на .sb-content
- карточка-герой с акцентной градиентной полосой; празднование верного ответа (изумруд+pop), мягкая встряска при ошибке
- акцент индиго→фиолет градиент, успех изумруд, мастерство золото; фидбек-«таблетка», нумерованные шаги решения с градиентными бейджами
- вкладки тем/навыки/режим — тактильные пилюли с hover-lift; цифры статистики градиентным текстом
- модалки с blur-backdrop; итог сессии с золотой полосой; общий прогресс пилюлей
- появление с лёгким stagger; mobile-адаптация + prefers-reduced-motion
- селекторы навыков scoped (.tr-skills .tr-skill) + #tr-skill для eyebrow (убран конфликт); все id/классы и логика сохранены (смоук 27/27)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>