Remove off-queue.md and add new design documentation files including README.md, defs.md, near-term.md, projects.md, runtime.md, people.md, staffing.md, and schedule.md to outline the structure and agreements for the game's design phases.

This commit is contained in:
Leonid Pershin
2026-08-20 12:26:13 +03:00
parent 12cc36b4dd
commit a37a5eb82d
101 changed files with 1015 additions and 921 deletions
@@ -0,0 +1,43 @@
# Фаза 48. Учитель в кабинете
## Зависимости
- [Фаза 21](../05-ai/21-decisions.md)
- [Фаза 18](../05-ai/18-presence-walking.md)
## Зачем
Ученик в кабинете больше не качает навык в пустоту. Нет учителя на месте — нет роста.
## Задачи
- [x] `LessonLearningSystem` растёт навык, только если назначенный учитель стоит в
`lesson.RoomId`: на кампусе, путь пуст, остаток минут 0
- [x] Нет человека с `TeacherId` в мире — как отсутствующий
- [x] Действие учителя урок не отменяет
- [x] Формула `LessonLearning.Gain` не меняется
- [x] Лог ученика `lesson-no-teacher` один раз на предмет в сутки, не каждый тик; `thingDef`
предмет; подпись из каталога
- [x] `docs/protocol.md` — новый `type` у HTTP лога, без бампа сокета
- [x] Фикстуры, где учитель был строкой `t1` вне ростера, нанимают живого человека — иначе
существующий тест роста навыка зелёный впустую
## Тесты, без которых фаза не закрыта
- [x] Ученик и учитель стоят в кабинете → навык за урок вырос
- [x] Ученик в кабинете, учитель в другом узле → навык не вырос
- [x] Учитель идёт по коридору в этот кабинет → пока идёт, роста нет
- [x] Нет человека с id учителя → роста нет
- [x] За урок без учителя в логе ученика одна строка `lesson-no-teacher`, не по числу тиков
- [x] Голодный по-прежнему учится хуже сытого, когда учитель на месте
## Критерий готовности
- Учитель ушёл в туалет посреди математики — класс в кабинете есть, навык за эти минуты не
ползёт
- `dotnet test` проходит
## Стоп
Не масштабировать рост навыком учителя. Не трогать тепло, учебник и дорогу. Не бампить
протокол. Не писать лог учителю.