# План реализации: Химия 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. Неметаллы (§§12–39) — *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. Металлы (§§40–53) — *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 `` на весь файл**, **0 ``**, **0 симуляторов** (`openSim` не вызывается ни разу) - **0 молекулярных моделей** (хотя `biochem-core.js` умеет 2D/3D шаростержневые) - **0 рендера уравнений реакций** (нет стрелок реакций `→ ⇌ ↑ ↓ →[t]`, коэффициентов, состояний) - **0 глоссария** (в других учебниках есть) - Таблица растворимости и ряд активности — **только картинки на форзаце, не интерактивны** - Заголовок/водяной знак содержат артефакты от копирования шаблона «МЕТАЛЛЫ»; title `«§1–60»` — **устарел** (реально 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` | реестр | Симуляторы монтируются как в других страницах: контейнер `
` + вызов `openSim('')` (или прямой 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`: `Химия 9 — §1–53`, убрать артефакт «МЕТАЛЛЫ» в 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).