From 6c1e0033409f6e7e97beb6be4d321251793f0592 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Sat, 30 May 2026 17:57:45 +0300 Subject: [PATCH] =?UTF-8?q?docs(textbooks):=20=D0=BF=D0=BB=D0=B0=D0=BD=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=83=D1=87=D0=B5=D0=B1=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=A5=D0=B8=D0=BC=D0=B8=D1=8F=207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Полный план учебника Химия 7 (Беларусь, Шиманович 2023): 26 §, 4 главы, 5 лаб. опытов, 4 практ. работы. Архитектура hub + 4 главы (как Химия 8), карта интерактивов по каждому §, химический стандарт качества, миграция 046, фазы 0-6, ачивки. Строго по программе 7 класса. Co-Authored-By: Claude Opus 4.8 (1M context) --- plans/textbooks-7/PLAN_CHEMISTRY_7.md | 425 ++++++++++++++++++++++++++ 1 file changed, 425 insertions(+) create mode 100644 plans/textbooks-7/PLAN_CHEMISTRY_7.md diff --git a/plans/textbooks-7/PLAN_CHEMISTRY_7.md b/plans/textbooks-7/PLAN_CHEMISTRY_7.md new file mode 100644 index 0000000..59529b5 --- /dev/null +++ b/plans/textbooks-7/PLAN_CHEMISTRY_7.md @@ -0,0 +1,425 @@ +# План реализации: Химия 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 Первоначальные химические понятия | 1–12 | `chemistry_7_ch1.html` | `chemistry-7-ch1` | emerald | +> | Гл.II Кислород | 13–17 | `chemistry_7_ch2.html` | `chemistry-7-ch2` | sky/cyan | +> | Гл.III Водород | 18–22 | `chemistry_7_ch3.html` | `chemistry-7-ch3` | violet | +> | Гл.IV Вода | 23–26 | `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. Кислород (§§13–17) — *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. Водород (§§18–22) — *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. Вода (§§23–26) — *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: контейнер `
` + `openSim('')` (или прямой 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), закрывает «нижнюю» ступень химии.