Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 KiB
PLAN — Интерактивный учебник «Математика 6»
Источник: В. Д. Герасимов, О. Н. Пирютко. «Математика. 6 класс». — Минск: Адукацыя і выхаванне, 2022 (2-е изд., исправленное и дополненное). Допущено Министерством образования Республики Беларусь. PDF:
G:\Dev\Тесты\Методички\тест_6 класс\Книги\matematika_6kl_gerasimov_rus_2022.pdf(317 стр.). Исполнитель: Sonnet, по одной «волне» за раз (паттерн глав, как в Химии 7 / Алгебре 7). Контент авторский (наш) — учебник используется только как ориентир программы и дидактики. Полеauthorоставляем пустым (политика проекта).
СТАТУС (2026-06-02) — ЗАВЕРШЕНО
✅ ВСЕ 6 глав + курсовой финал — ГОТОВЫ и на master (Opus целиком). Тесты math6: 17/17, полный backend-прогон без новых фейлов. Движок
math6_engine.js+Math6(numberLine/plane/pie/venn). Осталось только организационное: выдать доступ ученикам (/api/access, действие админа — хаб закрыт по умолчанию). Подробный статус и коммиты — в project_math6_textbook. Уточнение архитектуры vs п.0 ниже: плумбинг вынесен в общийfrontend/js/math6_engine.js(читаетwindow.M6), а кастомные интерактивы § остаются inline-билдерамиbuildPN()— это лучше «копии движка в каждой главе» (меньше дублирования, проще Sonnet), смысл выбора (свобода интерактивов, не пул химии) сохранён. Файлы фундамента:math6_engine.js,math6_svg.js(Math6.numberLine/planeготовы; круг/треугольники/развёртки/симметрия — добавить в Гл.5–6),css/math6.css, миграция049применена,math_6_hub.html+ 6 каркасов, тестmath6-page.test.js. Дальше: Гл.2–4 — Sonnet по эталону Главы 1 (math_6_ch1.html); Гл.5–6 (графика) — Opus/ревью; затем курсовой финал на хабе + доступ ученикам (/api/access). Паттерн волны и эталон см. в project_math6_textbook.
0. Чем «Математика 6» отличается от существующих учебников
Это комбинированный курс (арифметика + начала алгебры + наглядная геометрия) — первый математический учебник проекта для 6 класса. В отличие от химии/физики (симуляции) и узких алгебры/геометрии 7–11, здесь под одной крышей: десятичные дроби, проценты/пропорции, множества, отрицательные числа, координатная плоскость и наглядная геометрия.
Архитектурное решение — переиспользуем паттерн Алгебры 7 (НЕ движок химии). Доказательная база:
- frontend/textbooks/algebra_7_ch1.html — самодостаточная страница-глава (~1640 строк): весь движок (STATE/прогресс/XP/ачивки, PARAS/BUILDERS, SIDEBARS/TIPS, глоссарий, поиск, тема, конфетти, DnD-сортировщик) — inline в
<script>, контент глав — функцииbuildPN(), возвращающие HTML-строку. - Это идеально для математики: каждый § требует своего интерактива (числовая прямая, разрядная таблица, графопостроитель, круги Эйлера), а не унифицированного пула MCQ, как
chem8_engine.js. - Формулы — KaTeX (CDN,
$…$/$$…$$), уже подключён в шаблоне algebra_7. - SVG-геометрия —
window.GEOM7из frontend/js/geom7_svg.js и координатные сетки изalg10_svg.js(изучить в Phase 0, переиспользовать/обернуть).
Что копируем дословно из algebra_7_ch1.html (ссылки на блоки — это «золотой» скелет главы):
| Блок | Строки-ориентир | Назначение |
|---|---|---|
STATE + calcLevel + loadProgress/saveProgress/bumpProgress |
337–392 | прогресс по §, уровни |
_TB_SLUG, _flushProgress/_queueProgress/markParaRead/loadServerReadState |
394–420 | синк прогресса на /api/textbooks/:slug/progress |
addXp / refreshProgressUI / achievement |
422–455 | XP, ачивки, попапы |
PARAS / buildParaSelector / BUILDERS / ensureBuilt / goTo |
460–495 | навигация по §, ленивая сборка |
SIDEBARS / TIPS / buildSidebar |
498–558 | шпаргалка + подсказка в сайдбаре |
initTheme, renderMath, feedback, fmt, makeCard, secNav, confetti |
560–614 | тема, KaTeX, карточки, навигация |
setupSorter (drag-and-drop) |
617–629 | классификаторы (виды треугольников, дробь/целое и т.п.) |
GLOSSARY + wrapGlossary + initGlossaryTip |
632–663 | подсветка терминов + тултипы |
SEARCH_INDEX |
666+ | поиск по §/понятиям/формулам |
Sonnet берёт algebra_7_ch1.html как образец, меняет палитру, _TB_SLUG, PARAS/SIDEBARS/TIPS/ACH_LABELS/GLOSSARY и пишет buildPN() под программу 6 класса.
1. Полная программа (оглавление, стр. 309–311 PDF)
6 глав, 47 параграфов (38 содержательных + 6 «Тест для самопроверки» + 5 «Математика вокруг нас» — последние два станут Финалом и прикладным §).
Глава 1. ДЕСЯТИЧНЫЕ ДРОБИ (стр. 5)
- Десятичная запись дробей. Разряды десятичных дробей
- Сравнение десятичных дробей. Округление десятичных дробей
- Изображение десятичных дробей на координатном луче
- Сложение и вычитание десятичных дробей
- Умножение и деление десятичной дроби на разрядную единицу. Умножение на 10, 100, 1000 …
- Умножение десятичных дробей
- Деление десятичной дроби на натуральное число
- Деление на десятичную дробь
- Конечные и бесконечные десятичные дроби
- Преобразования числовых выражений с обыкновенными и десятичными дробями
- Тест для самопроверки → Финал главы
- Математика вокруг нас → прикладной §
Глава 2. ПРОЦЕНТЫ И ПРОПОРЦИИ (стр. 86)
- Проценты
- Основные задачи на проценты
- Пропорция и её свойства
- Прямая и обратная пропорциональные зависимости
- Решение задач с помощью пропорций
- Масштаб
- Круговые диаграммы
- Тест для самопроверки → Финал
- Математика вокруг нас → прикладной §
Глава 3. МНОЖЕСТВО (стр. 151)
- Множество. Элементы множества. Пустое множество
- Способы задания множеств
- Операции над множествами (пересечение, объединение)
- Круги Эйлера. Решение задач с помощью кругов Эйлера
- Тест для самопроверки → Финал
Глава 4. РАЦИОНАЛЬНЫЕ ЧИСЛА (стр. 178)
- Положительные и отрицательные числа. Координатная прямая
- Модуль числа. Противоположные числа. Множество целых чисел. Множество рациональных чисел
- Сравнение рациональных чисел
- Сложение рациональных чисел
- Вычитание рациональных чисел
- Законы сложения рациональных чисел
- Умножение рациональных чисел
- Деление рациональных чисел
- Задачи на все действия с рациональными числами
- Тест для самопроверки → Финал
- Математика вокруг нас → прикладной §
Глава 5. КООРДИНАТНАЯ ПЛОСКОСТЬ (стр. 247)
- Прямоугольная (декартова) система координат на плоскости
- График. Графики реальных процессов
- График прямой пропорциональной зависимости. График обратной пропорциональной зависимости
- Тест для самопроверки → Финал
- Математика вокруг нас → прикладной §
Глава 6. НАГЛЯДНАЯ ГЕОМЕТРИЯ (стр. 274)
- Наглядные представления тел в пространстве, примеры развёрток тел
- Окружность. Круг. Формулы длины окружности и площади круга
- Виды треугольников
- Симметрия относительно точки
- Фигуры, симметричные относительно прямой → + Финал главы
2. Структура файлов и регистрация в каталоге
Регистрация учебника — миграция + HTML-файлы (маршруты /api/textbooks, /textbook/:slug и каталог textbooks.html — общие, менять не нужно). Таблица textbooks (см. 004_textbooks.sql) + parent_slug (хаб = NULL, главы = slug хаба).
Создаём (Phase 0):
| Файл | Назначение |
|---|---|
backend/src/db/migrations/049_math6_hub.sql |
хаб math-6 + 6 детей math-6-ch1..ch6 |
frontend/textbooks/math_6_hub.html |
хаб: 6 карточек глав, общий прогресс, курсовой финал |
frontend/textbooks/math_6_ch1.html … ch6.html |
6 страниц-глав на скелете algebra_7 |
frontend/css/math6.css |
тема учебника (по образцу alg7-fx.css + inline-блок) |
frontend/js/math6_svg.js |
window.Math6 — координатная плоскость, графики, окружность/круг, треугольники, 3D-тела и развёртки, симметрия (обёртка над GEOM7/alg10_svg) |
frontend/js/math6-fx.js (опц.) |
мелкие эффекты/комбо, если понадобятся сверх скелета |
backend/tests/math6-page.test.js |
тесты рендера хаба и 6 глав |
Образец миграции 049_math6_hub.sql (по 046_chemistry7_hub.sql):
-- Math 6 hub migration. Hub math-6 + 6 chapters. Контент авторский. author=''.
INSERT OR IGNORE INTO textbooks
(slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active, parent_slug)
VALUES
('math-6','math',6,'Математика — 6 класс','',
'Полный курс: десятичные дроби, проценты и пропорции, множества, рациональные (отрицательные) числа, координатная плоскость, наглядная геометрия. 6 глав, 38 параграфов.',
'math_6_hub.html', 48, 'indigo', 6, 1, NULL);
INSERT OR IGNORE INTO textbooks
(slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active, parent_slug)
VALUES
('math-6-ch1','math',6,'Математика 6 · Десятичные дроби','','§§1–12: запись и разряды, сравнение и округление, координатный луч, действия, бесконечные дроби, преобразования.','math_6_ch1.html',12,'indigo',1,1,'math-6'),
('math-6-ch2','math',6,'Математика 6 · Проценты и пропорции','','§§1–9: проценты, 3 типа задач, пропорция и её свойство, прямая/обратная зависимость, масштаб, круговые диаграммы.','math_6_ch2.html',9,'cyan',2,1,'math-6'),
('math-6-ch3','math',6,'Математика 6 · Множество','','§§1–5: множество и элементы, способы задания, пересечение и объединение, круги Эйлера.','math_6_ch3.html',5,'violet',3,1,'math-6'),
('math-6-ch4','math',6,'Математика 6 · Рациональные числа','','§§1–11: положительные и отрицательные числа, модуль, Z и Q, сравнение, действия, законы.','math_6_ch4.html',11,'rose',4,1,'math-6'),
('math-6-ch5','math',6,'Математика 6 · Координатная плоскость','','§§1–5: декартова система координат, графики реальных процессов, графики прямой и обратной пропорциональности.','math_6_ch5.html',5,'emerald',5,1,'math-6'),
('math-6-ch6','math',6,'Математика 6 · Наглядная геометрия','','§§1–5: тела и развёртки, окружность и круг (C, S), виды треугольников, центральная и осевая симметрия.','math_6_ch6.html',6,'amber',6,1,'math-6');
para_countхаба = сумма детей (12+9+5+11+5+6 = 48) — так агрегируется прогресс (см. 046_chemistry7_hub.sql, хаб=26=сумма). Применение:npm run migrate(раннер migrations-runner.js сортирует и применяет в транзакции, ведёт_migrations).
3. Дизайн-система
- Шрифты: Outfit (заголовки), Inter (текст), Unbounded (бейджи XP) — как в hub-образце.
- Палитра глав (CSS-переменные на каждой странице):
| Глава | Цвет | hex |
|---|---|---|
| 1. Десятичные дроби | indigo | #4f46e5 |
| 2. Проценты и пропорции | cyan | #0891b2 |
| 3. Множество | violet | #7c3aed |
| 4. Рациональные числа | rose | #e11d48 |
| 5. Координатная плоскость | emerald | #059669 |
| 6. Наглядная геометрия | amber | #d97706 |
- Тёмная тема — через
html.dark(копироватьinitTheme, ключmath6_chN_theme). - Иконки — только inline SVG
.ic. ⛔ Никаких эмоджи (правило проекта). - Десятичная запятая в KaTeX: русская запись
2,35пишется как2{,}35(2,35без скобок даёт лишний пробел). Это критично для всей Главы 1. - Адаптив: сетка карточек глав
1fr→1fr 1frпри ≥680px; сайдбар sticky на десктопе, сворачивается на мобильном.
4. Геймификация (как в algebra_7)
- Прогресс по §:
STATE.progress[pN]0–100; ≥50% →markParaRead; 100% → ачивка. - XP/уровни:
addXp(n, src)локально +window.LS.xp.add(n, 'math6-chN-…')на сервер; уровеньcalcLevel. - Финал главы = страница-босс (5–6 итоговых задач), +50 XP за полное прохождение (как
final1в algebra_7). - Курсовой финал на хабе: 6–8 боссов по всем главам + ачивка «Математик 6 класса» (+150 XP) — по образцу
chemistry_7_hub.html. - localStorage-ключи:
math6_chN_progress,math6_chN_achievements,math6_xp,math6_chN_theme. - Синк прогресса:
_TB_SLUG = 'math-6-chN'→ POST/api/textbooks/math-6-chN/progress.
5. Фазы реализации
Каждая глава = отдельная фаза, наполняется волнами (2–4 § за волну): добавить
buildPN+ записи вPARAS/SIDEBARS/TIPS/GLOSSARY+ тест + коммит. После каждой волны —git addпоимённо +commit+push(правило проекта).
Phase 0 — Инфраструктура (фундамент)
Цель: учебник появляется в каталоге, все 6 глав открываются (каркасы с заглушками), тест зелёный.
- Изучить
geom7_svg.js(window.GEOM7) иalg10_svg.js(координатная сетка) — что переиспользовать. frontend/js/math6_svg.js(window.Math6):plane()(оси, сетка, точки, четверти),numberLine(),circle(r)(+ C, S),triangle(type),solid(kind)+net(kind)(куб/призма/пирамида/цилиндр/конус),reflectPoint/reflectLine.frontend/css/math6.css— тема + общие классы карточек/сайдбара (вынести из inline algebra_7, чтобы 6 страниц не дублировали стили).math_6_hub.html— 6 карточек глав (палитра выше), общий прогресс, свёрнутый курсовой финал (боссы пока заглушка).math_6_ch1.html … ch6.html— скопировать скелетalgebra_7_ch1.html; задать_TB_SLUG, палитру,PARASпо реальной программе;BUILDERS— временные заглушки (para-hero+ «содержание готовится» + кнопка «прочитал»).049_math6_hub.sql+npm run migrate.backend/tests/math6-page.test.js: хаб рендерит 6.ch-card; каждая глава — корректное число.psel-card, первый § активен, нет JS-ошибок.- Коммит
feat(math6): Phase 0 — инфраструктура учебника (хаб + 6 каркасов).
Phase 1 — Глава 1. Десятичные дроби (10 § + финал + прикладной)
| § | Интерактив |
|---|---|
| §1 Запись и разряды | Разрядная таблица-конструктор: перетащить цифры в разряды (единицы…тысячные), показать значение; чтение/запись дроби |
| §2 Сравнение и округление | Числовая прямая + тренажёр >,<,=; округление с подсветкой нужного разряда |
| §3 Координатный луч | Интерактивный луч: поставить точку по дроби / прочитать дробь по точке (Math6.numberLine) |
| §4 Сложение и вычитание | Сложение «в столбик» с анимацией выравнивания запятой |
| §5 Умножение/деление на разрядную единицу | Слайдер сдвига запятой при ×/÷ 10, 100, 1000 |
| §6 Умножение десятичных | Тренажёр + правило подсчёта знаков после запятой |
| §7 Деление на натуральное число | Пошаговое деление «уголком» |
| §8 Деление на десятичную дробь | Приём переноса запятой (×10ⁿ у делимого и делителя) |
| §9 Конечные и бесконечные дроби | Классификатор: конечная / периодическая; период в скобках 0,(3) |
| §10 Преобразования | Конвертер «обыкновенная ↔ десятичная»; смешанные выражения |
| §11→Финал | 5 боссов на все действия с десятичными |
| §12 Математика вокруг нас | Прикладные задачи: деньги, чеки, измерения |
Phase 2 — Глава 2. Проценты и пропорции (7 § + финал + прикладной)
| § | Интерактив |
|---|---|
| §1 Проценты | Конвертер «дробь ↔ % ↔ десятичная»; визуал — квадрат 10×10 (100 клеток) |
| §2 Основные задачи на проценты | 3 типа задач + блок-схема «алгоритм определения типа» (из приложения учебника, стр.2) |
| §3 Пропорция и её свойство | Основное свойство «крест-накрест» a·n = b·m; проверка/составление пропорции |
| §4 Прямая и обратная зависимость | Классификатор зависимости + 2 таблицы/графика |
| §5 Решение задач с помощью пропорций | Пошаговый решатель (что куда подставить) |
| §6 Масштаб | Карта + линейка; перевод масштаба (1:N) |
| §7 Круговые диаграммы | Построитель: данные → сектора (градусы/проценты), как «суточная норма БЖУ» из приложения |
| §8→Финал | 5 боссов: проценты + пропорции |
| §9 Математика вокруг нас | Скидки, вклады, статистика |
Phase 3 — Глава 3. Множество (4 § + финал)
| § | Интерактив |
|---|---|
| §1 Множество и элементы | Конструктор множества, ∈ / ∉, пустое множество ∅ |
| §2 Способы задания | Перечисление ↔ характеристическое свойство |
| §3 Операции (∩, ∪) | Интерактивная диаграмма двух областей: пересечение, объединение |
| §4 Круги Эйлера | Круги Эйлера (Math6) + задачи на подсчёт элементов |
| §5→Финал | 5 боссов на множества и круги Эйлера |
Phase 4 — Глава 4. Рациональные числа (9 § + финал + прикладной)
| § | Интерактив |
|---|---|
| §1 Положит./отриц. Координатная прямая | Термометр/прямая: ставить и читать точки |
| §2 Модуль. Противоположные. Z и Q | ` |
| §3 Сравнение рациональных | Тренажёр сравнения по координатной прямой |
| §4 Сложение | Модель «долги/имущество» (стрелки на прямой) |
| §5 Вычитание | Вычитание = прибавление противоположного |
| §6 Законы сложения | Переместительный/сочетательный — оптимизация суммы |
| §7 Умножение | Таблица знаков (+/-)·(+/-) + тренажёр |
| §8 Деление | Знаки при делении + тренажёр |
| §9 Все действия | Порядок действий, смешанный тренажёр |
| §10→Финал | 6 боссов на все действия с рациональными |
| §11 Математика вокруг нас | Температуры, координаты, долги |
Phase 5 — Глава 5. Координатная плоскость (3 § + финал + прикладной)
| § | Интерактив |
|---|---|
| §1 Декартова система координат | Плоскость: ставить/читать точки (x; y), определять четверть (Math6.plane) |
| §2 График. Графики реальных процессов | Чтение графика (движение/температура); построение по таблице |
| §3 Графики прямой/обратной пропорциональности | y = kx и y = k/x, слайдер k, форма графика (прямая/гипербола) |
| §4→Финал | 5 боссов: координаты + графики |
| §5 Математика вокруг нас | Графики из жизни (расписание, прогноз) |
Phase 6 — Глава 6. Наглядная геометрия (5 § + финал)
| § | Интерактив |
|---|---|
| §1 Тела и развёртки | Галерея 3D-тел (куб, призма, пирамида, цилиндр, конус) + интерактивные развёртки |
| §2 Окружность. Круг. C и S | C = πd = 2πr, S = πr²; слайдер радиуса, значение π (как в приложении) |
| §3 Виды треугольников | Классификатор по сторонам (разносторонний/равнобедренный/равносторонний) и по углам (остро-/прямо-/тупоугольный) — таблица из приложения, DnD setupSorter |
| §4 Симметрия относительно точки | Центральная симметрия: построить образ точки/фигуры |
| §5 Симметрия относительно прямой | Осевая симметрия (зеркало) + Финал главы (5 боссов) |
Phase 7 — Финалы, курсовой финал, глоссарий, полировка
- Курсовой финал на хабе: 6–8 боссов (по 1 на главу) + ачивка «Математик 6 класса».
- Заполнить
SIDEBARS(шпаргалки) иTIPSво всех 38 §; собрать общийGLOSSARY(десятичная дробь, разряд, процент, пропорция, масштаб, множество, пересечение/объединение, модуль, рациональное число, координата, абсцисса/ордината, развёртка, симметрия…). - Прогон тестов, проверка KaTeX-запятых, тёмной темы, мобильной вёрстки.
Phase 8 — Доступ и проверка в браузере
- Выдать доступ ученикам/классам: новый хаб по умолчанию закрыт (allowlist, 040_content_access.sql) → admin/teacher даёт
POST /api/access/rules { content_type:'textbook', content_ref:'math-6', scope:'class', target_id, allow:1 }. См. project_content_access. - Проверка в реальном браузере: каталог → хаб → каждая глава, прогресс, синк, боссы.
6. Паттерн волны (рецепт для Sonnet)
- Открыть нужную
math_6_chN.html, найтиBUILDERSи заглушкуbuildPk. - Написать
buildPk():makeCard('theory'|'rule'|'example', …)для теории (2–3 карточки) + блок интерактива (.wg) +secNav(prev,next)+ кнопка «прочитал». В конце —box.innerHTML=…; renderMath(box);и навесить обработчики. - Сложную графику рисовать через
window.Math6(илиGEOM7); формулы — KaTeX (2{,}5). - Добавить запись в
SIDEBARS[pk],TIPS, релевантныеGLOSSARY. - Тест: открыть страницу в jsdom, проверить, что
buildPkсмонтировал ключевой узел и нет JS-ошибок. - Верифицировать персист правок (см. гочи ниже) →
git addпоимённо →commit(feat(math6): глава N §a–§b) →push.
7. Критические правила и «гочи» (из памяти проекта)
- ⛔ Эмодзи запрещены — только inline SVG
.ic. См. feedback_no_emoji. - ⛔ Grep-инструмент запрещён. Поиск:
ast-index(символы/usages) +vex(semantic). Чтение —Readс offset/limit, файлы —Glob. См. reference_vex_search. - ⚠️ Cyrillic-FS флака (путь
G:\Dev\Тесты\…):Editиногда рапортует success, но не персистит пакет правок. После пакета Edit'ов — проверить персист (node -e "fs.readFileSync(...).includes('маркер')"через Bash) и только потом коммитить. См. feedback_verify_edits_applied, project_chemistry7_textbook. - БД: встроенный
node:sqlite(DatabaseSync), НЕ better-sqlite3. Живая БДbackend/data/learnspace.db. См. reference_sqlite_node. - Тесты: запускать через
node -e "require('./tests/math6-page.test.js')"(надёжнее резолвит кириллицу, чемnode --test <file>); baseline — 3 предсуществующих Auth-фейла (не трогать). - Параллельные сессии в одной ветке:
git fetchперед работой,addпоимённо, без слепого force-push. См. project_concurrent_sessions_branch. - KaTeX без
katex-пакета в jsdom — рендер формул в тестах не вызывать на узлах, требующих canvas; проверять структуру, не визуал.
8. Чек-лист приёмки
/textbooksпоказывает карточку «Математика — 6 класс» (после выдачи доступа).- Хаб открывает 6 глав; общий прогресс агрегируется.
- Все 38 содержательных § наполнены теорией + рабочим интерактивом.
- 6 финалов глав + курсовой финал с ачивкой «Математик 6 класса».
- Прогресс/XP синкаются на сервер; localStorage-ключи
math6_*. - Формулы (десятичные запятые!) рендерятся корректно; тёмная тема и мобильная вёрстка ок.
backend/tests/math6-page.test.jsзелёный; полный прогон без новых регрессий.- Всё закоммичено поимённо и запушено в
master.
Оценка объёма
6 глав · 38 содержательных § + 6 финалов + курсовой финал. По темпу Химии 7 (волны по 2–4 §) — Phase 0 ≈ 1 заход, далее ≈ 12–16 волн на наполнение. Фундамент (скелет из algebra_7) переиспользуется на 90% — основная работа в buildPN() и Math6-графике (Главы 5–6 самые «рисовательные»).