Update AGENTS.md to correct the behavior of presence frames during school pauses, clarify the design documentation regarding mod load order, and add a new test for uncovered teaching positions in the management panel. Enhance reviewed phase details for accuracy and completeness.
This commit is contained in:
+10
-18
@@ -1,11 +1,7 @@
|
||||
# Фундамент: паки, числа, сид, версия и золотые файлы
|
||||
|
||||
Договорённость на срез после жизни школы. Не текущий код — то, что решено сделать.
|
||||
|
||||
Срез не добавляет игроку ни одной новой кнопки. Он берёт то, что ревью нашло дешёвым и заметным,
|
||||
и доводит до конца: мод становится настоящим объектом, числа поведения уезжают из кода в данные,
|
||||
сид перестаёт быть идентификатором школы, у сейва появляется читаемая версия, а регрессии, которые
|
||||
сейчас ловятся только глазами, начинают ловиться тестом.
|
||||
Договорённость на срез после жизни школы. Срез закрыт фазами 22–28; таблица внизу — решения.
|
||||
Абзацы «почему сейчас» ниже описывают дыры, которые срез закрыл, а не текущий код.
|
||||
|
||||
## Почему сейчас
|
||||
|
||||
@@ -16,17 +12,13 @@
|
||||
маленький скучный пак на диске, чтобы last-wins, патчи и дорога «игрок выбрал мод» проверялись
|
||||
настоящей папкой, а не документами в памяти.
|
||||
|
||||
**Числа поведения живут в коде вопреки [`ai.md`](ai.md).** Там записано: «Числа поведения —
|
||||
отдельный деф правил, как `StaffingDef` у штата». В `BehaviorDef` уехали порог нужды, скорость
|
||||
обучения и разброс на дорогу, а веса целей остались константами в `Decision.cs`. Пока они там, мод
|
||||
не может перебалансировать поведение, не написав кода, — а это ровно то обещание, ради которого
|
||||
заводились дефы.
|
||||
**Числа поведения уехали в `BehaviorDef`.** Порог нужды, обучение, разброс на дорогу и веса целей
|
||||
(урок, переход, нужда на нуле, обед) — данные. Каталог без дефа падает на константы кода, а не
|
||||
ломается. Пак может поднять `lunchWeight` выше урока без форка.
|
||||
|
||||
**Две регрессии ловятся руками.** Генератор людей переписывали дважды за одну сессию ревью, а
|
||||
тест на детерминизм сравнивает два прогона *в одном процессе*: он не заметит, если поменяется сам
|
||||
порядок бросков. [`people.md`](people.md) называет отпечаток «единственным способом поймать
|
||||
регрессию в генераторе». Так же с сейвом: поле `nativeLanguage` добавили без бампа формата, и то,
|
||||
что старые сейвы грузятся, держится на комментарии в коде.
|
||||
**Золотые файлы ловят то, что раньше ловили глазами.** Отпечаток ростера — файл в фикстурах.
|
||||
Сейв текущего формата и сейв без `nativeLanguage` грузятся тестом хоста. Формат новее своего
|
||||
школу не стартует и файл не трогает.
|
||||
|
||||
## Удостоверение пака
|
||||
|
||||
@@ -152,8 +144,8 @@
|
||||
- Не даёт менять набор модов у живой школы. Каталог по-прежнему замерзает на работнике.
|
||||
- Не кладёт `defName` комнаты в снимок карты. Клиент смог бы стилизовать типы помещений от модов,
|
||||
но это версия протокола и правка в трёх местах — не «дёшево», значит не сюда.
|
||||
- Не заводит UI для порядка модов. Порядок — алфавит плюс зависимости; ручная перестановка ждёт
|
||||
того дня, когда паков станет больше трёх.
|
||||
- Не заводит UI для порядка модов. Порядок — выбор игрока плюс устойчивая топологическая
|
||||
сортировка по `requires`; ручная перестановка ждёт того дня, когда паков станет больше трёх.
|
||||
|
||||
## Зафиксировано этим разговором
|
||||
|
||||
|
||||
Reference in New Issue
Block a user