39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
# Фаза 73. Оценка с урока
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 48](../off-queue/48-lesson-teacher-present.md)
|
|
- [Фаза 50](../off-queue/50-teacher-skill-gain.md)
|
|
- [Фаза 51](../off-queue/51-warmth-lesson.md)
|
|
- [Фаза 52](../off-queue/52-textbook-lesson.md)
|
|
|
|
## Зачем
|
|
|
|
Рост навыка получает школьный смысл: оценка 2–5 за урок.
|
|
|
|
## Задачи
|
|
|
|
- [ ] Из качества урока (те же входы, что `LessonLearning.Gain`) писать оценку **2, 3, 4 или 5**
|
|
- [ ] Пороги и «когда писать» (раз за слот урока) — в `BehaviorDef` / данных `core`
|
|
- [ ] Нет учителя / множитель 0 — явное правило (нет оценки или 2), зафиксировать в данных и тесте
|
|
- [ ] Хранение на ученике, потолок недавних; сейв
|
|
- [ ] Детерминизм: тот же сид и те же входы → та же оценка
|
|
- [ ] Игрок оценку не ставит и не правит (нет API правки)
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [ ] Урок с сильным учителем и полными множителями даёт не ниже урока с пустым кабинетом учителя
|
|
при тех же прочих
|
|
- [ ] За один слот не пишется пачка оценок каждую минуту
|
|
- [ ] Сейв сохраняет последние оценки
|
|
- [ ] HTTP/сокет не принимает «поставить оценку»
|
|
|
|
## Критерий готовности
|
|
|
|
- После урока у ученика в данных есть 2–5; перезагрузка школы не стирает
|
|
- Отфильтрованные тесты по Testing policy проходят
|
|
|
|
## Стоп
|
|
|
|
Не явка. Не UI журнала. Не тосты. Не болезни.
|