feat(ct-math): конвертер questions→exam_tasks для отдельного модуля ctmath (dry-готов)

- backend/scripts/seed_ctmath_exam_tasks.js — переносит размеченные вопросы
  ЦТ-11 из банка questions в exam_tasks (exam_key='ctmath') для отдельного
  модуля exam-prep. Dry по умолчанию, запись только с --apply.
  Правила сверены с exam-prep: MC-метки кириллица а..д (answer=метка);
  open числовой/дробь/пара иначе long; делимитеры \( \)→$, \[ \]→$$;
  subtopic=slug из 077; variant=год; multi/multiple пропуск.
  Dry-run: 733 вопроса → 723 (525 mc + 191 open + 7 long), выборка корректна.
- BUILD_ON_QUESTIONS.md: решение «ЦТ = отдельный модуль» + план + dry-результат.

Запись в БД (применение 077 + вставка 723) — ожидает явной санкции пользователя.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-15 07:56:43 +03:00
parent 31719b2e79
commit fd26efca53
2 changed files with 172 additions and 0 deletions
+23
View File
@@ -36,6 +36,29 @@ assignment-практика `mode='topic'`; колоды формул (`flashcar
---
## 0a. Решение: ЦТ как ОТДЕЛЬНЫЙ модуль exam-prep (2026-06-15)
По решению пользователя ЦТ оформляется как **отдельный модуль** (как «Экзамен 9»): свой раздел
`/exam-prep/ctmath` с дашбордом, тренажёром по темам, пробниками на таймер, детектором слабых тем.
Это значит: применить трек+дерево тем (миграция **077**) и **перенести размеченные вопросы ЦТ-11 из
банка `questions` в `exam_tasks`** (exam_key='ctmath').
Конвертер: **`backend/scripts/seed_ctmath_exam_tasks.js`** (dry по умолчанию, запись `--apply`).
Правила сверены с exam-prep (агент-разведка): MC-метки кириллица `а,б,в,г,д`, `answer`=метка; open —
числовой/дробь/пара (иначе → `long` self-check); математика `\( \)``$`, `\[ \]``$$` (exam-prep KaTeX
знает только `$`/`$$`!); `subtopic`=slug из 077; `variant`=год; multi/multiple (radio несовместимо) — пропуск.
**Dry-run (2026-06-15):** 733 размеч. вопроса → **723 к вставке** (525 mc + 191 open + 7 long;
10 multi пропущено; 7 не-числовых → long). Делимитеры/метки/ответы корректны (проверено на выборке).
**Статус записи:** применение 077 и вставка 723 задач — это запись в живую БД; авто-режим её
заблокировал, ждём явной санкции пользователя. После applied: дать `content_access` (exam/ctmath классу)
+ ссылку в сайдбаре на `/exam-prep/ctmath`.
> ⚠️ Гоча: рендер exam-prep — ТОЛЬКО `$…$`/`$$…$$` (НЕ `\(…\)`). Конвертер это учитывает.
---
## 1. Что уже есть (проверено чтением БД)
| Таблица | Роль | Факт |