Merge phase 24 behavior numbers.
ci / server (push) Failing after 3m35s
ci / client (push) Successful in 13s

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/phases/README.md
#	src/HSchool.Content/CatalogLoader.cs
This commit is contained in:
Leonid Pershin
2026-08-20 00:36:32 +03:00
11 changed files with 294 additions and 51 deletions
+9 -9
View File
@@ -12,19 +12,19 @@
## Задачи
- [ ] Веса целей переезжают в `BehaviorDef`: обязанность-урок, обязанность-переход, нужда на нуле,
- [x] Веса целей переезжают в `BehaviorDef`: обязанность-урок, обязанность-переход, нужда на нуле,
обед
- [ ] Значения по умолчанию — сегодняшние; поведение не должно измениться ни на минуту
- [ ] Каталог без `BehaviorDef` работает на константах кода, а не падает
- [ ] Валидатор ловит отрицательные веса и порядок, который делает обед сильнее урока
- [ ] Комментарий у каждого числа объясняет, что оно перевешивает — иначе мод-автор крутит вслепую
- [x] Значения по умолчанию — сегодняшние; поведение не должно измениться ни на минуту
- [x] Каталог без `BehaviorDef` работает на константах кода, а не падает
- [x] Валидатор ловит отрицательные веса и порядок, который делает обед сильнее урока
- [x] Комментарий у каждого числа объясняет, что оно перевешивает — иначе мод-автор крутит вслепую
## Тесты, без которых фаза не закрыта
- [ ] Ванильные числа дают ровно те же решения, что и до переезда (таблица входов и выходов)
- [ ] Пак, поднявший вес обеда выше урока, уводит класс с урока в столовую
- [ ] Каталог без `BehaviorDef` принимает решения на значениях по умолчанию
- [ ] Отрицательный вес роняет загрузку каталога
- [x] Ванильные числа дают ровно те же решения, что и до переезда (таблица входов и выходов)
- [x] Пак, поднявший вес обеда выше урока, уводит класс с урока в столовую
- [x] Каталог без `BehaviorDef` принимает решения на значениях по умолчанию
- [x] Отрицательный вес роняет загрузку каталога
## Критерий готовности
+1 -1
View File
@@ -108,7 +108,7 @@
| --- | --- | --- |
| [22. Удостоверение пака](22-mod-identity.md) | ✅ | Название, версия, зависимости и порядок загрузки |
| [23. Пример мода](23-example-pack.md) | ⬜ | Настоящая папка вместо документов в памяти |
| [24. Числа поведения](24-behavior-numbers.md) | 🔄 | Веса целей в `BehaviorDef`, а не в коде |
| [24. Числа поведения](24-behavior-numbers.md) | | Веса целей в `BehaviorDef`, а не в коде |
| [25. Золотые файлы](25-golden-fixtures.md) | ✅ | Отпечаток ростера, старый сейв, кривая голода, нехватка учителей |
| [26. Свой сид](26-school-seed.md) | 🔄 | Состав школы перестаёт зависеть от порядка создания |
| [27. Версия сейва и дамп](27-serviceability.md) | ✅ | Формат читается, внутрь школы можно заглянуть |