План (PLAN_MATH_5 + VISUAL: карта 22 визуал-компонентов), миграция 050_math5_hub (хаб math-5 + 3 главы: Натуральные числа §1–17, Выражения. Уравнения §1–9, Обыкновенные дроби §1–18), страница-хаб (3 карточки + курсовой финал из 3 боссов + звание «Математик 5 класса») и 3 каркаса глав на ОБЩЕМ движке math6 (window.M6 с slug math-5-chN, ключи math5_*). Baseline-тест math5-page: 6/6. § без билдера → заглушка движка. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14 KiB
PLAN — Интерактивный учебник «Математика. 5 класс»
Составлен 2026-06-03 (Opus). Источник: Герасимов В. Д., Пирютко О. Н., Лобанов А. П. «Математика. 5 класс», в 2 частях, Минск: Адукацыя і выхаванне, 2020 (2-е изд.). PDF:
G:\Dev\Тесты\Методички\Разное\Книги\matematika_5kl_ch1_gerasimov_rus_2020 (1).pdf(181 стр.) и…_ch2_… .pdf(197 стр.). Контент пишем авторский (свой), не копируем книгу.
Цель: красивый, интерактивный, визуальный учебник того же класса качества, что «Математика 6», — с тренажёрами, canvas/SVG-анимациями, пошаговыми разборами, финалами-боссами и курсовым финалом. Реализация — Opus делает фундамент + эталонную Главу 1, Главы 2–3 тиражирует Sonnet по образцу.
1. Структура книги (оглавление, 3 главы)
Книга Герасимова переплетает геометрию внутрь числовых глав (это её замысел) — не выделяем геометрию отдельно, а сохраняем авторский порядок.
Часть 1
Глава 1. Натуральные числа (§1–17)
- Как решать задачу
- Натуральные числа и число нуль. Чтение и запись
- Сравнение натуральных чисел
- Точка, прямая, луч, отрезок, плоскость
- Измерение отрезков. Длина отрезка
- Изображение натуральных чисел на координатном луче
- Округление натуральных чисел
- Сложение и вычитание натуральных чисел
- Умножение и деление натуральных чисел
- Степень числа с натуральным показателем
- Деление с остатком
- Делители, кратные. НОД и НОК
- Признаки делимости
- Простые и составные числа. Разложение на множители
- Математика вокруг нас (прикладной)
- Задачи на движение, взвешивание, переливание (занимательный/прикладной)
- Исторические сведения о числах (история)
Глава 2. Выражения. Уравнения (§1–9)
- Числовые выражения
- Выражения с переменными
- Уравнение
- Формулы
- Решение задач с помощью уравнений
- Угол. Измерение и построение углов
- Математика вокруг нас (прикладной)
- Занимательные задачи
- Исторические сведения
Часть 2
Глава 3. Обыкновенные дроби (§1–18)
- Дробные числа. Обыкновенные дроби
- Деление и дроби. Основное свойство дроби
- Правильные и неправильные дроби. Смешанные числа
- Сравнение дробных чисел
- Сложение и вычитание обыкновенных дробей
- Сложение и вычитание смешанных чисел
- Умножение дробных чисел
- Деление дробных чисел
- Задачи на все действия с дробными числами
- Задачи на применение дробей
- Параллельные и перпендикулярные прямые (геом.)
- Ломаная. Многоугольник. Периметр (геом.)
- Площадь. Единицы измерения площади (геом.)
- Площадь прямоугольного треугольника и многоугольников (геом.)
- Среднее арифметическое
- Линейные и столбчатые диаграммы
- Прямоугольный параллелепипед. Куб (геом.)
- Объём. Единицы измерения объёма. Объём параллелепипеда (геом.)
Бэк-материя ч.2 (Задачи с геом. фигурами, Повторение и обобщение, Задания для тренировки, Задачи для любознательных, Логические задачи, Наглядная геометрия) — банки упражнений, не §. Из них черпаем задачи для тренажёров и финала, отдельными § не делаем.
Каждая глава в книге завершается тестом («Ответы к тесту: 1в); 2г)…») → в нашем учебнике это Финал главы (бой с боссами).
2. Архитектура — ПОЛНОЕ переиспользование движка «Математики 6»
Движок math6_engine.js уже generic: читает window.M6 со своими slug / lsPrefix / xpKey,
строит para-selector, навигацию, прогресс/XP/достижения, сайдбар, поиск, глоссарий, тему, финалы.
Ничего форкать не нужно. Страницы 5 класса подключают те же ассеты:
/css/math6.css (общий фреймворк)
/js/api.js /js/xp.js
/js/math6_svg.js (window.Math6 — статичные SVG-фигуры)
/js/math6_anim.js (window.Math6Anim — canvas/SVG-демо) ← ПЕРЕД engine
/js/math6_engine.js (window.M6engine — плумбинг)
Эти файлы — общая визуальная библиотека математики, а не «6 класс». Новые компоненты для 5 класса дописываем в
math6_svg.js/math6_anim.js(выигрывают обе параллели). При желании позже переименуем вmath_svg.js— сейчас не трогаем имена, чтобы не плодить churn.
Страница главы = head (KaTeX CDN + шрифты + math6.css + 5 скриптов) → inline :root-палитра
→ chrome (hdr / hero / psel / #sections / sidebar / search / ach-popup) → inline <script>:
объявить data + builders, затем Object.assign(window.M6, {...}).
КРИТИЧНЫЕ правила (грабли с 6 класса — не наступать снова)
init()движка вызывается ПОСЛЕ всехwindow.*-экспортов — у defer-скриптаreadyStateужеinteractive, иelse init()срабатывает синхронно. Если builder зовётmakeCardдо экспорта →ReferenceError→ ВСЕ §1 показывают заглушку. (В нашем случае init внутри самого движка уже корректен — мы лишь не нарушаем порядок:Object.assign(window.M6,…)до подключения движка не нужен, движок читаетwindow.M6лениво вinit.)- Русская запятая в KaTeX =
2{,}5(иначе сбитый кернинг). В JS-билдерах — хелпер_kf(x). applied:trueу прикладных/исторических § (не входят в боссов финала),final:trueу финала.- ⛔ эмодзи — только inline SVG
.ic. ⛔ Grep-tool — ast-index/vex. Edit-флака на кириллице — верифицировать зелёным тестом.
3. Маппинг глав → LearnSpace
| slug | Глава | § (paras) | para_count | Цвет |
|---|---|---|---|---|
math-5 |
Хаб | — | 47 (Σ) | indigo |
math-5-ch1 |
Натуральные числа | p1–p14 + 3 прикладных + final | 18 | indigo #4f46e5 |
math-5-ch2 |
Выражения. Уравнения | p1–p6 + 3 прикладных + final | 10 | teal #0d9488 |
math-5-ch3 |
Обыкновенные дроби | p1–p18 + final | 19 | rose #e11d48 |
para_count = paras.length (включая прикладные и финал — как в 6 классе). Хаб TOTAL = 18+10+19 = 47.
Хаб закрыт по умолчанию (allowlist) → доступ выдаём в самом конце через /api/access (project_content_access).
Миграция: 050_math5_hub.sql (следующий свободный номер; 049 = math-6). Хаб sort_order = 5
(перед math-6=6), дети 1/2/3.
4. Фазы реализации (волны)
Phase 0 — Фундамент (Opus) ✦ делаем первым
backend/src/db/migrations/050_math5_hub.sql(+npm run migrate)frontend/textbooks/math_5_hub.html(клон math_6_hub: 3 карточки + курсовой финал из 3 боссов + ach-strip «Математик 5 класса», водяной знак «5», палитра indigo/teal/rose)- 3 каркаса
math_5_ch1.html/ch2/ch3— head + chrome +window.M6ТОЛЬКО сparas(без билдеров → движок рисует заглушки; страницы живые, навигация работает) - Тест
backend/tests/math5-page.test.js(jsdom-over-HTML, инлайнит svg/anim/engine): страницы грузятся, секции/psel генерируются, нет рантайм-ошибок, init после экспортов - Commit + push
Phase 1 — Глава 1 «Натуральные числа» (эталон, Opus)
Полные билдеры §1–17 + финал. 2+ интерактива на §, тренажёры со счётом+XP, DnD, пошаговые разборы, визуализации (см. §5). Это образец, по которому Sonnet делает остальное.
Phase 2 — Глава 2 «Выражения. Уравнения» (Sonnet-агент по образцу Главы 1)
Phase 3 — Глава 3 «Обыкновенные дроби» (Sonnet-агент; самая визуальная — дроби + геометрия)
Phase 4 — Обогащение + полировка
По образцу 6 класса: в каждый § «Где это в жизни» (хук) / «Разбор по шагам» (→ авто-stepPlayer) / «А знаешь ли ты?» (факт); добить визуализации; прогон тестов.
Phase 5 — Курсовой финал на хабе + звание «Математик 5 класса» (+150 XP)
3 боссовых испытания (по одному из главы): натуральные числа · уравнение/угол · дроби.
Phase 6 — Доступ ученикам/классам (/api/access) — действие админа.
5. Визуальная карта — см. PLAN_MATH_5_VISUAL.md
Кратко: что уже есть в Math6/Math6Anim (numberLine, plane, pie, venn, areaModel,
numberLineWalk/Jumps, coordGame, balanceScale, triangleDrag, stepPlayer…) переиспользуем; новое
для 5 класса — protractor (угломер, §2.6), семейство дробей (fractionBar, equivFractions,
fractionAdd, fractionMulArea, improperMixed), sieve (решето Эратосфена, §1.14), factorTree,
divisibilityChecker (§1.13), divisorsLadder (НОД/НОК, §1.12), powerBlocks (степень, §1.10),
rulerMeasure (§1.5), linePrimitives (точка/прямая/луч, §1.4), polygonPerimeter (§1.12 ч.2 /3.12),
areaGrid + triangleArea (§3.13–14), averageBars (§3.15), barChart/lineChart (§3.16),
box3d + volumeCubes (§3.17–18, 2D-изометрия, не интерактивный 3D — это допустимо и нужно).
6. Геймификация / тесты / гочи
- XP/уровни (общий
math5_xp), прогрессmath5_chN_*, финал главы = боссы (HP-бар), 4/5 → +40 XP и ачивка «Глава N пройдена». Курсовой финал → звание + 150 XP (localStorage math5_course_done). - Тесты:
backend/tests/math5-page.test.jsпо образцу math6 (jsdom, инлайн ассетов, HEADLESS-guard canvas). Прогон:node -e "require('./tests/math5-page.test.js')"изbackend/. - pre-commit hook гоняет полный backend-прогон при staged backend-файлах (baseline 3 Auth-фейла).
- Коммитить поимённо (не
git add -A), push сразу. fetch перед работой (project_concurrent_sessions_branch).
7. Замечание про §3.17–18 (параллелепипед, куб, объём)
В 6 классе пользователь исключил интерактивные 3D-тела. Здесь иначе: параллелепипед/куб/объём — обязательная программа 5 класса, и рисуются стандартной 2D-изометрией (статичный чертёж с подписанными рёбрами + анимация заполнения единичными кубиками). Это не «3D-движок», а плоский SVG-рисунок — включаем.