diff --git a/docs/agent/TASKS.md b/docs/agent/TASKS.md index c21b403..cd79ca3 100644 --- a/docs/agent/TASKS.md +++ b/docs/agent/TASKS.md @@ -23,6 +23,21 @@ - `BLOCKED` — заблокировано, причина указана в задаче. - `DONE` — завершено и проверено. +### ED-023 — Оценка сложности игры в отзыве и каталоге + +- Статус: `TODO` +- Приоритет: `P1` +- Репозитории: `evening_detective_server`, `evening_detective_frontend` +- Цель: дать команде возможность после завершения игры оценить её сложность и показывать итоговую сложность сценария в каталоге. +- Контекст: существующий отзыв уже содержит рейтинг `1–5`, обязательный текст, модерацию и ограничение один отзыв от команды на игру; каталог уже показывает средний рейтинг и количество одобренных отзывов по сценарию. +- Решение: добавить в отзыв оценку сложности `1–3`: `1` — лёгкая, `2` — средняя, `3` — тяжёлая. Рассчитывать среднее по одобренным отзывам завершённых игр сценария и переводить его в подпись: `1.00–1.66` — лёгкая, `1.67–2.33` — средняя, `2.34–3.00` — тяжёлая. Передать значение через существующие API отзыва и каталога. +- Критерии: завершившая игру команда может отправить оценку сложности вместе с отзывом; значение ограничено `1–3`; существующие отзывы и рейтинг `1–5` продолжают работать; повторный отзыв от команды запрещён; после модерации оценка участвует в среднем только для одобренных отзывов; каталог и карточка сценария показывают рассчитанную категорию сложности; при отсутствии оценок сложность не отображается. +- Ограничения: переиспользовать существующие отзыв, модерацию, каталог и protobuf-flow; не добавлять отдельную сущность, зависимость или ручную настройку сложности; сгенерированные protobuf-файлы менять только через существующую генерацию. +- Не входит: изменение текстового отзыва, рейтинга `1–5`, правил модерации, отзывов от пользователей без команды и отдельная оценка сложности автором или администратором. +- Проверка: `cd evening_detective_server && go test ./...`; `cd evening_detective_frontend && npm run type-check && npm run lint && npm run lint:css`. +- Ручная проверка: завершить игру и отправить отзывы со значениями `1`, `2` и `3`; проверить ограничения и повторную отправку; одобрить и отклонить отзывы; проверить пересчёт категории в карточке сценария и каталоге, включая отсутствие оценок. +- Следующий шаг: изучить frontend-flow формы отзыва и отображения каталога, затем изменить protobuf через `npm run proto:gen` и соответствующую backend-генерацию, после чего обновить хранение и расчёт сложности минимальным diff. + ## Активные задачи ### ED-018 — Удаление неиспользуемых пользовательских файлов