Files
Learn_System/plans/lab-content-engine/PLAN.md
T
2026-05-30 16:55:19 +03:00

4.0 KiB

Feature: Контент-движок лаборатории (симуляции как данные)

Branch: feature/lab-content-engine Base branch: master Created: 2026-05-30 Status: Complete (все 6 фаз; backend полностью, фронт Ф5 — параллельная сессия; не мёржено в master) Strategy: Big Bang Mode: Automated Execution: Direct

Summary

Превратить захардкоженную в 6 местах регистрацию ~49 симуляций лаборатории в единый декларативный манифест + реестр (LabRegistry). Каждая симуляция сама себя регистрирует объектом {id, cat, title, desc, preview, theory, bodyId/mount, open, stop, destroy, subject, grade, topics}. Ядро (renderSims/openSim/closeSim/loadTheory) работает с реестром, а не с массивами и if-цепочками. Далее — ленивая загрузка кода, БД-бэкенд с админкой и курикулумная привязка.

Build & Test Commands

  • Build: — (фронт без сборки, статика через Express)
  • Test: cd backend && npm test (актуально для Фаз 4-5; Фазы 0-3 — статическая проверка + ревью по диффу)
  • Lint: cd backend && npm run lint:routes (актуально для Фаз 4-5)

Phases

  • Phase 0: Ядро реестра + адаптер + 3 пилота [domain: frontend] → subplan
  • Phase 1: Миграция всех симуляций на манифесты [domain: frontend] → subplan
  • Phase 2: Тела симуляций вынесены в labs-bodies.html (sync-инъекция) [domain: frontend] → subplan
  • Phase 3: Ленивая загрузка кода симуляций [domain: frontend] → subplan
  • Phase 4: Реестр в БД + API + админка [domain: fullstack] → subplan
  • Phase 5: Курикулумная привязка [domain: fullstack] → subplan

Phase Progress Log

Phase Domain Status Review Build Committed
Phase 0: Ядро реестра frontend Done (fix 0888a70) PASS (re-review) n/a ⚠️ local only (push auth fail)
Phase 1: Миграция всех frontend Done (ebb2a9b) PASS n/a pushed
Phase 2: Вынос тел frontend Done браузер-проверка пройдена n/a pushed
Phase 3: Ленивая загрузка frontend Done (201e94e +fix) E2E harness ALL PASS n/a ⚠️ нужна браузер-проверка
Phase 4: БД + админка fullstack Done PASS (review) 11/11 +0 baseline pushed
Phase 5: Курикулум fullstack Not Started

Final Review

  • Per-phase independent reviews (PASS)
  • Backend tests pass (lab-sims 11/11, lab-links 18/18; +0 к baseline)
  • route-auth lint: 0 роутов lab.js во флаге
  • Merged to master (НЕ выполнено — ветка общая, мёрж за пользователем)

Notes (Big Bang temporary breakage map)

  • Фаза 1 может временно ломать каталог/открытие симуляций пока миграция не завершена — устраняется внутри Фазы 1.
  • Фаза 2 временно меняет структуру lab.html (вынос тел) — устраняется внутри Фазы 2.
  • Полная работоспособность лаборатории гарантируется после ФИНАЛЬНОЙ фазы.