Files
h-school/docs/design/off-queue.md
T
Leonid PershinandCursor 254c43535e Document off-queue lesson coherence (phases 48-52).
Teacher presence, teacher skill, warmth, textbooks and weather commute are already visible numbers that do not affect the lesson or the walk to school.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:21:14 +03:00

6.7 KiB
Raw Blame History

Вне очереди

Задачи, которых нет в нумерованных срезах. Сюда не дописывают срез 9 и не заводят срез 10: это склейка уже живых систем, после любой фазы школа целая.

Люди: people.md. Штат: staffing.md. Расписание: schedule.md. Присутствие: ai.md. Одежда и климат: inventory.md.

Связность урока

Урок уже растёт навык, если ученик стоит в кабинете и не голоден. Рядом лежат числа, которые игрок видит и которые на этот рост не влияют: учитель в туалете, навык учителя, тепло, учебник в сумке, снег на дороге.

Этот кусок отвечает на вопрос «почему нанимать сильного, чинить тепло и класть учебник в сумку». Оценок, посещаемости как журнала и приказов нет.

Что меняется в уже принятом

Было Стало Почему
Ученик в кабинете качает навык, учитель может быть где угодно Рост только если назначенный учитель стоит в том же узле и не идёт Зазор «обязанность / место» уже есть; урок его не смотрел
Зарплата зависит от навыков, урок — нет Навык учителя по предмету масштабирует Gain Иначе «математика 78» в пуле — только цена
Голод режет урок, тепло — нет Та же NeedFactor на тепло Полоска уже живая; inventory.md откладывал штраф
Учебники сегодняшних предметов едут в сумке Нет в сумке на этом уроке — половинный рост Переноска и шкафчик иначе остаются двумя числами
Погода одевает, на приход не влияет Дождь и снег добавляют минуты к запасу на дорогу Часы уже показывают осадки; ленивый уже опаздывает от черты

Формула

HSchool.Ai.LessonLearning.Gain по-прежнему чистое число. Множители:

  • нуждыNeedFactor(голод) × NeedFactor(тепло); нет нужды в каталоге — множитель 1;
  • черты ученика — как сейчас;
  • учительNeedFactor(навык / 100), навык — среднее по SubjectDef.skills у учителя, нет ключа — Range.Min этого навыка; учителя нет в комнате — множитель 0, рост не пишется;
  • учебник — 1, если в сумке есть экземпляр с subject этого урока; иначе BehaviorDef.lessonNoTextbookFactor (ваниль 0.5).

Учитель «стоит в комнате»: NodeId = кабинет урока, путь пуст, остаток минут 0. Действие учителя не отменяет урок (дежурство — не ActionDef). Нет человека с этим id — учителя нет.

Дорога: к нынешнему SlackMinutes (черты + бросок) прибавляются минуты из BehaviorDef.commuteRainMinutes / commuteSnowMinutes, если в момент сборки плана дня на улице дождь или снег. HSchool.Ai осадки не знает — симуляция передаёт уже посчитанные минуты.

Что видит игрок

Числа на карточке. Плюс строка в сегодняшней истории, один раз на ключ в сутки, не каждый тик:

Тип Когда thingDef
lesson-no-teacher Урок шёл, учителя не было в кабинете предмет
lesson-cold На уроке, который иначе учил, тепло ниже needThreshold предмет
lesson-no-textbook На уроке нет учебника этого предмета в сумке предмет

Опоздание из-за снега в лог не пишем: весь состав получил бы одну и ту же строку, а место человека и так видно.

Клиент по-прежнему рисует label с сервера. Сокет и сейв не меняются. Версию протокола не бампить.

Где живёт код

Нового проекта нет. Формула и план дня — HSchool.Ai. Присутствие учителя, тепло, сумка, погода на входе в план — HSchool.Simulation. Подписи лога — каталог. Список типов — docs/protocol.md (HTTP лога).

Заведомо не сейчас

  • Оценки, журнал посещаемости, выговор за прогул.
  • Перегруз замедляет ходьбу.
  • Насмешки над формой и мнения — срез 9.
  • Вызов родителей, деньги за одежду, болезнь от промокания.
  • Клиент сам считает «учится хуже».

Зафиксировано этим разговором

Тема Решение
Нарезка Пять фаз во «Вне очереди», не срез 10
Стоп После каждой фазы школа целая
Протокол Не бампить; новые type только в HTTP лога
Сейв Не трогать
Учитель на уроке Тот же узел, не идёт; нет id — нет роста
Навык учителя Среднее по скиллам предмета, та же кривая что у нужды
Тепло Рядом с голодом, произведение двух NeedFactor
Учебник Только сумка, не шкафчик и не дом; ваниль ×0.5
Погода на дорогу Минуты в BehaviorDef; лога нет