Files
Maxim Dolgolyov 6c1e003340 docs(textbooks): план реализации интерактивного учебника Химия 7
Полный план учебника Химия 7 (Беларусь, Шиманович 2023): 26 §, 4 главы,
5 лаб. опытов, 4 практ. работы. Архитектура hub + 4 главы (как Химия 8),
карта интерактивов по каждому §, химический стандарт качества,
миграция 046, фазы 0-6, ачивки. Строго по программе 7 класса.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 17:57:45 +03:00

426 lines
43 KiB
Markdown
Raw Permalink 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.
# План реализации: Химия 7 (Беларусь) — интерактивный наглядный учебник
> Цель: создать **с нуля** интерактивный наглядный учебник по **всей программе 7 класса**
> в **современной архитектуре hub + главы** (как Химия 8 / Физика 7–11 / Алгебра / Геометрия),
> на уровне их качества, с поправкой на содержание 7 класса.
>
> **7 класс — это ПЕРВЫЙ курс химии у школьника.** Поэтому всё качественно и наглядно,
> БЕЗ количественной химии 8 класса (нет моля, молярной массы, расчётов по уравнениям,
> периодического закона, строения атома, химической связи, ТЭД, ионных уравнений,
> степени окисления). Акцент — на **первоначальные понятия** (вещество, атом, элемент,
> молекула, формула, валентность, химическая реакция, уравнение) и **первое знакомство**
> с кислородом, водородом, водой и важнейшими классами соединений (оксиды, кислоты, соли,
> основания) на уровне состава, наглядных свойств и качественных реакций.
>
> **Архитектура (по образцу Химии 8):** `chemistry_7_hub.html` (хаб-каталог глав) + **4 файла глав**.
> В БД — родитель `chemistry-7` + 4 ребёнка с `parent_slug`. Каждая глава — самостоятельная
> страница со своими § (см. карту ниже), модульный CSS/JS на предмет. Единый стандарт с
> [[../textbooks-8/PLAN_CHEMISTRY_8.md]] и [[../textbooks-9/PLAN_CHEMISTRY_9.md]].
---
## 🎯 Источник
| Параметр | Значение |
|----------|----------|
| Книга | `himiya_7kl_shimanovich_rus_2023 (1).pdf` |
| Авторы | Шиманович И. Е., Красицкий В. А., Сечко О. И., Хвалюк В. Н. |
| Изд. | Минск, «Народная асвета», 2023 (2-е издание, пересмотренное), 175 с., тираж 121 000 |
| Структура | **4 главы, 26 §, 5 лабораторных опытов, 4 практические работы, 7 приложений** |
| Справочные таблицы (приложения) | ряд активности металлов (Прил.4), расчёт массовой доли элемента (Прил.3), бытовые названия веществ (Прил.6), единицы массы/объёма (Прил.7), вода в природе (Прил.5) |
PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\`. Оглавление — стр. 3–4 PDF.
Авторов **в hub НЕ показываем** (политика проекта, см. [[../textbooks-7/PLAN_PHYSICS_7.md]]).
> **Важные отличия от Химии 8:**
> 1. Это **первый** курс химии — объяснять с нуля, простым языком, максимум наглядности.
> 2. **Качественно, не количественно**: валентность (а не степень окисления), `M_r` как
> «во сколько раз тяжелее» (без моля и `M`), баланс уравнений подбором (без стехиометрии).
> 3. Классы соединений даются **в порядке знакомства по ходу курса** (оксиды — в теме «Кислород»,
> кислоты и соли — в теме «Водород», основания — в теме «Вода»), а НЕ единой главой как в 8 кл.
> 4. Индикаторы (лакмус, метилоранж, фенолфталеин), ряд активности, признаки реакций —
> **ядро наглядности** курса.
>
> **Соответствие «глава книги → файл главы → slug»:**
>
> | Глава книги | § | Файл | slug | Цвет |
> |---|---|---|---|---|
> | Гл.I Первоначальные химические понятия | 112 | `chemistry_7_ch1.html` | `chemistry-7-ch1` | emerald |
> | Гл.II Кислород | 1317 | `chemistry_7_ch2.html` | `chemistry-7-ch2` | sky/cyan |
> | Гл.III Водород | 1822 | `chemistry_7_ch3.html` | `chemistry-7-ch3` | violet |
> | Гл.IV Вода | 2326 | `chemistry_7_ch4.html` | `chemistry-7-ch4` | blue |
>
> Хаб: `chemistry_7_hub.html` / slug `chemistry-7` (родитель в каталоге).
> Палитра hub — **emerald/green** (первые шаги в химии, природа, вода), не пересекается с
> Химией 8 (amber) и Химией 9 (amber).
---
## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (26 §)
Колонка **«Интерактив»** — главный наглядный элемент сверх текста (минимум 1 «звёздный»
виджет на §; полный набор — в стандарте ниже).
### ГЛАВА I. Первоначальные химические понятия (§§1–12) — *emerald*
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|------|------|------------------------------|
| §1 | Химия — наука о веществах | вещество vs тело; свойства веществ; наблюдение/опыт; лаб. оборудование, ТБ | **Виртуальная лаборатория-знакомство** (наведи на оборудование → название/назначение + правило ТБ) + DnD «тело / вещество» |
| §2 | Чистые вещества и смеси | однородные/неоднородные смеси; способы разделения | **Симулятор разделения смесей** (фильтрование, выпаривание, отстаивание, дистилляция, магнит) + классификатор |
| §3 | Атомы. Химические элементы | атом; химический элемент; символы элементов | **Тренажёр символов элементов** (название↔символ) + мини-ПСХЭ как каталог (`miniPeriodic`) |
| §4 | Относительная атомная масса | `A_r`; а.е.м. = 1/12 массы атома C | **«Весы атомов»**: во сколько раз атом X тяжелее H/C; поиск `A_r` по элементу |
| §5 | Молекулы. Простые вещества | молекула; простое вещество; атомность O₂, O₃, H₂, металлы | **3D-модели простых веществ** (biochem-core: H₂, O₂, O₃, N₂) + классификатор «атом/молекула/простое» |
| §6 | Сложные вещества | атомы разных элементов: H₂O, CO₂, CH₄, NH₃ | **3D-модели сложных веществ** + DnD «простое / сложное» |
| §7 | Химическая формула | индекс, коэффициент; качественный/количественный состав; чтение формул | **Парсер/конструктор формулы** (формула → какие атомы и сколько) + «читалка» (аш-два-о) |
| §8 | Относительная молекулярная масса | `M_r = Σ A_r·index` | **Калькулятор `M_r`** (biochem-core) с пошаговым разбором + калькулятор массовой доли элемента `w(A)` (Прил.3) |
| §9 | Валентность | валентность по водороду; H–I, O–II; составление формул по валентности | **Конструктор формул по валентности** (2 элемента + валентности → НОК индексов + проверка) + «черточки валентности» |
| §10 | Явления физические и химические. Признаки химических реакций | признаки: цвет, осадок, газ, запах, тепло/свет | **Детектор признаков реакции** (малахит→CuO+H₂O+CO₂; CuSO₄+NaOH→синий осадок) `testTube` + DnD «физ./хим. явление» |
| §11 | Закон сохранения массы. Химические уравнения | m(реагентов)=m(продуктов); Ломоносов/Лавуазье | **«Весы сохранения массы»** (анимация: реагенты ⇄ продукты, баланс) + знакомство с уравнением |
| §12 | Составление уравнений химических реакций | подбор коэффициентов; баланс атомов | **Балансировщик уравнений** (`equationBalancer`: P+O₂→P₂O₅, Fe+O₂→Fe₃O₄, H₂+O₂→H₂O, CH₄+O₂→CO₂+H₂O) |
**Лаб. опыт 1** (после §10): признаки протекания химических реакций.
**Практическая работа 1** (после §2): знакомство с химической лабораторией, разделение смесей.
### ГЛАВА II. Кислород (§§1317) — *sky/cyan*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §13 | Воздух как смесь газов | состав воздуха: N₂ 78 %, O₂ 21 %, Ar, CO₂ | **Интерактивная диаграмма состава воздуха** (круговая, клик → доля газа) + связь со §2 (смесь) |
| §14 | Кислород как химический элемент и простое вещество | O (элемент) vs O₂ (вещество); озон O₃; нахождение в природе; физ. свойства | **Переключатель «элемент ↔ простое вещество»** + 3D O₂/O₃ + «паспорт» кислорода |
| §15 | Химические свойства кислорода | горение: C, S, P, Fe + O₂ → оксиды; окисление, медленное окисление | **Симулятор горения** (выбери вещество → реакция с O₂ → оксид + уравнение + пламя) `chemEq` |
| §16 | Оксиды | оксид = Э + O (бинарное); названия; CuO, CO₂, SO₂, P₂O₅, Fe₃O₄, H₂O | **Конструктор оксида** (элемент + валентность → формула) + классификатор «оксид / не оксид» |
| §17 | Получение кислорода | разложение KMnO₄, H₂O₂ (+кат. MnO₂); катализатор; реакция разложения | **Схема получения O₂** (разложение при нагреве; катализатор — ускоряет, не расходуется, анимация) |
**Лаб. опыт 2** (после §13): сборка простейших приборов для получения и собирания газов.
**Практическая работа 2** (после §17): получение кислорода и изучение его свойств (тлеющая лучинка → вспыхивает).
### ГЛАВА III. Водород (§§1822) — *violet*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §18 | Водород — химический элемент и простое вещество | H, H₂; самый лёгкий газ; нахождение; физ. свойства | **3D-модель H₂** + «паспорт» водорода + демонстрация «легче воздуха» |
| §19 | Химические свойства водорода | H₂+O₂→H₂O (гремучий газ); H₂+CuO→Cu+H₂O (восстановление); восстановитель | **Симулятор реакций H₂** (восстановление оксида: чёрный CuO → красная Cu) `chemEq` |
| §20 | Понятие о кислотах | кислота = H + кислотный остаток; HCl, H₂SO₄, HNO₃, H₂SO₃, H₂CO₃; индикаторы | **`indicatorScale`** (лакмус красный, метилоранж розовый в кислоте) + конструктор «кислота → остаток» |
| §21 | Взаимодействие кислот с металлами | Me + кислота → соль + H₂↑; ряд активности (Прил.4); Cu/Ag не реагируют | **Интерактивный ряд активности** (`activitySeries`: K…H₂…Au, клик металл → реагирует/нет, пузырьки H₂) + Zn+HCl (`testTube`) |
| §22 | Соли — продукты замещения H на металл | соль = Me + кислотный остаток; реакция замещения; хлориды/сульфаты/нитраты | **Конструктор солей** (металл + кислотный остаток → формула по валентности) + анимация замещения |
**Лаб. опыт 3** (после §20): действие кислот на индикаторы.
**Лаб. опыт 4** (после §21): взаимодействие серной и соляной кислот с металлами.
**Практическая работа 3** (после §22): получение водорода и изучение его свойств (Zn+HCl, «гремучий газ»).
### ГЛАВА IV. Вода (§§2326) — *blue*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §23 | Состав, физические и химические свойства воды | H₂O; разложение эл. током → H₂+O₂ (2:1); Na+H₂O→щёлочь+H₂; оксид+H₂O→кислота/основание; круговорот | **Разложение воды** (анимация 2:1 H₂:O₂) + реакции воды (Na, CaO, CO₂) + круговорот воды (Прил.5) |
| §24 | Основания как сложные вещества | основание = Me + OH; NaOH, KOH, Ca(OH)₂; щёлочи vs нерастворимые; индикаторы | **Конструктор оснований** Me(OH)ₙ + **`indicatorScale`** (фенолфталеин малиновый, лакмус синий) + классификатор |
| §25 | Реакция нейтрализации | кислота + основание → соль + вода; HCl+NaOH→NaCl+H₂O; экзотермическая | **Анимация нейтрализации** (фенолфталеин малиновый → бесцветный; sim `titration`) `chemEq` |
| §26 | Охрана окружающей среды | загрязнение воды/воздуха; кислотные дожди; очистка воды; бережное отношение | **Инфографика-исследование** (источники загрязнения, очистка воды — Прил.5) |
**Лаб. опыт 5** (после §24): действие щелочей на индикаторы.
**Практическая работа 4** (после §25): реакция нейтрализации.
**Итого**: 26 §, 4 главы, **5 лаб. опытов** (§10, §13, §20, §21, §24), **4 практические работы** (§2, §17, §22, §25), 7 приложений.
---
## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА
### A. Движки и переиспользуемые активы (всё уже есть в проекте)
| Что нужно | Берём из | Файл / id |
|-----------|----------|-----------|
| Парсинг формул, `M_r`/`A_r`, состав вещества | biochem-core | `frontend/js/biochem-core.js` ✅ |
| 2D/3D шаростержневые модели молекул | biochem-core | `frontend/js/biochem-core.js` ✅ |
| Рендер формул/ионов/уравнений (`formula`, `ionLabel`, `chemEq`) | chem8_svg | `frontend/js/chem8_svg.js` (`window.Chem8`) ✅ |
| Индикаторы, ряд активности, классификаторы, `testTube` | chem8_svg (виджеты разд. B Химии 8) | переиспользовать / доработать ✅ |
| Интерактивная ПСХЭ (как каталог элементов) | sim `periodic` | реестр `_register-all.js` ✅ |
| Песочница реакций | sim `chemsandbox` | реестр ✅ |
| Титрование / нейтрализация | sim `titration` | реестр ✅ |
| Качественный анализ / индикаторы | sim `qualanalysis` | реестр ✅ |
Монтаж sim: контейнер `<div id="sim-<id>"></div>` + `openSim('<id>')` (или прямой mount через
`window.LabRegistry`), как на остальных страницах. Глоссарий — по образцу `chem8_glossary.js`.
### B. Хелпер `/js/chem7_svg.js` (тонкая надстройка над `chem8_svg.js`)
> **Рекомендация:** НЕ дублировать химические примитивы. `formula`, `ionLabel`, `chemEq`,
> `indicatorScale`, `activitySeries`, `testTube`, `classifier` уже есть/планируются в
> `chem8_svg.js` (`window.Chem8`). `chem7_svg.js` должен **переиспользовать** их (через
> `window.Chem8.*`) и добавить только то, что специфично для 7 класса. План Химии 9 уже
> рекомендует свести химические примитивы в общий `chem_svg.js` — при совместной разработке
> довести до единого shared-модуля. Молекулы — **только через `biochem-core.js`**.
```js
// 1. Конструктор формулы по валентности (звёздный виджет §9):
// выбор 2 элементов + их валентностей → НОК → индексы → формула + структурная схема
const valenceBuilder = (mount, {elements}) => { /* H-I, O-II, Cl-I, ...; НОК(v1,v2) */ };
// 2. Тренажёр символов элементов (§3): название ↔ символ (карточки/квикфайр)
const elementSymbolDrill = (mount, {set}) => { /* H,O,C,N,Na,Cl,Fe,Cu,Ca,Al,Zn,S,P,Mg,K */ };
// 3. «Весы атомов» (§4): сравнение масс атомов в а.е.м., во сколько раз тяжелее
const atomBalance = (mount, {a, b}) => { /* визуальные весы + A_r */ };
// 4. Разделитель смесей (§2): смесь → выбор метода (фильтр/выпаривание/магнит/дистилляция)
const mixtureSeparator = (mount, {mixtures}) => { /* анимация разделения, проверка метода */ };
// 5. Детектор признаков реакции (§10): анимация опыта + чек-лист признаков (цвет/осадок/газ/запах/тепло)
const reactionSigns = (mount, {demo}) => { /* малахит↘, CuSO4+NaOH↘синий, S+O2 запах */ };
// 6. «Весы сохранения массы» (§11): слева реагенты, справа продукты, стрелка баланса m=m
const massConservation = (mount, {eq}) => { /* m(реаг)=m(прод), визуальные весы */ };
// 7. Балансировщик уравнений подбором (§12): матрица атомов, подсветка дисбаланса, без стехиометрии
const equationBalancer = (mount, {skeleton}) => { /* коэффициенты, проверка баланса атомов */ };
// 8. Симулятор горения (§15): вещество (C/S/P/Fe) + O2 → оксид + пламя/искры + уравнение
const combustionSim = (mount, {fuel}) => { /* SVG-пламя + chemEq продукта */ };
// 9. Конструктор оксида/соли/основания (§16,22,24): Me/Э + валентность/остаток → формула
const compoundBuilder = (mount, {kind}) => { /* kind: 'oxide'|'salt'|'base'; по валентности */ };
// 10. Диаграмма состава воздуха (§13): интерактивная круговая (N2 78, O2 21, Ar, CO2)
const airComposition = (mount) => { /* клик сектор → газ + доля */ };
// 11. Разложение воды (§23): анимация электролиза, объёмы H2:O2 = 2:1
const waterDecomp = (mount) => { /* две пробирки над электродами, 2:1 */ };
// 12. Калькулятор массовой доли элемента (Прил.3, §8): w(A) = A_r·x / M_r, пошагово
const massFraction = (mount, {formula}) => { /* w(O) в H3PO4 = 65,3 % */ };
```
`indicatorScale`, `activitySeries`, `testTube`, `classifier`, `miniPeriodic`**из `chem8_svg.js`**
(если там пока заглушки — реализовать там же и переиспользовать в обоих учебниках).
### C. Правила рендера химии (обязательны с §1)
1. **Формулы веществ** — нижние индексы для атомов (`H₂O`, `CaCO₃`) через `Chem8.formula`/
`chemEq`, не «сырой» текст. Зарядов ионов и степеней окисления в 7 классе НЕТ.
2. **Уравнения реакций** — всегда сбалансированы; стрелки `=`/`→`, `↑` (газ), `↓` (осадок),
условия над стрелкой (`t`, кат., эл. ток). Только реакции из программы 7 класса.
3. **Валентность**, а не степень окисления: схемы «черточек» (H–Cl, H–O–H), составление формул
по валентности (НОК индексов).
4. **Признак реакции** — для каждой качественной/наглядной реакции показывать видимый признак:
цвет осадка, пузырьки газа, изменение окраски индикатора, пламя (через `testTube`/`indicatorScale`/`combustionSim`).
5. **Молекулярные модели** — структурная формула + 3D (biochem-core) для изучаемых веществ
(H₂, O₂, O₃, N₂, H₂O, CO₂, CH₄, NH₃, HCl).
6. **Цвета — химически достоверные**: осадок Cu(OH)₂ голубой, малахит зелёный→CuO чёрный,
медь красная, сера жёлтая; индикаторы: лакмус (кислота — красный, щёлочь — синий),
метилоранж (кислота — розовый), фенолфталеин (щёлочь — малиновый).
7. **Безопасность** — где уместно (кислоты, щёлочи, Na+вода, гремучий газ) — заметка-«скрепка»;
в практических работах — блок «Правила ТБ».
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\uparrow`).
9. **Drag/слайдеры**`window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()`
(стандарт геометрии), `touch-action:none` на draggable SVG/canvas, **без `setPointerCapture`**.
10. **Без эмоджи** — только inline SVG `.ic` (правило проекта [[feedback_no_emoji]]).
11. **Простой язык** — это первый курс химии; определения короткие, на каждое понятие — наглядность.
### D. Типы интерактивов по темам 7 класса
| Тип темы | Интерактив |
|----------|------------|
| Вещества/смеси (§1,2,13) | `mixtureSeparator`, классификатор, `airComposition`, виртуальная лаборатория |
| Атомы/элементы (§3,4) | `elementSymbolDrill`, `miniPeriodic`, `atomBalance` |
| Молекулы/вещества (§5,6) | biochem-core 3D, классификатор «простое/сложное» |
| Формулы/`M_r`/валентность (§7,8,9) | парсер формулы, калькулятор `M_r`, `valenceBuilder`, `massFraction` |
| Реакции/уравнения (§10,11,12) | `reactionSigns`, `massConservation`, `equationBalancer` |
| Кислород/горение/оксиды (§14,15,16,17) | `combustionSim`, `compoundBuilder('oxide')`, схема получения, sim `chemsandbox` |
| Водород/кислоты/соли (§18,19,20,21,22) | 3D H₂, `indicatorScale`, `activitySeries`, `testTube`, `compoundBuilder('salt')` |
| Вода/основания/нейтрализация (§23,24,25) | `waterDecomp`, `compoundBuilder('base')`, `indicatorScale`, sim `titration` |
| Прикладное/экология (§26, Прил.) | инфографика-исследование, бытовые названия (Прил.6), единицы (Прил.7) |
---
## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)
**Теория (3 карточки):**
- `theory` — основное определение/понятие + наглядная SVG/модель
- `rule` — ключевое правило/закономерность/формула (рамка)
- `example` — разобранный пример (реакция / составление формулы / опыт) с пошаговым рендером
- (для прикладных §) `apply` — применение/значение (инфографика)
**Интерактивы (3–5 на §):**
1. **Звёздный виджет** темы (из карты содержания)
2. **Конструктор/симулятор** (drag / slider / sim из реестра / biochem-core 3D)
3. **DnD-классификатор** (вещество/смесь, простое/сложное, физ./хим. явление, оксид/кислота/соль/основание)
4. **Тренажёр** — 5 задач с inline-наглядностью (формула / уравнение / модель / признак в условии)
5. **Босс §** — 3–4 интеграционные задачи (+5 XP каждая)
**Дополнительно:** пополнение глоссария (термины §, `[[ссылки]]`), «Вопросы и задания» из
учебника (адаптированные, с проверкой), проходящий jsdom-тест страницы.
**Финал главы:** итоговая шпаргалка (mini-cards), карта связей (SVG-граф понятий главы),
5–7 интегрированных боссов (+10 XP), achievement «Мастер главы N» (+50 XP, confetti),
кнопка перехода к следующей главе.
---
## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)
### Phase 0 — Фундамент (hub + каркасы глав)
- **`chemistry_7_hub.html`** — хаб-каталог 4 глав по образцу `chemistry_8_hub.html`: палитра
**emerald** (`--pri:#059669`/`#047857`, `--pri-soft:#d1fae5`; header gradient
`linear-gradient(110deg,#065f46 0%,#059669 55%,#6ee7b7 100%)`), водяной знак «ХИМИЯ»,
карточки глав с прогрессом (грузятся из `/api/textbooks/chemistry-7/children`),
блок «Финал курса» (шпаргалка + боссы — наполняется в Phase 5), achievement-strip
«Химик 7 класса», тема (localStorage `chemistry7_theme`), KaTeX CDN, `/js/api.js`+`/js/xp.js`.
- **4 файла глав** `chemistry_7_ch1..ch4.html` — на Phase 0 валидные каркасы-заглушки
(header с водяным знаком, hero, sidebar-оглавление §, контейнер параграфов, XP/tracker-интеграция),
наполнение § — в Phase 1–4. Подключить `?v=YYYYMMDD` (cache-busting) на все JS;
sidebar-фикс `@media(min-width:981px){#sidebar-btn{display:none}}`.
- **`/js/chem7_svg.js`** (хелперы B — заглушки → реализация по фазам); подключить
`chem8_svg.js`, `biochem-core.js` и нужные симуляторы на страницах глав; `chem7_glossary.js`.
- **Миграция `046_chemistry7_hub.sql`** (следующий номер после `045_bio_pathways.sql`):
**INSERT** родителя `chemistry-7` (`html_path='chemistry_7_hub.html'`, `para_count=26`,
`color='emerald'`, `parent_slug=NULL`, `subject='chemistry'`, `grade=7`) + **4 детей**
`chemistry-7-ch1..ch4` (`parent_slug='chemistry-7'`, свои `html_path`/`para_count`/`color`/`sort_order`)
— по образцу `041_chemistry8_hub.sql`. Применить `npm run migrate` + рестарт dev-сервера.
- jsdom-тест-каркас: хаб строится, все 5 файлов парсятся, ссылки глав ведут на существующие slug.
### Phase 1 — Глава I «Первоначальные химические понятия» (§§1–12) + ЛО1 + ПР1
Самая фундаментальная: закладываем движки, от которых зависит весь курс — `elementSymbolDrill`,
парсер формулы + калькулятор `M_r` (biochem-core), `valenceBuilder`, `equationBalancer`,
`reactionSigns`, `massConservation`, `mixtureSeparator`. По 2–3 § за волну.
### Phase 2 — Глава II «Кислород» (§§13–17) + ЛО2 + ПР2
`airComposition`, `combustionSim`, `compoundBuilder('oxide')`, схема получения O₂ (катализатор),
sim `chemsandbox`. Первые реакции горения и понятие оксида.
### Phase 3 — Глава III «Водород» (§§18–22) + ЛО3 + ЛО4 + ПР3
3D H₂, восстановление CuO, `indicatorScale` (лакмус/метилоранж), `activitySeries` (ряд активности,
Прил.4), `testTube` (Zn+HCl, пузырьки H₂), `compoundBuilder('salt')`. Понятия «кислота» и «соль».
### Phase 4 — Глава IV «Вода» (§§23–26) + ЛО5 + ПР4
`waterDecomp` (разложение 2:1), реакции воды, `compoundBuilder('base')`, `indicatorScale`
(фенолфталеин), нейтрализация (sim `titration`), экология/круговорот воды (Прил.5).
### Phase 5 — Финалы глав + общий финал учебника
Шпаргалки и карты связей по каждой главе; интегрированные боссы + achievements;
**большой финал**: «химический паспорт вещества» (тело/вещество → состав → формула → реакции),
итоговый босс-квест, ачивка «Химик 7 класса»; глоссарий собран и связан `[[ссылками]]`;
страница приложений-справочников (Прил.3,4,6,7 как интерактивные виджеты).
### Phase 6 — Качество и админка
Полный прогон jsdom-тестов (каждый § — builder не stub); аудит баланса всех уравнений и
KaTeX/`chemEq`-эскейпов; синхронизация с админкой (если новые sim в `lab.html`
обновить `ADMIN_SIMS` в `admin.html` — [[feedback_sims_admin_sync]]); проверка доступа
по классам/ученикам ([[project_content_access]], `/api/access`); появление в каталоге
`textbooks.html` в секции 7 класса (рядом с Физикой 7, Алгеброй 7, Геометрией 7).
> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit +
> проходящий jsdom-тест (правило CLAUDE.md: commit изменённых файлов + push сразу).
---
## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ
| Точка | Действие |
|-------|----------|
| **БД каталог** | `chemistry-7` в `textbooks` **отсутствует** → миграция `046_chemistry7_hub.sql`: INSERT родитель + 4 ребёнка (образец — `041_chemistry8_hub.sql`). Каталог `/api/textbooks` показывает только `parent_slug IS NULL`; хаб тянет детей через `/api/textbooks/chemistry-7/children`. |
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. localStorage-ключи прогресса — `chem7-*`. |
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js`. Нужные химические sim уже зарегистрированы: `periodic`, `chemsandbox`, `titration`, `qualanalysis`. |
| **Молекулы** | `biochem-core.js` (парсинг, `M_r`, 2D/3D-модели). |
| **Хим. примитивы** | `chem8_svg.js` (`window.Chem8`: `formula`, `ionLabel`, `chemEq` + виджеты) — переиспользовать; `chem7_svg.js` — тонкая надстройка (валентность, горение, смеси, весы массы). |
| **Бэкенд** | Роуты готовы: `backend/src/routes/textbooks.js` (catalog/children/progress/bookmarks). Доступ: `backend/src/services/contentAccess.js`. |
| **Глоссарий** | `chem7_glossary.js` по образцу `chem8_glossary.js` (всплывающие определения терминов). |
| **Тесты** | `cd backend && npm test` (jsdom). На каждый § — тест: страница строится, builder не stub, уравнения сбалансированы. Учитывать 3 pre-existing baseline-фейла (`BASELINE_FAILS=3`). |
| **Админка** | Новые sim в `lab.html` → синхронно `ADMIN_SIMS` в `admin.html`. |
| **Каталог-страница** | `frontend/textbooks.html` — карточка появляется автоматически из каталога (секция 7 класса). |
---
## ⚠️ КРИТИЧЕСКИЕ ПРАВИЛА
### ❌ НЕ делать
- Контент 8 класса: моль, молярная масса/объём, расчёты по уравнениям, периодический закон,
строение атома, химическая связь, ТЭД, ионные уравнения, степень окисления — **в 7 классе НЕТ**.
- «Сырые» формулы текстом — только `Chem8.formula`/`chemEq`/KaTeX.
- Несбалансированные уравнения (аудит баланса перед commit). Реакции — только из программы 7 кл.
- Дублировать молекулярный движок или химические примитивы — переиспользовать `biochem-core.js` и `chem8_svg.js`.
- `setPointerCapture` (теряется после `innerHTML`-replace) → `window`-listeners + state-flag.
- `\to`, `\uparrow`, `\downarrow` без удвоения backslash в JS-шаблонах.
- Эмодзи — запрещены; только inline SVG `.ic` ([[feedback_no_emoji]]).
- Авторов учебника в hub/footer — НЕ упоминаем.
- **Grep tool — запрещён**; поиск только `ast-index` (правила проекта, [[reference_sqlite_node]]).
### ✅ Обязательно
- Каждый commit → jsdom-тест 100 % pass (сверх baseline). Push сразу после коммита, файлы поимённо.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Каждая наглядная/качественная реакция = уравнение **+ видимый признак** (цвет/газ/осадок/индикатор/пламя).
- Цвета осадков/индикаторов/пламени — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Простой, дружелюбный язык первого курса; на каждое понятие — наглядность.
- Перед работой по ветке `feature/lab-content-engine``git fetch` (параллельные сессии,
[[project_concurrent_sessions_branch]]).
---
## 📊 Оценка объёма
| Глава | § | Лаб/ПР | Ожидаемый LOC |
|--------|---|--------|---------------|
| Гл.I Первоначальные понятия | 12 | ЛО1 + ПР1 | ~10 000 (+`valenceBuilder`, `equationBalancer`, `reactionSigns`, `massConservation`, `mixtureSeparator`) |
| Гл.II Кислород | 5 | ЛО2 + ПР2 | ~5 000 (+`combustionSim`, `compoundBuilder('oxide')`, `airComposition`) |
| Гл.III Водород | 5 | ЛО3,4 + ПР3 | ~6 000 (+`indicatorScale`, `activitySeries`, `testTube`, `compoundBuilder('salt')`) |
| Гл.IV Вода | 4 | ЛО5 + ПР4 | ~5 000 (+`waterDecomp`, `compoundBuilder('base')`, sim `titration`) |
| Финалы глав + общий финал + приложения | — | — | ~4 000 |
| `/js/chem7_svg.js` хелперы | — | — | ~2 500 |
| Хаб + 4 каркаса глав (Phase 0) | — | — | ~2 500 |
| **Итого** | **26** | **5 ЛО + 4 ПР** | **~35 000 LOC** |
Меньше Химии 8 (~64 000) — курс короче (26 § против 52) и качественный (без тяжёлых
количественных движков). По плотности интерактива — на уровне Химии 8 / Физики 7.
---
## 🏆 Достижения и XP (оценка)
| Slug | Название | Условие | XP |
|------|----------|---------|-----|
| `chemistry7_ch1_master` | Первооткрыватель | Все боссы финала главы I | 50 |
| `chemistry7_ch2_master` | Повелитель кислорода | Все боссы финала главы II | 50 |
| `chemistry7_ch3_master` | Знаток водорода | Все боссы финала главы III | 50 |
| `chemistry7_ch4_master` | Хранитель воды | Все боссы финала главы IV | 50 |
| `chemistry7_course_master` | Химик 7 класса | Все 4 ачивки глав + финальный босс-квест | 150 |
XP-оценка полного прохождения: 26 § × ~50 XP + 4 ач × 50 + финал 150 ≈ **1 700 XP**.
---
## 🧠 Чем Химия 7 отличается от Химии 8
| Аспект | Химия 7 (первый курс) | Химия 8 |
|--------|----------------------|---------|
| Количество вещества (моль) | **Нет** | Есть (вводный раздел) |
| `M_r` / `M` | `M_r` как «во сколько раз тяжелее» (без моля) | Молярная масса `M`, расчёты |
| Состав по формуле | Качественный/количественный; массовая доля элемента (Прил.3) | + расчёты по уравнениям |
| Валентность vs степень окисления | **Валентность** | Степень окисления, ОВР |
| Классы соединений | Знакомство по ходу курса (оксиды, кислоты, соли, основания) | Системно, единой главой + генетическая связь |
| Периодический закон, строение атома, связь | **Нет** | Есть (главы 2–4) |
| ТЭД, ионные уравнения, растворы (`w`,`c`) | **Нет** | Есть (глава 6) |
| Кислоты/основания | Понятие, индикаторы, реакции с Me, нейтрализация | + классификация, свойства, получение |
| Главный визуал курса | Балансировщик уравнений + ряд активности + индикаторы | Количественные расчёты + ПСХЭ |
Курсы дополняют друг друга: Химия 7 закладывает язык химии (вещество, формула, валентность,
уравнение) и первое знакомство с веществами; Химия 8 переводит это в количественную плоскость.
---
## 📚 Связанные планы
- [PLAN_CHEMISTRY_8.md](../textbooks-8/PLAN_CHEMISTRY_8.md) — образец архитектуры (hub + главы), химический стандарт качества, `chem8_svg.js`, миграция-шаблон.
- [PLAN_CHEMISTRY_9.md](../textbooks-9/PLAN_CHEMISTRY_9.md) — химический стандарт, рекомендация о shared `chem_svg.js`.
- [PLAN_PHYSICS_7.md](PLAN_PHYSICS_7.md) — образец полного курса 7 класса (фазы, ачивки, финал курса, политика «без авторов», cache-busting, sidebar-фикс).
---
## 🎬 Запуск
**Phase 0**: `chemistry_7_hub.html` (по образцу `chemistry_8_hub.html`, палитра emerald) +
4 каркаса глав (`chemistry_7_ch1..ch4.html`) + `/js/chem7_svg.js` (скелет) + подключение
`chem8_svg.js`/`biochem-core.js`/симуляторов + миграция `046_chemistry7_hub.sql` (родитель + 4 ребёнка)
+ `npm run migrate` + рестарт + jsdom-каркас.
**Phase 1**: Глава I (§§1–12) — закладываем движки (`valenceBuilder`, `equationBalancer`,
парсер формулы, `M_r`, `reactionSigns`), от которых зависят все главы.
Дальше — последовательно по главам (Phase 2 → 4), затем финалы (Phase 5) и качество (Phase 6).
После завершения **Химия 7 → первый учебник, полностью покрывающий химию с нуля** для самого
младшего класса в линейке (7→8→9), закрывает «нижнюю» ступень химии.