Files
Learn_System/plans/textbooks-8/PLAN_CHEMISTRY_8.md
T
Maxim Dolgolyov 67b95234d0 @
feat(chemistry-8): Phase 0 — каркас учебника «Химия 8» (hub + 7 глав)

Архитектура hub + главы (как физика 7–11, алгебра, геометрия), не монолит.
- chemistry_8_hub.html: хаб-каталог 7 разделов, amber-палитра, прогресс из
  /api/textbooks/chemistry-8/children, achievement «Химик 8 класса»
- 7 каркасов глав (вводный + гл.1–6, §1–52) с оглавлением и баннером «в разработке»
- /js/chem8_svg.js: неймспейс Chem8 (formula/ionLabel/chemEq готовы, 13 хелперов-заглушек)
- миграция 041: родитель chemistry-8 + 7 детей (parent_slug), para_count сумма = 52
- gen_chem8_skeletons.js: генератор каркасов глав
- tests/chemistry8.test.js: 9 тестов (примитивы + целостность каркаса), все зелёные
- PLAN_CHEMISTRY_8.md обновлён под hub-архитектуру

Источник: Шиманович, Красицкий, Сечко, Хвалюк. Химия 8, Народная асвета, 2018.

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

418 lines
39 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.
# План реализации: Химия 8 (Беларусь) — интерактивный наглядный учебник
> Цель: создать **с нуля** интерактивный наглядный учебник по всей программе 8 класса
> в **современной архитектуре hub + главы** (как Физика 7–11 / Алгебра / Геометрия —
> НЕ как легаси-монолит `chemistry_9.html`), на уровне их качества, с поправкой на
> содержание 8 класса: **количественные понятия (моль, M, Vm, расчёты по уравнениям),
> классы неорганических соединений, периодический закон, строение атома, химическая
> связь, ОВР, растворы.**
>
> **Архитектура (утверждена):** `chemistry_8_hub.html` (хаб-каталог глав) + **7 файлов глав**
> (вводный раздел + 6 глав книги). В БД — родитель `chemistry-8` + 7 детей с `parent_slug`.
> Каждая глава — самостоятельная страница со своими § (см. карту ниже), модульный
> CSS/JS на предмет. Единый стандарт с планом Химии 9 ([[plans/textbooks-9/PLAN_CHEMISTRY_9.md]]).
---
## 🎯 Источник
| Параметр | Значение |
|----------|----------|
| Книга | `himiya_8kl_shimanovich_rus_2018 (1).pdf` |
| Авторы | Шиманович И. Е., Красицкий В. А., Сечко О. И., Хвалюк В. Н. |
| Изд. | Минск, «Народная асвета», 2018, 243 с. (тираж 116 000) |
| Структура | **Вводный раздел + 6 глав, 52 §, 4 лабораторных опыта, 4 практические работы** |
| Справочные таблицы | ПСХЭ Менделеева, таблица растворимости, ряд активности металлов (форзацы) |
PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\`. Оглавление — стр. 238–239 PDF.
> **Важные отличия от Химии 9:**
> 1. Страниц химии-8 **ещё нет** — строим с нуля. Каркас берём у **современных hub-учебников**
> (`physics_9_hub.html` + `physics_9_chN.html`), а НЕ у легаси-монолита `chemistry_9.html`.
> 2. Описательной химии металлов/неметаллов в 8 классе **нет** (это 9 класс) — акцент на
> количественные расчёты, классификацию веществ, строение атома и химическую связь, ОВР.
>
> **Соответствие «раздел книги → файл главы → slug»:**
>
> | Раздел книги | § | Файл | slug | Цвет |
> |---|---|---|---|---|
> | Вводный: Количественные понятия | 19 | `chemistry_8_intro.html` | `chemistry-8-intro` | amber |
> | Гл.1 Классы неорг. соединений | 1023 | `chemistry_8_ch1.html` | `chemistry-8-ch1` | teal |
> | Гл.2 Периодический закон и ПСХЭ | 2428 | `chemistry_8_ch2.html` | `chemistry-8-ch2` | indigo |
> | Гл.3 Строение атома | 2935 | `chemistry_8_ch3.html` | `chemistry-8-ch3` | blue |
> | Гл.4 Химическая связь | 3641 | `chemistry_8_ch4.html` | `chemistry-8-ch4` | green |
> | Гл.5 ОВР | 4245 | `chemistry_8_ch5.html` | `chemistry-8-ch5` | deep-orange |
> | Гл.6 Растворы | 4652 | `chemistry_8_ch6.html` | `chemistry-8-ch6` | cyan |
>
> Хаб: `chemistry_8_hub.html` / slug `chemistry-8` (родитель в каталоге).
---
## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (52 §)
Колонка **«Интерактив»** — главный наглядный элемент сверх текста (минимум 1 «звёздный»
виджет на §; полный набор — в стандарте ниже).
### ВВОДНЫЙ РАЗДЕЛ. Повторение курса 7 класса. Количественные понятия в химии (§§1–9) — *amber*
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|------|------|------------------------------|
| §1 | Атомы. Химические элементы. Относительная атомная масса | $Z$, символ, $A_r$ | **miniPeriodic** + поиск $A_r$ по элементу; модель атома |
| §2 | Молекулы. Простые/сложные вещества. Химические формулы. $M_r$ | формула, индексы, $M_r=\sum A_r$ | **Конструктор формул** + калькулятор $M_r$ (biochem-core) |
| §3 | Химическое количество вещества | понятие «порция», $n$ | Визуализация «порции вещества» (частицы → моль) |
| §4 | Моль — единица количества вещества. Постоянная Авогадро | $N=n\cdot N_A$, $N_A=6{,}02\cdot10^{23}$ | **Счётчик частиц** $N\leftrightarrow n$, масштаб $N_A$ |
| §5 | Молярная масса. Молярный объём газов | $M$ (г/моль), $V_m=22{,}4$ л/моль (н.у.) | Калькулятор $M$ + газовая модель ($V_m$) |
| §6 | Вычисление $n$ по $m$ и $m$ по $n$ | $n=\dfrac{m}{M}$ | **Треугольник $n$–$m$–$M$** (интерактивный калькулятор-тренажёр) |
| §7 | Вычисление $n$ газа по $V$ и $V$ по $n$ | $n=\dfrac{V}{V_m}$ | Калькулятор $V=n\cdot V_m$ + связка $m$$n$$V$$N$ |
| §8 | Химические реакции | признаки, закон сохранения массы, балансировка | **Балансировщик уравнений** (анимация коэффициентов) + классификатор типов реакций |
| §9 | Количественные расчёты по уравнениям реакций | стехиометрия, мольные отношения | **sim `stoichiometry`** + пошаговый решатель «дано → по уравнению» |
**Практическая работа 1** (после §7): «Химическое количество вещества».
### ГЛАВА 1. Важнейшие классы неорганических соединений (§§1023) — *teal/cyan*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §10 | Оксиды. Состав и классификация | $Э_xO_y$; осн./кисл./амфот./несолеобр. | **Классификатор оксидов** (drag формулы → класс) + конструктор формул оксидов по валентности |
| §11 | Химические свойства оксидов | осн.оксид+кислота/вода; кисл.оксид+щёлочь/вода | **Матрица реакций оксидов** (`chemEq`, признаки) |
| §12 | Получение и применение оксидов | горение, разложение; применение | Схемы получения + инфографика применения |
| §13 | Кислоты. Состав и классификация | $H_xAc$; бескисл./кислородсод., основность | **Классификатор кислот** + `indicatorScale` (лакмус/метилоранж) |
| §14 | Химические свойства кислот | + Me (ряд активности), + осн.оксид, + основание, + соль | **Реакции кислот** (4 типа) + ряд активности + `indicatorScale` |
| §15 | Получение и применение кислот | кисл.оксид+вода, соль+кислота | Схемы получения + инфографика |
| §16 | Основания | $Me(OH)_n$; щёлочи/нерастворимые | Конструктор $Me(OH)_n$ + `indicatorScale` (фенолфталеин малиновый) |
| §17 | Химические свойства оснований | нейтрализация, +кисл.оксид, +соль, разложение | **Реакция нейтрализации** (анимация) + `indicatorScale` |
| §18 | Получение и применение оснований | Me+вода, щёлочь+соль | Схемы; **Лаб.1**: получение нерастворимого основания (`testTube` $Cu(OH)_2$↓ голубой) |
| §19 | Соли. Состав и классификация | катион×анион; средние/кислые/основные | **Конструктор солей** (катион×анион) + `solubilityTable` |
| §20 | Химические свойства солей | РИО (↓↑), соль+Me (ряд активности) | `solubilityTable` + предсказатель РИО; **Лаб.2**: соли+металлы |
| §21 | Получение и применение солей | 8+ способов получения | **Матрица способов получения солей** |
| §22 | Взаимосвязь между классами неорг. веществ | генетическая связь Me/неMe → оксид → гидроксид → соль | **Генетическая карта-граф** (интерактивные переходы) |
| §23 | Решение расчётных задач по теме | расчёты по классам, по уравнениям | **sim `stoichiometry`** + тренажёр расчётов |
**Лаб. опыт 1** (после §18): получение нерастворимого основания.
**Практическая работа 2** (после §18): изучение реакции нейтрализации.
**Лаб. опыт 2** (после §20): взаимодействие растворов солей с металлами.
**Практическая работа 3** (после §22): решение экспериментальных задач.
### ГЛАВА 2. Периодический закон и периодическая система (§§2428) — *indigo/violet*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §24 | Систематизация химических элементов | ранние классификации, металлы/неметаллы | Сортировщик элементов (Me/неMe/амфот.) |
| §25 | Понятие об амфотерности | $Zn(OH)_2, Al(OH)_3$ + кислота **и** + щёлочь | **Амфотерность** (`testTube`, обе реакции); **Лаб.3**: гидроксид цинка |
| §26 | Естественные семейства элементов | щелочные, ЩЗМ, галогены, инертные | **miniPeriodic** — подсветка семейств, тренды свойств |
| §27 | Периодический закон Д. И. Менделеева | формулировка, периодичность | **Демонстрация периодичности** (карточки-раскладка элементов) |
| §28 | Периодическая система химических элементов | период/группа/подгруппа, структура | **Интерактивная ПСХЭ** (sim `periodic`) + разбор структуры |
**Лаб. опыт 3** (после §25): получение гидроксида цинка и изучение амфотерных свойств.
### ГЛАВА 3. Строение атома и периодичность свойств (§§29–35) — *blue*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §29 | Строение атома. Атомный номер | ядро ($p^+,n^0$) + $e^-$, $Z$ | **Модель атома** (sim `bohratom`) — сборка по $Z$ |
| §30 | Массовое число атома. Нуклиды | $A=Z+N$, нуклид | Калькулятор $A=Z+N$ + конструктор нуклида |
| §31 | Изотопы. Явление радиоактивности | одинаковый $Z$, разный $N$; распад | Изотопы-конструктор + sim `radioactive` + расчёт $A_r$ по изотопам |
| §32 | Состояние электронов. Электронное облако. Орбиталь | $s,p,d$ орбитали, форма облака | **3D-облака орбиталей** (sim `orbitals`) |
| §33 | Строение электронных оболочек атомов | уровни, $2n^2$, конфигурация | **Конструктор электронной конфигурации** (`orbitalDiagram`, заполнение) |
| §34 | Периодичность изменения свойств атомов | радиус, ЭО, металличность по периоду/группе | **Графики трендов** (slider период/группа → свойство) |
| §35 | Характеристика элемента по положению в ПС | алгоритм «паспорта» элемента | **Генератор «паспорта элемента»** (пошагово) |
### ГЛАВА 4. Химическая связь (§§36–41) — *green*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §36 | Природа химической связи | октет, энергия связи, устойчивость | Анимация «почему атомы соединяются» |
| §37 | Ковалентная связь | общие электронные пары, схемы Льюиса | **Конструктор e-пар** + структурные формулы (biochem-core) |
| §38 | Неполярная и полярная ков. связь. ЭО | $\Delta$ЭО → полярность, диполь | **Slider ЭО → тип связи** + диполь; **Лаб.4**: модели молекул (biochem-core 3D) |
| §39 | Ионная связь | передача $e^-$, ионная решётка | **Анимация $Na\to Cl$** + решётка $NaCl$ |
| §40 | Металлическая связь. Межмолекулярное взаимодействие | «электронный газ», водородная связь | **Модель электронного газа** + водородная связь |
| §41 | Кристаллическое состояние вещества | 4 типа решёток → свойства | **4 типа решёток** (3D) + связь «тип → свойства» |
**Лаб. опыт 4** (после §38): составление моделей молекул.
### ГЛАВА 5. Окислительно-восстановительные реакции (§§4245) — *deep-orange*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §42 | Степень окисления | правила, расчёт по формуле | **Калькулятор степени окисления** (любая формула) |
| §43 | Процессы окисления и восстановления | отдача/приём $e^-$, окислитель/восстановитель | Визуализация переноса $e^-$ |
| §44 | Окислительно-восстановительные реакции | метод электронного баланса | **Балансировщик ОВР** (пошаговый e-баланс) |
| §45 | ОВР вокруг нас | горение, коррозия, дыхание, батарейки | Инфографика-исследование ОВР в жизни |
### ГЛАВА 6. Растворы (§§4652) — *cyan*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §46 | Смеси веществ | однородные/неоднородные, разделение | Классификатор смесей + методы разделения |
| §47 | Растворение веществ в воде | гидратация, тепловой эффект | **Анимация растворения** (`dissociationAnim`) |
| §48 | Характеристики растворимости веществ | $s=f(t)$, насыщ./ненасыщ. | **График растворимости** + `solubilityTable` |
| §49 | Качественные характеристики состава растворов | насыщ./ненасыщ./разб./конц. | Качественная шкала «крепости» раствора |
| §50 | Количественные характеристики. Массовая доля | $w=\dfrac{m_{в-ва}}{m_{р-ра}}$ | **Калькулятор $w$** (sim `solutions`) |
| §51 | Молярная концентрация растворённых веществ | $c=\dfrac{n}{V}$, разбавление, смешение | **Калькулятор $c$** + разбавление/смешение |
| §52 | Вода и растворы в жизни и деятельности человека | значение, очистка, быт | Инфографика-исследование |
**Практическая работа 4** (после §51): приготовление раствора с заданной $w$ и $c$.
**Итого**: 52 §, вводный раздел + 6 глав, **4 лаб. опыта** (§18, §20, §25, §38), **4 практические работы** (§7, §18, §22, §51).
---
## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА
### A. Движки и переиспользуемые активы (всё уже есть в проекте)
| Что нужно | Берём из | Файл / id |
|-----------|----------|-----------|
| Парсинг формул, $M$/$M_r$, формула Хилла | biochem-core | `frontend/js/biochem-core.js` ✅ |
| 2D/3D шаростержневые модели, VSEPR | biochem-core | `frontend/js/biochem-core.js` ✅ |
| Интерактивная ПСХЭ | sim `periodic` | реестр `_register-all.js` ✅ |
| Модель атома (Бор) | sim `bohratom` | реестр ✅ |
| Орбитали | sim `orbitals` | реестр ✅ |
| Радиоактивность/изотопы | sim `radioactive` | реестр ✅ |
| Стехиометрия | sim `stoichiometry` | реестр ✅ |
| Титрование (нейтрализация) | sim `titration` | реестр ✅ |
| Качественный анализ | sim `qualanalysis` | реестр ✅ |
| Растворы / массовая доля | sim `solutions` | реестр ✅ |
| Песочница реакций | sim `chemsandbox` | реестр ✅ |
Монтаж: контейнер `<div id="sim-<id>"></div>` + `openSim('<id>')` (или прямой mount
через `window.LabRegistry`), как на остальных страницах.
### B. Общий хелпер `/js/chem8_svg.js` (по образцу `geom7_svg.js`, `alg10_svg.js`)
> **Рекомендация:** химические примитивы 8 и 9 классов сильно пересекаются. Реализовать
> файл так, чтобы его можно было продвинуть в **общий `/js/chem_svg.js`** (план Химии 9
> ссылается на `chem9_svg.js` — при совместной разработке свести в один shared-модуль и
> переиспользовать оба). Молекулы — **только через `biochem-core.js`**, не дублировать.
```js
// 1. Рендер уравнения реакции: коэффициенты, состояния (↑↓), стрелки, условия над стрелкой
const chemEq = (src, opts={}) => { /* токенизация формул, верхн./нижн. индексы, →/⇌/→[t°] */ };
// 2. Ион с зарядом: ionLabel('SO4', -2) → 'SO₄²⁻'
const ionLabel = (formula, charge) => { /* нижние индексы + надстрочный заряд */ };
// 3. Пробирка с осадком/газом/окраской (SVG-анимация)
const testTube = ({fill, precipitate, gas, color, label}) => { /* svg */ };
// 4. Треугольник n–m–M (звёздный виджет §6): кликаешь искомое → формула + калькулятор
const moleTriangle = (mount, {solveFor}) => { /* n=m/M, m=n·M, M=m/n */ };
// 5. Балансировщик уравнений (§8): подбор коэффициентов, проверка баланса атомов
const equationBalancer = (mount, {skeleton}) => { /* матрица атомов, подсветка дисбаланса */ };
// 6. Калькулятор степени окисления (§42): формула → с.о. каждого элемента (правила)
const oxStateCalc = (mount, {formula}) => { /* разбор, правила H+1/O−2/Σ=0 */ };
// 7. Балансировщик ОВР методом e-баланса (§44): полуреакции, НОК, коэффициенты
const redoxBalancer = (mount, {skeleton}) => { /* окислитель/восстановитель, Δe⁻ */ };
// 8. Орбитальная диаграмма (§33): orbitalDiagram('1s2 2s2 2p4') → клетки + ↑↓
const orbitalDiagram = (config) => { /* svg клетки, принцип Хунда/Паули */ };
// 9. Интерактивная таблица растворимости (§19,20,48): подсветка пары катион×анион (Р/Н/М/—)
const solubilityTable = (mount, {highlight}) => { /* из форзаца книги */ };
// 10. Интерактивный ряд активности металлов (§14,20): клик → предсказание реакции
const activitySeries = (mount, opts) => { /* K Ca Na Mg Al Zn Fe ... Au + (H₂) */ };
// 11. Мини-ПСХЭ с подсветкой (§1,26,34): элемент/группа/период/семейство
const miniPeriodic = (mount, {highlight, onClick}) => { /* интерактивная сетка */ };
// 12. Индикатор + шкала pH (§13,14,16,17): лакмус/фенолфталеин/метилоранж
const indicatorScale = (mount, {ph, indicator}) => { /* цвет полоски */ };
// 13. Анимация растворения/гидратации (§47): частицы воды окружают ионы/молекулы
const dissociationAnim = (mount, {substance}) => { /* canvas/SVG-частицы */ };
// 14. Классификатор-DnD (§10,13,16,19,46): drag формулы → класс/тип; проверка
const classifier = (mount, {items, buckets}) => { /* оксиды/кислоты/основания/соли/смеси */ };
// 15. Генетическая карта-граф (§22): Me/неMe → оксид → гидроксид → соль, клик-переходы
const geneticMap = (mount, opts) => { /* SVG-граф классов + рендер реакции перехода */ };
```
### C. Правила рендера химии (обязательны с §1)
1. **Формулы веществ** — нижние индексы для атомов ($H_2O$, $CaCO_3$), верхние для зарядов
ионов ($SO_4^{2-}$) и степеней окисления ($\overset{+2}{Ca}$); единый рендер через
`chemEq`/`ionLabel`, не «сырой» текст.
2. **Уравнения реакций** — всегда сбалансированы; стрелки `=`/`→` (необратимая),
`⇌` (обратимая), `↑` (газ), `↓` (осадок), условия над стрелкой ($t$, кат., эл.ток).
3. **Состояние/признак** — для качественных реакций показывать цвет осадка, пузырьки газа,
изменение окраски индикатора (через `testTube`/`indicatorScale`).
4. **Количественные расчёты** — каждый расчётный § даёт калькулятор/тренажёр с пошаговым
решением (дано → формула → подстановка → ответ с единицами), не только готовый ответ.
5. **Молекулярные модели** — структурная формула + 3D (biochem-core) для каждой изучаемой
молекулы (§37–38, §41); для типов решёток — 3D-ячейки.
6. **Цвета — химически достоверные**: осадки ($Cu(OH)_2$ голубой, $Fe(OH)_3$ бурый,
$Zn(OH)_2$ белый); индикаторы (фенолфталеин в щёлочи малиновый, лакмус в кислоте красный,
метилоранж в кислоте розовый).
7. **Безопасность** — где уместно (растворение кислот/щелочей, разбавление) — заметка-«скрепка».
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\rightleftharpoons`).
9. **Drag/слайдеры**`window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()`
(стандарт геометрии), `touch-action:none` на draggable SVG/canvas, **без `setPointerCapture`**.
10. **Без эмоджи** — только inline SVG `.ic`/`.ico` (правило проекта [[feedback_no_emoji]]).
### D. Типы интерактивов по темам 8 класса
| Тип темы | Интерактив |
|----------|------------|
| Количество вещества (§3–7, 9) | `moleTriangle`, калькуляторы $M/V_m/N$, sim `stoichiometry` |
| Химические реакции (§8) | `equationBalancer`, классификатор типов |
| Классы соединений (§10–21) | `classifier`, матрицы реакций, `indicatorScale`, `solubilityTable`, `activitySeries` |
| Генетическая связь (§22) | `geneticMap` |
| Периодический закон / ПСХЭ (§24–28, 34) | `miniPeriodic`, sim `periodic`, графики трендов |
| Строение атома (§29–33) | sim `bohratom`, sim `orbitals`, sim `radioactive`, `orbitalDiagram` |
| Химическая связь (§36–41) | slider ЭО, biochem-core 3D, ионная/металлич. решётка, 4 типа кристаллов |
| ОВР (§4244) | `oxStateCalc`, `redoxBalancer`, визуализация переноса $e^-$ |
| Растворы (§46–52) | `dissociationAnim`, график растворимости, sim `solutions`, калькулятор $c$ |
| Качественные/амфотерность (§18,25) | `testTube` + уравнение + признак |
---
## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)
**Теория (3–4 карточки):**
- `theory` — основное определение/понятие + наглядная SVG/модель
- `rule` — ключевая закономерность/формула (рамка)
- `example` — разобранный пример (реакция/расчёт) с пошаговым рендером
- (для прикладных §) `apply` — применение/значение (инфографика)
**Интерактивы (4–6 на §):**
1. **Звёздный виджет** темы (из карты содержания)
2. **Конструктор/симулятор** (slider / drag / sim из реестра)
3. **Калькулятор** ($M$, $n$, $w$, $c$, с.о., по уравнению) — где применимо
4. **DnD-классификатор** (классы веществ, тип связи/реакции, тип решётки)
5. **Тренажёр** — 5 задач с inline-наглядностью (формула/уравнение/модель в условии)
6. **Босс §** — 4 интеграционные задачи (+5 XP каждая)
**Дополнительно:** пополнение глоссария (термины §, `[[ссылки]]`), «Вопросы и задания»
из учебника (адаптированные, с проверкой), проходящий jsdom-тест страницы.
**Финал главы:** итоговая шпаргалка (mini-cards), карта связей (SVG-граф понятий),
7 интегрированных боссов (+10 XP), achievement «Мастер главы N» (+50 XP, confetti),
кнопка перехода к следующей главе.
---
## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)
### Phase 0 — Фундамент (hub + каркасы глав)
- **`chemistry_8_hub.html`** — хаб-каталог 7 глав по образцу `physics_9_hub.html`: палитра
**amber**, водяной знак «ХИМИЯ», карточки глав с прогрессом (грузится из
`/api/textbooks/chemistry-8/children`), блок «Финал курса» (шпаргалка + боссы — наполняется в Phase 7),
achievement-strip «Химик 8 класса», тема (localStorage `chemistry8_theme`).
- **7 файлов глав** `chemistry_8_intro.html` + `chemistry_8_ch1..ch6.html` — на Phase 0
валидные каркасы-заглушки (header с водяным знаком, hero, sidebar-оглавление §, контейнер
параграфов, XP/tracker-интеграция), наполнение § — в Phase 1–6.
- **`/js/chem8_svg.js`** (хелперы B — заглушки → реализация по фазам).
- Подключить `biochem-core.js` + нужные симуляторы на страницах глав.
- **Миграция `041_chemistry8_hub.sql`** (следующий номер после `040_content_access.sql`):
**INSERT** родителя `chemistry-8` (`html_path='chemistry_8_hub.html'`, `para_count=52`,
`color='amber'`, `parent_slug=NULL`) + **7 детей** `chemistry-8-intro`/`-ch1..-ch6`
(`parent_slug='chemistry-8'`, свои `html_path`/`para_count`/`color`/`sort_order`) — по образцу
`038_physics_9_hub.sql`. Применить `npm run migrate`.
- jsdom-тест-каркас: хаб строится, все 8 файлов парсятся, ссылки глав ведут на существующие slug.
### Phase 1 — Вводный раздел «Количественные понятия» (§§1–9) + ПР1 — фундамент расчётов
Базовые движки: калькулятор $M_r$ (biochem-core), `moleTriangle`, связка $m$$n$$V$$N$,
`equationBalancer`, sim `stoichiometry`. **Критично** — эти расчёты используются во всех главах.
### Phase 2 — Глава 1 «Классы неорганических соединений» (§§10–23) + Лаб.1,2 + ПР2,3
Самая объёмная. Закладываем `classifier`, `indicatorScale`, `solubilityTable`,
`activitySeries`, матрицы реакций, `testTube` (первые качественные/нейтрализация),
`geneticMap` (§22), sim `titration`.
### Phase 3 — Глава 2 «Периодический закон и ПСХЭ» (§§24–28) + Лаб.3
`miniPeriodic`, sim `periodic`, амфотерность ($Zn(OH)_2$ — обе реакции + `testTube`),
демонстрация периодичности.
### Phase 4 — Глава 3 «Строение атома» (§§29–35)
sim `bohratom`, sim `orbitals`, sim `radioactive`, `orbitalDiagram`, графики периодических
трендов, генератор «паспорта элемента».
### Phase 5 — Глава 4 «Химическая связь» (§§36–41) + Лаб.4
slider ЭО → тип связи, biochem-core 3D-модели, ионная/металлическая решётки,
4 типа кристаллических решёток (3D) и связь «тип → свойства».
### Phase 6 — Глава 5 «ОВР» (§§42–45) + Глава 6 «Растворы» (§§46–52) + ПР4
`oxStateCalc`, `redoxBalancer`, визуализация переноса $e^-$; затем `dissociationAnim`,
график растворимости, sim `solutions`, калькулятор $c$, ПР4.
### Phase 7 — Финалы глав + общий финал учебника
Шпаргалки и карты связей по каждой главе; интегрированные боссы + achievements;
**большой финал**: генетическая карта классов + строение/связь, итоговый босс-квест,
ачивка «Химик 8 класса»; глоссарий собран и связан `[[ссылками]]`.
### Phase 8 — Качество и админка
Полный прогон jsdom-тестов (каждый § — builder не stub); аудит баланса уравнений и
KaTeX/`chemEq`-эскейпов; синхронизация с админкой (если новые sim в `lab.html`
обновить `ADMIN_SIMS` в `admin.html` — [[feedback_sims_admin_sync]]); проверка доступа
по классам/ученикам ([[project_content_access]], `/api/access`).
> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit +
> проходящий jsdom-тест (правило CLAUDE.md: commit изменённых файлов + push).
---
## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ
| Точка | Действие |
|-------|----------|
| **БД каталог** | `chemistry-8` в `textbooks` **отсутствует** → миграция `041_chemistry8_hub.sql`: INSERT родитель + 7 детей (образец — `038_physics_9_hub.sql`). Каталог `/api/textbooks` показывает только `parent_slug IS NULL`; хаб тянет детей через `/api/textbooks/chemistry-8/children`. |
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. |
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js`. Нужные химические sim уже зарегистрированы: `periodic`, `bohratom`, `orbitals`, `radioactive`, `stoichiometry`, `titration`, `qualanalysis`, `solutions`, `chemsandbox`. |
| **Молекулы** | `biochem-core.js` (парсинг, $M$, 2D/3D, VSEPR). |
| **Бэкенд** | Роуты готовы: `backend/src/routes/textbooks.js` (catalog/progress/bookmarks). Доступ: `backend/src/services/contentAccess.js`. |
| **Глоссарий** | Виджет всплывающих определений на странице (общего нет — реализовать). |
| **Тесты** | `cd backend && npm test` (jsdom). На каждый § — тест: страница строится, builder не stub, уравнения сбалансированы. |
| **Админка** | Новые sim в `lab.html` → синхронно `ADMIN_SIMS` в `admin.html`. |
---
## ⚠️ КРИТИЧЕСКИЕ ПРАВИЛА
### ❌ НЕ делать
- «Сырые» формулы текстом — только `chemEq`/`ionLabel`/KaTeX.
- Несбалансированные уравнения (аудит баланса перед commit).
- Дублировать молекулярный движок — использовать `biochem-core.js`.
- `setPointerCapture` (теряется после `innerHTML`-replace) → `window`-listeners + state-flag.
- `\to`, `\downarrow`, `\rightleftharpoons` без удвоения backslash в JS-шаблонах.
- Slider-диапазоны за пределы химически возможного (концентрации, температуры, $V_m$).
- Эмоджи — запрещены; только inline SVG `.ic`.
- **Grep tool — запрещён**; поиск только `ast-index` ([[reference_sqlite_node]] и правила проекта).
### ✅ Обязательно
- Каждый commit → jsdom-тест 100% pass.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Расчётный § = калькулятор/тренажёр с **пошаговым** решением и единицами измерения.
- Качественная реакция = уравнение (молек.+, где есть, ионное) **+ видимый признак**.
- Цвета осадков/индикаторов — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Коммитить только изменённые файлы (не `git add -A`), сразу push.
---
## 📊 Оценка объёма
| Раздел | § | Лаб/ПР | Ожидаемый LOC |
|--------|---|--------|---------------|
| Вводный (кол-во вещества) | 9 | ПР1 | ~7 000 (+`moleTriangle`, `equationBalancer`, `stoichiometry`) |
| Гл.1 Классы соединений | 14 | Лаб1,2 + ПР2,3 | ~16 000 (+`classifier`, `solubilityTable`, `activitySeries`, `geneticMap`) |
| Гл.2 ПЗ и ПСХЭ | 5 | Лаб3 | ~5 000 (+`miniPeriodic`, амфотерность) |
| Гл.3 Строение атома | 7 | — | ~7 000 (+`orbitalDiagram`, sim bohratom/orbitals/radioactive) |
| Гл.4 Химическая связь | 6 | Лаб4 | ~6 500 (+3D-модели, 4 решётки) |
| Гл.5 ОВР | 4 | — | ~4 500 (+`oxStateCalc`, `redoxBalancer`) |
| Гл.6 Растворы | 7 | ПР4 | ~7 000 (+`dissociationAnim`, sim solutions, калькулятор $c$) |
| Финалы глав + общий | — | — | ~5 000 |
| `/js/chem8_svg.js` хелперы | — | — | ~3 000 |
| Хаб + 7 каркасов глав (Phase 0) | — | — | ~3 000 |
| **Итого** | **52** | **4 лаб + 4 ПР** | **~64 000 LOC** |
---
## 🎬 Запуск
**Phase 0**: `chemistry_8_hub.html` (по образцу `physics_9_hub.html`) + 7 каркасов глав
(`chemistry_8_intro.html`, `chemistry_8_ch1..ch6.html`) + `/js/chem8_svg.js` (скелет) +
подключение `biochem-core.js`/симуляторов + миграция `041_chemistry8_hub.sql` (родитель + 7 детей)
+ `npm run migrate` + jsdom-каркас.
**Phase 1**: Вводный раздел (§§1–9) — закладываем движки расчётов (`moleTriangle`,
`equationBalancer`, sim `stoichiometry`), от которых зависят все главы.
Дальше — последовательно по главам (Phase 2 → 6), затем финалы (Phase 7) и качество (Phase 8).