задачи 2 и 8

This commit is contained in:
Zuev
2026-08-11 18:18:08 +03:00
parent 519864b962
commit 18a97b293a
59 changed files with 6237 additions and 276 deletions

View File

@@ -112,15 +112,19 @@
## 2. Черновики, версии, публикация и аудит расписания
**Статус: реализовано в MVP.** Добавлены изолированные версии `DRAFT/PUBLISHED/ARCHIVED`,
полное копирование правил, валидация и diff правил/занятий, атомарная публикация,
восстановление предыдущей публикации и неизменяемый журнал действий. Экран качества умеет
проверять черновики до публикации; изменения в них выполняются через конструктор правил.
### Проблема и пользователи
Изменение активного правила сейчас сразу влияет на следующий запрос расписания. При большой
переработке семестра это создаёт риск показать студентам и преподавателям промежуточное
состояние. Учебному отделу нужен безопасный цикл «подготовить — проверить — опубликовать».
В таблице `schedule_rules` уже предусмотрены поля `version_group_id`, `change_reason`,
`created_by` и `created_at`, которые можно использовать как основу, но полноценный жизненный
цикл версий пока не реализован.
Поля `version_group_id`, `change_reason`, `created_by` и `created_at` в `schedule_rules`
используются вместе с отдельными таблицами версий и истории публикаций.
### Пользовательский сценарий
@@ -144,9 +148,10 @@
### Связь с текущей системой
Текущая динамическая генерация сохраняется, но получает явный контекст версии. Конструктор
правил работает как с черновиком, так и с опубликованной версией, а кабинеты просмотра — только с опубликованной версией. Точечные изменения можно вести отдельным аудитом либо включать в пакет публикации в зависимости от
будущих продуктовых требований.
Текущая динамическая генерация получила явный контекст версии. Конструктор правил меняет
только черновик, кабинеты просмотра используют только опубликованную версию, а анализатор
качества позволяет выбрать опубликованную, черновую или архивную версию. Точечные изменения
остаются привязаны к конкретной публикации и не переносятся в новый черновик автоматически.
### Дальнейшее развитие
@@ -396,7 +401,10 @@ feed должен отдавать только опубликованное р
**Ожидаемый результат:** заметное сокращение ручного заполнения и ошибок ввода.
**Сложность:** M. **Демонстрационный эффект:** высокий благодаря наглядному предпросмотру.
## 8. (отдельным запросом) Анализ качества и автоматическая оптимизация расписания
## 8. Анализ качества и автоматическая оптимизация расписания
**Статус:** реализован MVP анализатора и локальных рекомендаций. Полный solver, фоновые
черновики и сравнение нескольких глобальных вариантов остаются дальнейшим этапом.
### Проблема и пользователи
@@ -436,6 +444,12 @@ feed должен отдавать только опубликованное р
конфликтного или неудобного занятия. Такой MVP позволяет проверить метрики качества,
интерфейс объяснений и производительность на реальных данных.
Реализованный MVP анализирует фактическое расписание выбранного семестра с учётом ручных
правок, формирует оценку и список проблем, а для конкретного занятия предлагает проверенные
перестановки времени в пределах дня или аудитории. Кандидат применяется только после
подтверждения пользователя через существующий `schedule_override`; ручные правки считаются
закреплёнными.
Red Zone уже выявляет накладки и превышение вместимости, а вкладка загруженности показывает
занятые и свободные слоты. Новый анализатор не должен дублировать эти экраны: его ценность —
единая объяснимая оценка, мягкие критерии качества и рекомендации по улучшению.