# 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]]).
