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

Сценарии task-bank

Зачем нужно

Документ описывает внутридоменные сценарии task-bank: создание и публикация задачи, использование, проверка, попытки.

1. Создание задачи (методист)

  1. Методист открывает редактор задач.
  2. Создаёт problem со ссылками на таксономию (taxonomy_node через problem_taxonomy_link).
  3. Заполняет первую problem_version (формулировка, файлы, sample).
  4. Описывает answer_schema, answer_key и checking_rule (для авто-проверки) или помечает «ручная проверка».
  5. Добавляет problem_solution и problem_hint при необходимости.
  6. Сохраняет как draft.

2. Ревью и публикация

  1. Методист отправляет на review.
  2. Куратор просматривает и принимает или возвращает с правками.
  3. По принятии — problem_version помечается published, problem.status = active.
  4. Публикуется событие task-bank.problem.published.

3. Использование задачи в LMS

  1. LMS добавляет задачу в урок или домашку.
  2. Создаётся problem_usage с контекстом (lesson, homework, diagnostic) и опциями.
  3. Ученик видит задачу через UI LMS.

4. Использование задачи в туре олимпиады

  1. Competitions создаёт tour activity binding/task structure с source refs на problem_version.
  2. Создаётся problem_usage с контекстом competition_tour только как content/source usage.
  3. Доступ к выполнению открыт через LMS activity runtime или temporary adapter в окне тура.

5. Попытка ученика

  1. Ученик отправляет ответ через LMS activity runtime или temporary adapter.
  2. Runtime может создать low-level problem_attempt в task-bank только как check artifact/context ref.
  3. Если auto-check — task-bank немедленно создаёт answer_check.
  4. Если manual — ставится в очередь, после проверки публикуется task-bank.answer_check.completed.
  5. Результат сохраняется как answer_check + problem_evidence.

6. Подсказки

  1. Ученик запрашивает подсказку.
  2. LMS/competitions решают, выдавать ли (по правилам активности).
  3. По разрешению — task-bank возвращает problem_hint.
  4. Использование подсказки фиксируется в попытке.

7. Версионирование задачи

  1. Методист открывает задачу для правки.
  2. Создаётся новая problem_version (draft).
  3. По публикации новая версия становится доступной для новых problem_usage.
  4. Существующие usages остаются на закреплённой версии до явного обновления набора.

8. Управление таксономией

  1. Куратор открывает дерево taxonomy_node.
  2. Добавляет/перемещает узлы.
  3. Темы, навыки, типы задач, источники, уровни и классы различаются через taxonomy_node.type.
  4. Изменения распространяются по подписчикам через события.

9. Поиск и подбор задач

  1. Методист или преподаватель ищет задачи по фильтрам (subject, level, taxonomy, tags, difficulty).
  2. Результат — список problem с краткой информацией.
  3. Для каждой видны метрики использования (количество попыток, success rate).

10. Подборка задач

  1. Куратор формирует problem_set (вручную или по правилу).
  2. Подборка может использоваться как problem_usage в LMS-домашке или в туре олимпиады.

11. Шаблон занятия

  1. Методист создаёт activity_template.
  2. Добавляет sections: warmup, main, homework, reserve.
  3. Добавляет problem items with roles and version policies.
  4. Публикует template.
  5. Создаёт content_export_snapshot для LMS или competitions.
  6. LMS/competitions создаёт instance/process у себя, не меняя template.

12. Программа или трек

  1. Методист создаёт program_template.
  2. Добавляет tracks and modules.
  3. Добавляет sequence activity templates, например 32 занятия.
  4. Публикует program version.
  5. LMS импортирует locked program snapshot.
  6. Course schedule, enrollment and progress создаются только в LMS.

13. Публичный каталог

  1. Problem version published.
  2. Методист заполняет problem_publication_profile.
  3. Задача получает primary topic and allowed source publication status.
  4. Storefront читает public projection.
  5. Public page получает canonical URL /tasks/<taskId>.
  6. Answer keys, teacher notes and hidden solutions не попадают в projection.

Связанные документы

Ссылки на draft feature specs ниже — non-canonical detail drafts; канонические task-bank сценарии остаются в этом active-документе и state machines.