Files
Learn_System/plans/textbooks-9/PLAN_CHEMISTRY_9.md
T
Maxim Dolgolyov 5381679c68 chore: консолидация незакоммиченной работы (биохимия + System Health + lab/textbooks)
Зафиксирована накопленная незакоммиченная работа рабочего дерева, КРОМЕ файлов
учебника «Химия 7» (migration 046, chemistry_7_*.html, chem7_svg.js, тест —
оставлены незакоммиченными по запросу).

Включает: модуль биохимии (ядро BIO, 3D VSEPR, химдвижок, баланс, challenges,
пути из БД), System Health Level 1 (вердикт/мониторинг), а также frontend-
страницы и lab/textbooks-правки параллельной сессии.

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

364 lines
34 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.
# План реализации: Химия 9 (Беларусь) — интерактивный наглядный учебник
> Цель: превратить существующий «текстовый» каркас `chemistry_9.html` в **максимально
> полный, интерактивный и наглядный** учебник по всей программе 9 класса —
> на уровне качества уже сделанных Физики 9 / Алгебры 9 / Геометрии 9, но с
> химической спецификой (молекулы, уравнения реакций, ионы, осадки, газы, симуляторы).
---
## 🎯 Источник
| Параметр | Значение |
|----------|----------|
| Книга | `Himiya_Shimanovich_9kl_rus_2025.pdf` |
| Авторы | Шиманович И. Е., Василевская Е. И., Зураев А. В., Красицкий В. А., Сечко О. И. |
| Под ред. | И. Е. Шимановича |
| Изд. | Минск, «Адукацыя і выхаванне», 2025 (2-е изд., переработанное), 288 с. |
| ISBN | 978-985-34-0189-9 |
| Структура | **4 главы, 53 §, 6 лабораторных опытов, 4 практические работы** |
| Справочные таблицы | ПСХЭ Менделеева, таблица растворимости, ряд активности металлов (форзацы) |
PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\` (есть и издание 2019 г.).
---
## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (53 §)
Колонка **«Интерактив»** — главный наглядный элемент, который страница ДОЛЖНА давать
сверх текста (минимум 1 «звёздный» виджет на §; полный набор виджетов — ниже в стандарте).
### ГЛАВА 1. Повторение курса 8 класса (§§1–3) — *amber*
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|------|------|------------------------------|
| §1 | Основные классы неорганических веществ | оксиды/кислоты/основания/соли, генетическая связь | **Классификатор**: drag формулы → класс; граф генетических переходов |
| §2 | Строение атома и периодический закон | $Z$, $p/n/e$, $1s^22s^2…$, периодичность | **Интерактивная ПСХЭ** (`periodic`) + конструктор электронной конфигурации |
| §3 | Химическая связь | ионная / ковалентная (полярн./неполярн.) / металлическая, ЭО | **Визуализатор связи**: slider ЭО → тип связи; диполь, электронные пары |
### ГЛАВА 2. Растворы. Теория электролитической диссоциации (§§4–11) — *blue*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §4 | Растворы как смеси веществ | раствор = растворитель + растворённое в-во | Анимация растворения (частицы) |
| §5 | Качественные характеристики состава растворов | насыщ./ненасыщ./пересыщ., растворимость, кривые растворимости | **График растворимости** $s=f(t)$ с подвижной точкой |
| §6 | Количественные характеристики. Массовая доля | $w=\dfrac{m_{в-ва}}{m_{р-ра}}$, $c=\dfrac{n}{V}$ | **Калькулятор раствора** (w, c, разбавление, смешение) |
| §7 | Электролитическая диссоциация в растворах | электролиты/неэлектролиты, гидратация ионов | **Анимация диссоциации** NaCl/HCl в воде |
| §8 | Диссоциация кислот, оснований и солей | $HCl\to H^++Cl^-$, ступенчатая дисс. | Конструктор уравнений диссоциации |
| §9 | Реакции ионного обмена | условия необратимости: ↓ ↑ H₂O | **Предсказатель РИО** + конвертер молек.↔полн.ион.↔сокр.ион. |
| §10 | Свойства кислот/оснований/солей с точки зрения ТЭД | ионные сущности реакций | Матрица реакций «реагент × реагент» |
| §11 | Вода и растворы в жизни человека | значение воды, растворы в быту | Инфографика-исследование |
**Практическая работа 1** (после §6): приготовление раствора с заданной $w$.
**Практическая работа 2** (после §9): реакции ионного обмена.
### ГЛАВА 3. Неметаллы (§§1239) — *cyan / teal*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §12 | Общая характеристика неметаллов | положение в ПСХЭ, ЭО, окислители | Подсветка неметаллов в ПСХЭ |
| §13 | Простые вещества неметаллы | аллотропия (O₂/O₃, алмаз/графит/фуллерен) | **3D-модели аллотропов** (biochem 3D) |
| §14 | Водород | получение, св-ва, $H_2+O_2$ | Сборка прибора получения H₂ |
| §15 | Галогены | $F,Cl,Br,I$, окислит. способность ↓ | **Ряд активности галогенов** + вытеснение |
| §16 | Хлороводород. Соляная кислота | $HCl$, свойства | Диссоциация + реакции HCl |
| §17 | Хлориды. Применение HCl и хлоридов | качеств. реакция на $Cl^-$ | **Качественная реакция** AgCl↓ (анимация осадка) |
| §18 | Кислород — элемент и простое вещество | $O_2$, окисление, горение | Симулятор горения |
| §19 | Кислород в природе. Получение и применение | круговорот, способы получения | Инфографика круговорота |
| §20 | Сера — элемент и простое вещество | аллотропия серы, $S+Me$ | 3D-модель S₈ |
| §21 | Сероводород | $H_2S$, св-ва, сульфиды | Реакции H₂S |
| §22 | Оксид серы(IV) и оксид серы(VI) | $SO_2, SO_3$, кислотные оксиды | Кислотные дожди (инфографика) |
| §23 | Серная кислота | $H_2SO_4$ конц./разб., безопасность | **Анимация разбавления** (кислоту в воду!) |
| §24 | Реакции получения серной кислоты. Практический выход | контактный способ, $\eta$ | Калькулятор практического выхода |
| §25 | Сульфаты. Применение | качеств. реакция на $SO_4^{2-}$ | **Качественная реакция** BaSO₄↓ |
| §26 | Азот — элемент и простое вещество | $N_2$, тройная связь | 3D-модель N₂ |
| §27 | Аммиак | $NH_3$, донорно-акц. связь | **Фонтан аммиака** (анимация) |
| §28 | Соли аммония | $NH_4^+$, разложение | Качеств. реакция на $NH_4^+$ |
| §29 | Азотная кислота | $HNO_3$, особые окислит. св-ва | Реакции с металлами (без H₂) |
| §30 | Нитраты. Применение HNO₃ и нитратов | разложение нитратов, селитры | Карта разложения нитратов |
| §31 | Фосфор — элемент и простое вещество | аллотропия (бел./красн.) | 3D-модель P₄ |
| §32 | Кислородсодержащие соединения фосфора | $P_2O_5, H_3PO_4$, фосфаты | Ступенчатая диссоциация H₃PO₄ |
| §33 | Минеральные удобрения | N/P/K, аммофос, суперфосфат | **NPK-калькулятор** удобрений |
| §34 | Углерод — элемент и простое вещество | аллотропия (алмаз/графит/фуллерен), адсорбция | **3D-модели** + адсорбция |
| §35 | Оксиды углерода | $CO$ (яд), $CO_2$ | Свойства CO/CO₂ |
| §36 | Угольная кислота и её соли | $H_2CO_3$, карбонаты/гидрокарбонаты, жёсткость | **Качеств. реакция** на $CO_3^{2-}$ (вскипание) + сталактиты |
| §37 | Кремний — элемент и простое вещество | $Si$, полупроводник | 3D-решётка (как алмаз) |
| §38 | Оксид кремния(IV). Кремниевая кислота | $SiO_2$, силикаты | Структура SiO₂ |
| §39 | Строительные материалы | стекло, керамика, цемент, бетон | Конструктор «варки стекла» |
**Лаб. опыты**: 1 — на $Cl^-$ (после §17), 2 — на $SO_4^{2-}$ (после §25), 3 — на $NH_4^+$ (после §28), 4 — на $CO_3^{2-}$ (после §36).
**Практическая работа 3** (после §39): решение экспериментальных задач «Неметаллы».
### ГЛАВА 4. Металлы (§§4053) — *deep-orange / rose*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §40 | Металлы. Общая характеристика элементов | положение в ПСХЭ, $Me^0-ne^-\to Me^{n+}$ | Подсветка металлов в ПСХЭ |
| §41 | Простые вещества металлы. Физические свойства. Сплавы | металлич. связь, «электронный газ», сплавы | **Модель металлич. связи** + конструктор сплавов |
| §42 | Общие химические свойства металлов | ряд активности, $Me$+кислота/соль/вода | **Интерактивный ряд активности** (предсказание реакции) |
| §43 | Щелочные металлы | $Li,Na,K…$, реакция с водой | Анимация $Na+H_2O$ |
| §44 | Важнейшие соединения натрия и калия | $NaOH, Na_2CO_3$, применение | Применение (инфографика) |
| §45 | Электролиз расплавов солей | катод/анод, $2NaCl\to2Na+Cl_2$ | **Симулятор электролиза** (`electrolysis`) |
| §46 | Магний и щёлочноземельные металлы | $Mg,Ca,Sr,Ba$, цвета пламени | **Цвета пламени** (интерактив) |
| §47 | Важнейшие соединения магния и кальция | $CaO, Ca(OH)_2, CaCO_3$, гипс | Превращения Ca-соединений |
| §48 | Качественное обнаружение ионов Ca²⁺/Ba²⁺. Жёсткость воды | $Ba^{2+}+SO_4^{2-}$, жёсткость, умягчение | **Симулятор жёсткости воды** + устранение |
| §49 | Алюминий | $Al$, амфотерность, алюмотермия | Реакции Al (амфотерность) |
| §50 | Оксид и гидроксид алюминия. Соли алюминия | $Al_2O_3, Al(OH)_3$ амфотерны | **Амфотерность** (реакция и с кислотой, и со щёлочью) |
| §51 | Железо. Физические и химические свойства. Коррозия | $Fe$, $Fe^{2+}/Fe^{3+}$, ржавление | **Симулятор коррозии** |
| §52 | Важнейшие соединения железа. Качественные реакции на ионы железа | $FeO/Fe_2O_3$, $Fe^{2+}/Fe^{3+}$ обнаружение | **Качеств. реакции** на $Fe^{2+}, Fe^{3+}$ |
| §53 | Получение железа. Применение | доменная печь, чугун/сталь | **Анимация доменной печи** |
**Лаб. опыт 5** (после §48): качеств. реакции на $Ca^{2+}/Ba^{2+}$.
**Лаб. опыт 6** (после §52): получение и окисление $Fe(OH)_2$.
**Практическая работа 4** (после §52): решение экспериментальных задач «Металлы».
**Итого**: 53 §, 4 главы, 6 лаб. опытов, 4 практические работы.
---
## 🔍 ТЕКУЩЕЕ СОСТОЯНИЕ `chemistry_9.html` (gap-анализ)
Файл уже существует: `frontend/textbooks/chemistry_9.html` (~860 КБ, 10 659 строк).
**Что есть ✅**
- Скелет страницы по образцу физики: header, para-selector (карточки секций), табы, sidebar
- Все 53 § как `data-para="p1"..."p53"` (структура совпадает с реальной книгой)
- Amber-палитра + dark mode, адаптив
- ~58 маркеров `boss/quiz/тренаж` — есть зачатки тренажёров
- Автоначисление XP через `/js/textbook-xp-widget.js` (+5 XP за первый клик по §)
- Прогресс/закладки через `/js/textbook-tracker.js` + БД (`textbooks`, `textbook_progress`, `textbook_bookmarks`)
**Чего НЕТ ❌ (главный объём работы)**
- **Наглядность**: всего **12 `<svg>` на весь файл**, **0 `<canvas>`**, **0 симуляторов** (`openSim` не вызывается ни разу)
- **0 молекулярных моделей** (хотя `biochem-core.js` умеет 2D/3D шаростержневые)
- **0 рендера уравнений реакций** (нет стрелок реакций `→ ⇌ ↑ ↓ →[t]`, коэффициентов, состояний)
- **0 глоссария** (в других учебниках есть)
- Таблица растворимости и ряд активности — **только картинки на форзаце, не интерактивны**
- Заголовок/водяной знак содержат артефакты от копирования шаблона «МЕТАЛЛЫ»; title `«§160»`**устарел** (реально 53 §)
- Секционная группировка карточек (`psel-c1..c6`) не выровнена на 4 главы книги
**Вывод**: каркас переиспользуем, но содержательно страница «текстовая». План = наполнить
её химическим интерактивом и наглядностью + исправить метаданные.
---
## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА
### A. Движки и переиспользуемые активы
| Что нужно | Берём из | Файл |
|-----------|----------|------|
| Парсинг формул, молярная масса, формула Хилла | biochem-core | `frontend/js/biochem-core.js` |
| 2D/3D шаростержневые модели, VSEPR-геометрия | biochem-core | `frontend/js/biochem-core.js` |
| Интерактивная ПСХЭ | sim `periodic` | реестр `frontend/js/labs/` |
| Электролиз | sim `electrolysis` | реестр |
| Титрование | sim `titration` | реестр |
| Качественный анализ | sim `qualanalysis` | реестр |
| Растворы/концентрации | sim `solutions` | реестр |
| Стехиометрия | sim `stoichiometry` | реестр |
| Песочница реакций | sim `chemsandbox` | реестр |
Симуляторы монтируются как в других страницах: контейнер `<div id="sim-<id>"></div>` +
вызов `openSim('<id>')` (или прямой mount через `window.LabRegistry`).
### B. Новый общий хелпер `/js/chem9_svg.js` (по образцу `geom7_svg.js`, `alg10_svg.js`)
Чисто химические примитивы, которых нет в biochem-core:
```js
// 1. Рендер уравнения реакции: коэффициенты, состояния, стрелки, условия над стрелкой
// chemEq('2Na + 2H2O -> 2NaOH + H2^', {cond:'', arrow:'->'}) → HTML с верхн./нижн. индексами, ↑↓, ⇌, →[t°]
const chemEq = (src, opts={}) => { /* токенизация формул, KaTeX-подобный рендер */ };
// 2. Ион с зарядом: ionLabel('SO4', -2) → 'SO₄²⁻'
const ionLabel = (formula, charge) => { /* нижние индексы + надстрочный заряд */ };
// 3. Пробирка с осадком / газом / окраской (SVG-анимация)
const testTube = ({fill, precipitate, gas, color, label}) => { /* svg */ };
// 4. Орбитальная диаграмма (стрелки в клетках): orbitalDiagram('1s2 2s2 2p6 3s2 3p2')
const orbitalDiagram = (config) => { /* svg клетки + ↑↓ */ };
// 5. Интерактивная таблица растворимости (виджет с подсветкой пары катион×анион)
const solubilityTable = (mount, {highlight}) => { /* P/Н/М/— из форзаца */ };
// 6. Интерактивный ряд активности металлов (drag/клик → предсказание реакции)
const activitySeries = (mount, opts) => { /* K Ca Na Mg Al Zn Fe ... Au */ };
// 7. Мини-ПСХЭ с подсветкой (элемент/группа/период/семейство)
const miniPeriodic = (mount, {highlight, onClick}) => { /* 118 элементов */ };
// 8. Индикатор + шкала pH (лакмус/фенолфталеин/метилоранж)
const indicatorScale = (mount, {ph, indicator}) => { /* цвет полоски */ };
// 9. Анимация диссоциации/растворения (частицы ионов разлетаются)
const dissociationAnim = (mount, {salt}) => { /* canvas/SVG-частицы */ };
```
Молекулы (структурные/шаростержневые/3D) — **через `biochem-core.js`**, не дублировать.
### C. Правила рендера химии (обязательны с §1)
1. **Формулы веществ** — нижние индексы для атомов ($H_2O$, $CaCO_3$), верхние для зарядов ионов ($SO_4^{2-}$); единый рендер через `chemEq`/`ionLabel`, не «сырой» текст.
2. **Уравнения реакций** — всегда сбалансированы; стрелки: `=`/`→` (необратимая), `⇌` (обратимая), `↑` (газ), `↓` (осадок), условия над стрелкой ($t$, $\text{кат.}$, $\text{эл.ток}$).
3. **Состояние** — для качественных реакций обязательно показывать признак: цвет осадка, пузырьки газа, изменение окраски индикатора (через `testTube`/`indicatorScale`).
4. **Ионные уравнения** — для §9–10 и всех качественных реакций давать тройку: молекулярное → полное ионное → сокращённое ионное (виджет-конвертер).
5. **Молекулярные модели** — структурная формула + 3D (biochem-core); для каждого изучаемого простого вещества/важного соединения хотя бы 1 модель.
6. **Цвета — химически достоверные**: осадки ($AgCl$ белый, $Cu(OH)_2$ голубой, $Fe(OH)_3$ бурый, $Fe(OH)_2$ зеленоватый), пламя ($Ca$ кирпично-красный, $Sr$ карминовый, $Ba$ жёлто-зелёный, $Na$ жёлтый, $K$ фиолетовый).
7. **Безопасность** — где уместно (разбавление $H_2SO_4$, ядовитость $CO$, $H_2S$) — заметка-«скрепка» с предупреждением.
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\rightleftharpoons`).
9. **Drag/слайдеры**`window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()` (как в стандарте геометрии), `touch-action:none` на draggable SVG/canvas.
10. **Без эмоджи** — только inline SVG `.ic`/`.ico` (правило проекта).
### D. Типы интерактивов по химическим темам
| Тип темы | Интерактив |
|----------|------------|
| Строение атома / ПСХЭ (§2, 12, 40) | `miniPeriodic`, `orbitalDiagram`, sim `periodic` |
| Химическая связь (§3) | slider ЭО → тип связи, диполь, e-пары |
| Растворы (§4–6) | калькулятор $w$/$c$/разбавления, график растворимости, sim `solutions` |
| Диссоциация / РИО (§7–10) | `dissociationAnim`, конвертер ионных уравнений, `solubilityTable` |
| Аллотропия (§13, 20, 31, 34, 37) | 3D-модели biochem-core |
| Качественные реакции (§17, 25, 28, 36, 48, 52) | `testTube` + ионное уравнение + признак |
| Кислоты/основания (§16, 23, 29, 32) | `indicatorScale`, ступенчатая диссоциация |
| Ряд активности / свойства металлов (§42, 43, 49) | `activitySeries`, предсказатель реакции |
| Электролиз (§45) | sim `electrolysis` |
| Окисл.-восст. / горение (§14, 18) | анимация горения, баланс ОВР |
| Производство (§24, 39, 45, 53) | пошаговые схемы (контактный способ, варка стекла, доменная печь) |
| Удобрения / прикладное (§33, 44, 47, 11) | калькуляторы, инфографика |
---
## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)
Каждый § после доработки содержит:
**Теория (3–4 карточки):**
- `theory` — основное определение/понятие + наглядная SVG/модель
- `rule` — ключевая закономерность/формула (рамка)
- `example` — разобранный пример (реакция/расчёт) с пошаговым рендером
- (для прикладных §) `apply` — применение/значение (инфографика)
**Интерактивы (4–6 на §):**
1. **Звёздный виджет** темы (из карты содержания выше)
2. **Конструктор/симулятор** (slider / drag / sim из реестра)
3. **Калькулятор** (молярная масса, $w$, выход, по уравнению) — где применимо
4. **DnD-сортер / классификатор** (классы веществ, тип связи, признак реакции)
5. **Тренажёр** — 5 задач с inline-наглядностью (формула/уравнение/модель в условии)
6. **Босс §** — 4 интеграционные задачи (+5 XP каждая)
**Дополнительно:**
- Пополнение **глоссария** (термины §)
- **Вопросы и задания** из учебника (адаптированные, с проверкой)
- jsdom-тест страницы проходит
**Финал главы:**
- **Итоговая шпаргалка** — mini-cards (формула/реакция/иконка) по каждому §
- **Карта связей** — SVG-граф понятий главы (генетические связи веществ)
- **7 интегрированных боссов** (каждый ≥2 темы, +10 XP)
- **Achievement** «Мастер главы N» (+50 XP, confetti)
- Кнопка перехода к следующей главе
---
## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)
### Phase 0 — Фундамент
- Исправить метаданные `chemistry_9.html`: `<title>Химия 9 — §153`, убрать артефакт «МЕТАЛЛЫ» в water-mark/CSS, починить кодировку заголовков (UTF-8).
- Перегруппировать карточки para-selector на **4 главы** книги (цвета: I amber, II blue, III teal/cyan, IV deep-orange).
- Создать `/js/chem9_svg.js` с хелперами A–B (заглушки → реализация по мере фаз).
- Подключить `biochem-core.js` и нужные симуляторы на страницу.
- **Миграция БД** (следующий номер после `040_content_access.sql``041_chemistry9_fix.sql`): обновить запись `chemistry-9``para_count = 53`, корректные `title`/`author`/`description`, `color='amber'`. (Слаг и html_path уже есть из migration 004.)
- jsdom-тест-каркас для страницы.
### Phase 1 — Глава 1 «Повторение» (§§1–3) — разогрев
Простые темы, но закладываем 3 базовых движка: `miniPeriodic`, `orbitalDiagram`, визуализатор связи. Эти виджеты переиспользуются во всех 4 главах.
### Phase 2 — Глава 2 «Растворы. ТЭД» (§§4–11) + ПР1, ПР2
Самая «расчётно-логическая». Закладываем `solubilityTable`, конвертер ионных уравнений, `dissociationAnim`, калькулятор раствора, sim `solutions`. Эти движки критичны для всей химии 9.
### Phase 3 — Глава 3 «Неметаллы» (§§12–25): галогены, кислород, сера + лаб.1, лаб.2
SVG/модели-тяжёлая. 3D-аллотропы (biochem-core), первые качественные реакции (`testTube`: $AgCl↓$, $BaSO_4↓$), горение, безопасность $H_2SO_4$.
### Phase 4 — Глава 3 «Неметаллы» (§§26–39): азот, фосфор, углерод, кремний + лаб.3, лаб.4, ПР3
Фонтан аммиака, NPK-калькулятор, качеств. реакция на $CO_3^{2-}$, сталактиты, варка стекла/цемент.
### Phase 5 — Глава 4 «Металлы» (§§40–48): общие свойства, щелочные, ЩЗМ + лаб.5
`activitySeries`, sim `electrolysis`, цвета пламени, симулятор жёсткости воды, качеств. на $Ca^{2+}/Ba^{2+}$.
### Phase 6 — Глава 4 «Металлы» (§§49–53): алюминий, железо + лаб.6, ПР4
Амфотерность $Al(OH)_3$, качеств. на $Fe^{2+}/Fe^{3+}$, симулятор коррозии, анимация доменной печи.
### Phase 7 — Финалы глав + общий финал учебника
- Шпаргалки и карты связей по каждой главе
- Интегрированные боссы + achievements
- **Большой финал**: генетическая карта «неметаллы ↔ металлы ↔ соли», итоговый босс-квест, ачивка «Химик 9 класса»
- Глоссарий собран целиком, связан `[[ссылками]]`
### Phase 8 — Качество и админка
- Полный прогон jsdom-тестов (каждый § — builder не stub)
- Аудит KaTeX/`chemEq`-эскейпов, баланса всех уравнений
- Синхронизация с админкой (если симуляторы добавлялись в `lab.html` → обновить `ADMIN_SIMS` в `admin.html` — правило проекта)
- Проверка доступа по классам/ученикам (`contentAccess`, `/api/access`)
> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit + проходящий jsdom-тест.
---
## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ
| Точка | Действие |
|-------|----------|
| **БД каталог** | `textbooks` уже содержит `chemistry-9` (migration 004). Миграция `041` — поправить `para_count=53`, title/description. |
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. |
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js` + `lab-glue.js`. Химические sim уже зарегистрированы (`periodic`, `electrolysis`, `titration`, `qualanalysis`, `solutions`, `stoichiometry`, `chemsandbox`). |
| **Молекулы** | `biochem-core.js` (парсинг, молярная масса, 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-диапазоны за пределы химически возможного (концентрации, температуры).
- Эмоджи — запрещены; только inline SVG `.ic`.
- Grep tool — запрещён; поиск только `ast-index`.
### ✅ Обязательно
- Каждый commit → jsdom-тест 100% pass.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Качественная реакция = уравнение (молек.+ионное) **+ видимый признак** (`testTube`/индикатор).
- Цвета осадков/пламени — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Коммитить только изменённые файлы (не `git add -A`), сразу push (правило CLAUDE.md).
---
## 📊 Оценка объёма
| Глава | § | Лаб/ПР | Ожидаемый LOC |
|-------|---|--------|---------------|
| Гл.1 Повторение | 3 | — | ~3 500 (+движки ПСХЭ/орбитали/связь) |
| Гл.2 Растворы. ТЭД | 8 | ПР1, ПР2 | ~9 000 (+`solubilityTable`, ионные ур-я, `solutions`) |
| Гл.3 Неметаллы | 28 | 4 лаб, ПР3 | ~28 000 (модели, качеств. реакции, безопасность) |
| Гл.4 Металлы | 14 | 2 лаб, ПР4 | ~16 000 (ряд активности, электролиз, коррозия, доменная печь) |
| Финалы глав + общий | — | — | ~5 000 |
| `/js/chem9_svg.js` хелперы | — | — | ~2 500 |
| **Итого** | **53** | **6 лаб + 4 ПР** | **~64 000 LOC** |
Существующий каркас (~10 700 строк) переиспользуется; основной прирост — интерактив,
наглядность и движки.
---
## 🎬 Запуск
**Phase 0**: чистка метаданных `chemistry_9.html` + перегруппировка на 4 главы +
`/js/chem9_svg.js` (скелет) + подключение `biochem-core.js`/симуляторов + миграция `041`.
**Phase 1**: Глава 1 (§§1–3) — закладываем `miniPeriodic`, `orbitalDiagram`, визуализатор связи.
Дальше — последовательно по главам (Phase 2 → 6), затем финалы (Phase 7) и качество (Phase 8).