Files
Learn_System/plans/textbooks-6/PLAN_MATH_6_ENRICH.md
T
Maxim Dolgolyov 85c516e811 feat(math6): обогащение всех глав — хук, разбор по шагам, факты в каждом §
Каждый содержательный параграф 6 глав дополнен (Sonnet, по главе):
- карточка «Где это в жизни» (реальный контекст темы);
- «Разбор по шагам» (нумерованный алгоритм решения);
- «А знаешь ли ты?» (интересный факт/история);
- доведено до ≥2 рабочих интерактивов (где было меньше — добавлены).
Движок/общие файлы не трогались; структура M6/порядок init сохранены.
Проверено: тесты math6 18/18, честный рендер 4 глав — контент появляется,
рантайм-ошибок нет (только jsdom scrollTo-заглушка).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 21:14:56 +03:00

48 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PLAN — Обогащение «Математики 6»: каждый параграф интересным + интерактивным
> Базовый учебник готов (6 глав, движок `math6_engine.js`, `Math6` svg). Тесты 18/18.
> Цель этого этапа: сделать **каждый содержательный §** живым и увлекательным для ученика,
> который впервые изучает тему. Исполнитель — **Sonnet**, по одной главе за агент (файлы глав независимы).
## Что добавляем в КАЖДЫЙ содержательный § (поверх уже существующего)
У каждого § уже есть 2 интерактива + теория-карточки + шпаргалка + подсказка + глоссарий.
Sonnet **дополняет** (не ломает существующее) так, чтобы § стал интереснее:
1. **«Где это в жизни» (хук).** Карточка `makeCard('oral', …)` или `theory`: 2–4 предложения — зачем тема нужна, где встречается (деньги, спорт, кулинария, природа, техника, игры). Цепляющее начало.
2. **Разбор примера по шагам.** Карточка `makeCard('example', …)` с **нумерованными шагами** решения (если ещё нет) — чтобы ученик видел алгоритм, а не только ответ. Можно `<details class="spoiler">` «Решение по шагам».
3. **«А знаешь ли ты?» / интересный факт.** Короткий факт/история по теме (математика, история чисел, рекорды) — `makeCard('theory', 'А знаешь ли ты?', …)` или spoiler.
4. **Минимум 2 РАБОЧИХ интерактива.** Если у § их меньше или они слабые — довести до 2 содержательных (тренажёр со счётом+XP, конструктор/демонстратор, классификатор-DnD, визуализация через `Math6`). Каждый — с обратной связью `feedback()` и начислением `addXp`/`bumpProgress`.
5. **Мини-челлендж «со звёздочкой».** Одна задача чуть сложнее/любопытнее в конце интерактивов (по желанию).
Финалы глав (боссы) и прикладные § («Математика вокруг нас») — оставить, можно усилить 1 боссом/задачей.
## Жёсткие правила (НЕ нарушать — иначе сломается движок/страница)
- **Редактировать ТОЛЬКО свой файл главы** `frontend/textbooks/math_6_chN.html`. НЕ трогать `math6_engine.js`, `math6_svg.js`, `math6.css`, другие главы — это общие/чужие файлы.
- Контент § — внутри его `function buildPk(){…}`; данные — в `SIDEBARS`/`TIPS`/`GLOSSARY`; всё уже подключается через `Object.assign(window.M6, …)` в конце скрипта. **Структуру M6/порядок init НЕ менять.**
- Хелперы брать готовые (глобальные от движка): `makeCard, secNav, readBtn, feedback, renderMath, fmt, num, addXp, bumpProgress, achievement, setupSorter, confetti`; графика — `window.Math6.*` (numberLine/plane/pie/venn — только вызывать). Локальные `_ri/_pick/_kf/_round` уже есть в начале скрипта главы.
- **KaTeX: десятичная запятая — `2{,}5`** (не `2,5`). Числа считать целочисленными мантиссами (`_mant/_dec`), не float.
- **⛔ Эмодзи запрещены** — только inline SVG `.ic`.
- Каждый `buildPk` заканчивается `secNav(prev,next) + readBtn('pk')` и `box.innerHTML=…; renderMath(box);` затем навешивает обработчики.
- Русский язык, уровень 6 класса, по программе Герасимова. Не выдумывать неверную математику.
## Само-проверка (обязательно перед завершением агента)
1. `node --check` своего файла (через Bash — синтаксис html не проверяется, но JS внутри — нет; вместо этого ниже).
2. Прогнать общий тест: `cd backend && node -e "require('./tests/math6-page.test.js')"` — все тесты зелёные, ошибок скриптов нет. (Тест монтирует каждую главу в jsdom; если builder упал — увидишь.)
3. Если тест по своей главе падает — чинить, не оставлять сломанным.
## Раскладка по агентам (1 глава = 1 агент Sonnet)
| Агент | Файл | Параграфы для обогащения |
|---|---|---|
| ch1 | `math_6_ch1.html` | §1–§10 + §12 (десятичные дроби) |
| ch2 | `math_6_ch2.html` | §1–§7 + §9 (проценты, пропорции) |
| ch3 | `math_6_ch3.html` | §1–§4 (множества) |
| ch4 | `math_6_ch4.html` | §1–§9 + §11 (рациональные числа) |
| ch5 | `math_6_ch5.html` | §1–§3 + §5 (координатная плоскость) |
| ch6 | `math_6_ch6.html` | §1–§5 (наглядная геометрия) |
После работы агентов — общий прогон тестов, ревью, коммит поимённо + push (см. [[project_math6_textbook]]).