# Phase 5: Курикулумная привязка

**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** fullstack

## Objective
Связать симуляции с учебной программой: § учебника, узел knowledge-map, тема банка
вопросов. Двусторонняя навигация.

## Tasks
- [ ] Схема связей: использовать поля манифеста (subject/grade/topics) + таблицу связей `lab_sim_links` (sim_id, kind[textbook|topic|kmap|question], ref_id).
- [ ] API: `GET /api/lab/sims/:id/related` — связанные § / темы / задачи.
- [ ] Frontend учебник/теория: кнопка «Открыть в лаборатории» в § (deep-link openSim).
- [ ] Frontend knowledge-map: узел темы → ссылка на симуляцию.
- [ ] Страница симуляции: блок «Связанная теория и задачи».
- [ ] Админка: редактирование связей симуляции.

## Files to Modify/Create
- `backend/src/db/migrations/0XX_lab_sim_links.sql`
- `backend/src/routes/lab.js` — related endpoint.
- `frontend/textbooks.html` / theory / учебник-рендер — кнопки в §.
- `frontend/knowledge-map.html` — ссылки с узлов.
- `frontend/lab.html` — блок связей на странице sim.
- `frontend/js/admin/sections/sims.js` — редактор связей.

## Acceptance Criteria
- Из § учебника можно открыть нужную симуляцию.
- На странице симуляции видны связанные теория/задачи.
- Узлы knowledge-map ведут на симуляции.
- `npm test` зелёный, роуты под auth.

## Notes
- Привязки опциональны: отсутствие связей не ломает страницы.
- Переиспользовать существующие topic_id банка вопросов и структуру учебников.

## Review Checklist
- [ ] Навигация в обе стороны работает
- [ ] Пустые связи не ломают UI
- [ ] Роуты под auth, тесты проходят

## Handoff to Next Phase
<!-- финальная фаза -->
