37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# Фаза 24. Числа поведения в данные
|
||
|
||
## Зависимости
|
||
|
||
- [Фаза 20](20-needs-actions.md) — `BehaviorDef` уже есть
|
||
|
||
## Зачем
|
||
|
||
[`../design/ai.md`](../design/ai.md) обещает: числа поведения — деф правил, как `StaffingDef` у
|
||
штата. Порог нужды и разброс на дорогу туда уехали, а веса целей остались константами в коде.
|
||
Пока они там, мод, меняющий одно число, вынужден быть форком.
|
||
|
||
## Задачи
|
||
|
||
- [ ] Веса целей переезжают в `BehaviorDef`: обязанность-урок, обязанность-переход, нужда на нуле,
|
||
обед
|
||
- [ ] Значения по умолчанию — сегодняшние; поведение не должно измениться ни на минуту
|
||
- [ ] Каталог без `BehaviorDef` работает на константах кода, а не падает
|
||
- [ ] Валидатор ловит отрицательные веса и порядок, который делает обед сильнее урока
|
||
- [ ] Комментарий у каждого числа объясняет, что оно перевешивает — иначе мод-автор крутит вслепую
|
||
|
||
## Тесты, без которых фаза не закрыта
|
||
|
||
- [ ] Ванильные числа дают ровно те же решения, что и до переезда (таблица входов и выходов)
|
||
- [ ] Пак, поднявший вес обеда выше урока, уводит класс с урока в столовую
|
||
- [ ] Каталог без `BehaviorDef` принимает решения на значениях по умолчанию
|
||
- [ ] Отрицательный вес роняет загрузку каталога
|
||
|
||
## Критерий готовности
|
||
|
||
- Отпечаток недели из фазы 25 не меняется от самого переезда
|
||
- `dotnet test` проходит
|
||
|
||
## Стоп
|
||
|
||
Не заводить формулы в данных. Число — да, выражение — нет.
|