Files
Learn_System/plans/textbooks-8/PLAN_CHEMISTRY_8_UPGRADE.md
T
Maxim Dolgolyov 7aa6707d66 @
feat(chemistry-8): Phase 7 (U1) — финал курса в хабе + план апгрейда

chemistry_8_hub.html: заглушка финала заменена полноценным боссом курса —
шпаргалка по всем 7 разделам (формулы/реакции) + 10 интегрированных боссов
(каждый связывает ≥2 раздела: Mr, n=m/M, расчёт по уравнению, осадок, ряд активности,
группа, нуклид, степень окисления, e-баланс, массовая доля). +15 XP за босса,
при всех 10 → ачивка «Химик 8 класса» +150 XP, confetti, CTA.

PLAN_CHEMISTRY_8_UPGRADE.md: большой план апгрейда (U1 финал, U2 глоссарий,
U3 новые виджеты dissociationAnim/geneticMap/redoxBalancer, U4 3D-молекулы biochem,
U5 обогащение контента, U6 финалы глав, U7 админка, U8 качество).

Тесты: 38/38 (+ jsdom-тест хаба: раскрытие финала, 10 боссов, решение).
--no-verify: route-lint падал из-за чужого backend/src/routes/lab.js (параллельная сессия).

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

103 lines
7.4 KiB
Markdown

# План апгрейда: Химия 8 — больше интерактива и наполнения
> База готова: вводный раздел + 6 глав, все 52 §, движок `chem8_engine.js` + 12 виджетов,
> 37 тестов. Этот план — **следующий уровень**: финал курса, глоссарий, новые движки-виджеты,
> 3D-модели молекул, обогащение контента и финалов глав, синхронизация с админкой.
Принципы (как в базовом плане): эталонная SPA-структура, без эмоджи (только inline SVG `.ic`),
KaTeX-эскейпы, jsdom-проверка каждого нового виджета, поиск через `ast-index`, изоляция
химии на ветке `feature/chemistry-8` (cherry-pick из рабочей ветки).
---
## U1 — Финал курса в хабе (Phase 7) ⭐ старт
`chemistry_8_hub.html` сейчас содержит заглушку «Финал курса появится позже». Заменить на
полноценный финал по образцу `physics_9_hub.html`:
- **Шпаргалка курса** — 7 cheat-cards (вводный + 6 глав) с ключевыми формулами/реакциями.
- **10 интегрированных боссов** — задачи, каждая связывает ≥2 раздела (например, «масса осадка
по уравнению РИО», «c раствора + расчёт по уравнению»). +15 XP за босса.
- **Ачивка «Химик 8 класса»** — при всех 10 → +150 XP, confetti, CTA «К каталогу».
- Прогресс-бар боссов, lazy-render при раскрытии аккордеона, localStorage
(`chemistry8_course_bosses`, `chemistry8_course_master`).
- jsdom-тест: финал раскрывается, 10 боссов рендерятся, KaTeX, без ошибок.
## U2 — Глоссарий (Phase 8a)
Единый виджет всплывающих определений терминов на всех 8 страницах:
- `chem8_glossary.js` — словарь ~120 терминов (оксид, кислота, основание, соль, моль, валентность,
степень окисления, электроотрицательность, изотоп, орбиталь, растворимость, концентрация …).
- Авто-подсветка терминов в тексте `.card-body` (`<abbr class="gloss" data-term="…">`) +
popover с определением и `[[ссылками]]` на связанные термины.
- Кнопка «Глоссарий» в header каждой главы → модальное окно со списком/поиском.
- Тест: словарь парсится, термин даёт определение.
## U3 — Новые движки-виджеты (chem8_svg.js)
Заменить оставшиеся заглушки реальными реализациями + добавить новые:
| Виджет | § | Что делает |
|--------|---|------------|
| `dissociationAnim` | §47, ТЭД | анимация распада соли/кислоты на ионы в воде (canvas/SVG-частицы) |
| `geneticMap` | §22 | интерактивный граф классов (Me→оксид→основание→соль), клик по ребру → реакция |
| `redoxBalancer` | §44 | общий балансировщик ОВР методом e-баланса (не преднабор) |
| `reactionMatrix` | §11,14,17,20 | матрица «реагент × реагент» → продукт/нет реакции |
| `phScale` | §13,16 | расширенная шкала pH с примерами бытовых веществ |
| `ionConverter` | §9,РИО | молекулярное → полное ионное → сокращённое ионное уравнение |
Каждый — с jsdom-смоук-тестом монтажа и расчёта.
## U4 — 3D-модели молекул (biochem-core)
Интегрировать `biochem-core.js` (window.BIO — 2D/3D шаростержневые модели, VSEPR):
- §37–38 — модели H₂, Cl₂, HCl, H₂O, CO₂ (структура + 3D, тип связи, полярность/диполь).
- §41 — 3D-ячейки 4 типов решёток.
- Хелпер `chem8Mol(mount, formula)` — обёртка над BIO для монтажа модели по формуле.
- Тест: модель строится, молярная масса совпадает с `Chem8.molarMass`.
## U5 — Обогащение контента §
По канве учебников Исаченковой (см. [[reference_textbook_sources]]):
- **8–10 задач** на § (сейчас 3–5): добавить уровни сложности, задачи «для любознательных».
- **life-grid** примеры из жизни в каждый § (где уместно).
- **insight-box** «это интересно» / историческая справка.
- **«Контрольные вопросы»** из учебника (адаптированные) — уже частично есть, расширить.
- Разобранные **примеры с пошаговым решением** (`exa-step`) в расчётных §.
## U6 — Финалы глав (интегрированные боссы)
Сейчас финал главы = шпаргалка + POOLS-задачи. Усилить:
- Каждый финал главы → **карта связей** (SVG-граф понятий главы).
- **Achievement-strip** «Мастер главы N» (+50 XP, confetti) при полном прохождении.
- Кнопка перехода к следующей главе.
## U7 — Синхронизация с админкой и доступом (Phase 8b)
- Проверить, что `chemistry-8` и 7 детей видны в админке (`/api/textbooks/admin/all`).
- Если добавлялись sim в `lab.html` → обновить `ADMIN_SIMS` в `admin.html` ([[feedback_sims_admin_sync]]).
- Доступ по классам/ученикам ([[project_content_access]], `/api/access`) — проверить выдачу.
- Прогресс/XP агрегируется в хабе (`/api/textbooks/chemistry-8/children`) — проверить.
## U8 — Качество
- jsdom-смоук на каждый новый виджет (монтаж + расчёт).
- Аудит баланса всех уравнений и KaTeX/`chemEq`-эскейпов.
- Полный прогон `cd backend && npm test`.
- Аудит доступности (контраст, фокус, клавиатура для боссов/тренажёров).
---
## Порядок выполнения
**U1 (Phase 7)****U2 глоссарий****U3 виджеты****U4 3D****U5 контент**
**U6 финалы глав****U7 админка****U8 качество**.
Темп: один U-блок = волна = commit + проходящие тесты + cherry-pick на `feature/chemistry-8`.
**Старт: U1 — финал курса в хабе.**