43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
# Фаза 41. Мнения и вкладка «Связи»
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 8](../02-people/08-people-browser.md)
|
|
- [Фаза 36](../07-inventory/36-person-card-tabs.md)
|
|
|
|
## Зачем
|
|
|
|
У пары появляется число. Семья больше не «просто родственники». Карточка умеет это показать,
|
|
даже пока кружков ещё нет.
|
|
|
|
## Задачи
|
|
|
|
- [x] Мнение A→B: −100…100, несимметрично, ноль не хранить
|
|
- [x] Пороги и подписи в `BehaviorDef`; клиент рисует присланную подпись, не считает сам
|
|
- [x] Генератор ставит семейные старты (родители, сиблинги, партнёры семьи) из данных
|
|
- [x] Каждое рабочее утро (и skip) ненулевые мнения слегка дрейфуют к семейному базису или к нулю;
|
|
дошли до нуля — запись выкинуть
|
|
- [x] `people.json` пишет мнение при сдвиге; старый сейв без поля — все нули кроме семьи
|
|
после первой загрузки-переписи
|
|
- [x] Вкладка карточки **Связи**: семья с числами, топ друзей/врагов, поиск по ненулевым
|
|
- [x] Игрок с вкладки ничего не меняет
|
|
- [x] `docs/protocol.md` — HTTP карточки
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [x] Родитель и ребёнок после генерации имеют плюс в обе стороны; чужие одноклассники — нет записи
|
|
- [x] A→B и B→A могут различаться
|
|
- [x] После нескольких утренних дрейфов без разговоров мнение одноклассников (если появилось)
|
|
ближе к нулю, семейное — к старту, не к нулю
|
|
- [x] Карточка без отдельного запроса «всех пар школы»: только этот человек
|
|
- [x] Клиентский тест: вкладка «Связи» не монтирует лог
|
|
|
|
## Критерий готовности
|
|
|
|
- Открыть ученика, на «Связях» родители с подписью «близкие» или соседней, одноклассник без строки
|
|
- `dotnet test` и `npm test` / `build` проходят
|
|
|
|
## Стоп
|
|
|
|
Не собирать кружки. Не бампить сокет. Не заводить романтику.
|