Перейти к основному содержимому

ADR-039. Миролимп владеет задачным контентом и шаблонами активностей

Контекст

В целевой архитектуре уже существует домен task-bank, который владеет каноническими задачами, версиями, answer schema, checking rules, problem sets, usage, low-level attempts/checks и problem-level evidence.

При этом система Миролимп / MeraLink исторически используется как математический банк олимпиадных задач и редакторский контур. Целевая роль шире: создание задач для олимпиад, открытый каталог, подготовка задач для курсов, кружков и интенсивов, проектирование занятий как последовательностей задач, создание программ и треков, а также переиспользование олимпиадных задач как тренажёров и учебных материалов.

Следовательно, Миролимп не должен становиться отдельным техническим доменом рядом с task-bank. Он описывается как продуктовая и предметная реализация task-bank.

Решение

task-bank / Миролимп владеет задачным контентом и методическими шаблонами задачных активностей.

В зону владения входят:

  • problem и problem_version;
  • statement, media, answer schema, answer key, checking rules, scoring rules;
  • решения, подсказки, rubrics, teacher notes;
  • предметы, темы, источники, теги, difficulty, age/class range;
  • связи между задачами: duplicate, analog, parameterized_variant, set_variant, similar, prerequisite, same_method;
  • problem_set как подборка задач;
  • activity_template как шаблон занятия, домашней работы, тренажёра, диагностики или дизайна олимпиадного тура;
  • program_template как программа, трек или последовательность активностей;
  • public eligibility и public-safe projection для открытого каталога;
  • content_export_snapshot для передачи контента в LMS, competitions, storefront и management;
  • low-level problem_attempt и answer_check, если проверка выполняется через task-bank API;
  • problem-level evidence, не равное mastery.

task-bank / Миролимп не владеет:

  • фактом проведения урока;
  • расписанием, группами и посещаемостью;
  • LMS course/lesson/training instances;
  • учебным прогрессом, completion и mastery;
  • registration, submission, result, award и publication олимпиады;
  • identity membership и organization roles;
  • оплатами, entitlement и CRM lifecycle;
  • storefront rendering, lead capture и marketing analytics.

Причины

Задача является атомом методического проектирования

Одна задача может использоваться в олимпиаде, тренажёре, занятии кружка, домашней работе и публичном каталоге. Платформа должна хранить её каноническую identity и версию в одном месте.

Методический шаблон не равен факту проведения

Шаблон занятия “Инварианты, 3–4 класс, занятие 7” является content object. Проведённое занятие 14 октября в группе 3М-2 является LMS object. Эти сущности нельзя смешивать.

Внешние домены должны получать locked snapshots

Изменение задачи или шаблона в Миролимпе не должно задним числом менять опубликованную олимпиаду, прошедшее занятие, назначенную домашку, тренажёр или диагностику.

Открытый каталог является projection

Публичный каталог нужен для SEO, публичного образовательного продукта и привлечения преподавателей, но он не должен становиться отдельной базой задач. Storefront показывает public-safe projection, а task-bank остаётся владельцем content eligibility и canonical task identity.

Мультипредметность должна быть заложена сразу

Математика является текущим ядром, но физика и будущие предметы требуют subject-specific taxonomy, source hierarchy, answer schemas, checking и filters. Модель не должна быть жёстко привязана к олимпиадной математике.

Последствия

  • task-bank data model расширяется сущностями subject, problem_relation, problem_publication_profile, activity_template, program_template и content_export_snapshot.
  • problem_set остаётся подборкой задач, но не подменяет полноценный сценарий занятия или программу.
  • problem_usage остаётся per-problem связью с внешним контекстом.
  • content_export_snapshot фиксирует grouped export для set/activity/program.
  • LMS импортирует activity/program snapshots, но владеет lesson/course instances, roster, assignments, attempts, progress и mastery contribution.
  • Competitions импортирует locked snapshots, но владеет event, season, tour, participants, submissions, official checking lifecycle, results, appeals и awards.
  • Identity остаётся владельцем user, organization, membership, organization roles и grants.
  • Trust/XP Миролимпа является task-bank reputation/governance signal и не заменяет identity role.
  • Storefront получает только public-safe projection без скрытых answer keys, teacher notes, закрытых решений и embargoed content.

Совместимость с существующими ADR

  • ADR-012: расширяется тем, что task-bank владеет не только задачами, но и методическими templates поверх задач.
  • ADR-013: сохраняется; problem_usage остаётся explicit per-problem context link, а snapshot является grouped export layer.
  • ADR-024: сохраняется; competitions проводит олимпиады, но не владеет canonical problems.
  • ADR-025: сохраняется; новый technical domain mirolimp не добавляется.
  • ADR-037: сохраняется; task-bank хранит references/access policies, но не membership.

Альтернативы

АльтернативаПочему отвергнута
Оставить Миролимп только банком задачНе покрывает занятия, программы, треки, интенсивы и публичный каталог как единый content flow
Перенести шаблоны занятий и программ в LMSLMS станет владельцем методического задачного контента и начнёт дублировать task-bank
Сделать отдельный домен mirolimpДублирует task-bank, конфликтует с ADR-012 и создаёт две модели задач

Acceptance criteria

ADR считается внедрённым, если:

  • в domains/task-bank/overview.md явно сказано, что task-bank/Миролимп управляет задачным контентом и методическими templates;
  • в domains/task-bank/scope.md разделены templates и instances;
  • в domains/task-bank/data-model.md добавлены ActivityTemplate, ProgramTemplate и ContentExportSnapshot;
  • integrations с LMS и competitions описывают locked snapshots;
  • публичный каталог описан как projection;
  • answer keys, rubrics, hidden solutions, competition embargo и teacher notes защищены visibility/scopes;
  • документация не вводит отдельный technical domain mirolimp.