Add foundational phase documentation for mod development
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 14s

This commit is contained in:
Leonid Pershin
2026-08-19 23:35:30 +03:00
parent 5eabc90d53
commit c27d43f66a
9 changed files with 495 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# Фаза 24. Числа поведения в данные
## Зависимости
- [Фаза 20](20-needs-actions.md) — `BehaviorDef` уже есть
## Зачем
[`../design/ai.md`](../design/ai.md) обещает: числа поведения — деф правил, как `StaffingDef` у
штата. Порог нужды и разброс на дорогу туда уехали, а веса целей остались константами в коде.
Пока они там, мод, меняющий одно число, вынужден быть форком.
## Задачи
- [ ] Веса целей переезжают в `BehaviorDef`: обязанность-урок, обязанность-переход, нужда на нуле,
обед
- [ ] Значения по умолчанию — сегодняшние; поведение не должно измениться ни на минуту
- [ ] Каталог без `BehaviorDef` работает на константах кода, а не падает
- [ ] Валидатор ловит отрицательные веса и порядок, который делает обед сильнее урока
- [ ] Комментарий у каждого числа объясняет, что оно перевешивает — иначе мод-автор крутит вслепую
## Тесты, без которых фаза не закрыта
- [ ] Ванильные числа дают ровно те же решения, что и до переезда (таблица входов и выходов)
- [ ] Пак, поднявший вес обеда выше урока, уводит класс с урока в столовую
- [ ] Каталог без `BehaviorDef` принимает решения на значениях по умолчанию
- [ ] Отрицательный вес роняет загрузку каталога
## Критерий готовности
- Отпечаток недели из фазы 25 не меняется от самого переезда
- `dotnet test` проходит
## Стоп
Не заводить формулы в данных. Число — да, выражение — нет.