# #394 · отзыв после реального опыта **Предложение Astra · 02.11.2026. Не реализация и не приёмка.** Новое направление Owner имеет приоритет над broad VENUE из PR465. Рекомендуется одна модель: **игроку — приватная структурированная обратная связь; площадке — добровольный публичный отзыв об условиях после подтверждённого посещения.** На странице игрока только вход в приватный отзыв по совместной игре, без публичной стены, звёзд и рейтинга. ## Что уже решено, что предлагается Owner потребовал фактическую совместную игру / игру на точной площадке, явное подтверждение присутствия, защиту от подавления критики и сохранение PG3 privacy. Приняты визуальные основы Onest, Spacious40 и существующие postgame/comments. Ни сроки ниже, ни новая публичная проекция, ни новые gates ещё не считаются установленными. По предоставленному `OWNER_DIRECTION.md`: PR465 merged `d5bad5bdec556f029c49f89524fe0aa28f5ca8fc`; анализируемый snapshot `0194902d3d57d5e35a381a61b71afcf421ff2ed6`. Старый QA/CI относится к прежней политике. DEV `41424816628` отменён до установки; live — alpha14, `8113359533e5a4cfb85c4520a7af1fff1571c9e4`, receipt `r41408629901-a1`. Runtime самостоятельно не проверялся. Alpha15 не объявляется установленной. ## Три первичных кейса Проверены native web open/search 02.11.2026; ниже пересказ, не цитаты и не юридическая модель. | Система | Что подтверждено первоисточником | Перенос и предел | |---|---|---| | Airbnb | Взаимная публикация после двух отзывов или окончания 14 дней; публичные отзывы отделены от приватных заметок. Есть исключения для поздних отмен. [Help 13](https://www.airbnb.com/help/article/13) | Берём разделение аудитории. Double-blind полезен при взаимных публичных оценках, но не доказывает опыт и не устраняет давление после публикации. Для нашего приватного PG3 новую задержку не вводим; у площадки нет встречного отзыва гостю. | | Airbnb | Запрет фиктивного опыта, давления и манипуляций; отрицательное мнение само по себе не основание удаления. Получатель запрашивает рассмотрение, а не удаляет отзыв. [Policy](https://www.airbnb.com/help/article/2673), [dispute/removal](https://www.airbnb.com/help/article/3582) | Берём независимое решение, историю и право оспаривания. Не копируем обещания сроков Airbnb и не называем каждую критику местью. | | Booking.com | Допускается отзыв после бронирования и проживания **или прибытия без проживания**; площадка может ответить. [Guidelines](https://www.booking.com/reviews_guidelines.html) | Этот кейс показывает опасность veto поставщика. Но Owner требует именно сыграть: «пришёл, зал закрыт» у нас обращение по организации/помощь, не отзыв о сыгранном опыте. Баллы и ранжирование не переносим. | | ClassPass | Partner help описывает класс/преподавателя, reply и flag abuse; ответы односторонние. Ratings названы агрегатом attended reservations. [Partner help](https://classpass.my.site.com/help/s/article/how-do-i-access-my-ratings-and-reviews-in-the-partner-dashboard?language=en_US) | Берём ограниченный ответ и точный предмет. Это не доказательство точного attendance-gate для текстового review. Direct open вернул CSS Error, текст получен native search из этого же официального URL; часть сведений также дана в проверенном пакете PMA. | ## Допуск: запись на игру ≠ присутствие Сервер проверяет собственное время `now ≥ ends_at`, статус published/completed и явный `outcome=held`. Конец расписания сам по себе не доказывает состоявшуюся игру. Draft/cancelled/not_held не допускаются; unknown или спор об итоге ведут к уточнению, не к публичному отзыву. Для автора нужна исторически допустимая participation по существующему `eligibleFromTransitions` **и** текущая явная `present`, без открытого спора. Самоутверждение «я играл», paid/confirmed, manager/creator и checkbox не заменяют отметку. Источник обычно — утверждение организатора, не GPS/check-in или внешняя проверка. Independent PG2 correction — допустимый альтернативный источник с сохранённым provenance. Организатор-участник может писать при том же допуске; его собственную отметку должен внести другой manager либо независимый reviewer. Это относится и к автору, и к peer-адресату. Неприсутствующий manager не получает права отзыва как игрок/посетитель. Для peer обе стороны должны иметь допустимые context **одной Game**, present и отсутствие открытых споров. Автор ≠ адресат; сервер выводит userId из context. Совместное участие в одной встрече — наш практический proxy: система не знает, были ли они в одном розыгрыше. Автор отдельно подтверждает непосредственный совместный опыт; это дополнительная ответственность, не обход server gate. Для venue автор подтверждён в held-игре, чьё место связано с **канонической площадкой фактического проведения**. Совпадение имени/адреса, соседний корт, свободный текст и выбранный клиентом venueId недостаточны. Разрешённый alias разрешает сервер; спорный merge/перенос требует уточнения. Последующая правка venue не переносит старый отзыв автоматически. Отзыв о собственной/представляемой площадке запрещён; не создавать ради этого новую систему квалификаций. | Ситуация | Действие | |---|---| | Не играл / нет допустимого context | Читать площадку; «Выберите игру, в которой участвовали». Подделанный context отклоняется без раскрытия чужих данных. | | Confirmed, но отметки нет / unknown | «Посещение ещё не отмечено» → запрос отметки с кратким пояснением; черновик только свой, отправка закрыта. | | Absent / спор / manager исправил, но спор открыт | «Уточним посещение» → PG2. Исправление организатором не закрывает спор; ACK только текущей известной версии либо независимое решение. | | Всё подтверждено | Игроку — новый приватный peer; площадке — новый отдельный experience review. | | Поздняя исправленная отметка | Допуск пересчитать. Для venue дать минимум 7 дней после разрешения дела; не наказывать ожиданием организатора. | Новые peer-отзывы PG3 также получают строгий gate; прежние приватные отзывы/заметки не переписываются и не становятся публичными. Organization/training остаются своими видами приватной обратной связи, включая пояснение несостоявшегося опыта; organisationScore не становится оценкой площадки. ## Молчание организатора не финальное решение Запрос отметки доступен сразу после конца игры, помощь — сразу при конфликте/опасении давления. Через **48 часов без решения** интерфейс выделяет «Попросить независимую проверку», не повторяет просьбы организатору. Это вычисляемый срок UI, не новый daemon и не автоматическое present. Existing Cases получает обращение без обязательного ответа организатора; reviewer не участник, создатель, исторический manager или заинтересованная сторона. Существующий PG2 умеет resolver/assignment/versions, но **не весь этот путь**: отсутствует нормальный вход для отсутствующей отметки; help — progress, не назначение. Нужны bounded intake для missing/unknown и для отсутствующего/оспариваемого outcome, с теми же правами Cases. Неподтверждённый итог не обходится одним attendance resolution. Пока данных недостаточно — отзыв не публикуется, автор видит «Нужны сведения о встрече» и может дополнить обращение. Срок ответа службы не обещаем. Если независимая очередь фактически не обслуживается, публичный запуск не принимается: иначе veto лишь переносится на другую кнопку. После отправки отзыва односторонняя смена present→absent/unknown, отмена или смена venue не удаляет его. Это конфликт основания: до публикации hold, после — независимая проверка сохранённого основания; уже опубликованный текст не скрывается только по воле организатора. Доказанная ошибка основания ведёт к снятию с сохранением истории. Нарушение публичности самого venue/аккаунта остаётся отдельным действующим fence. ## Публикация и защита Публичный venue-review — новый текст 1–500 символов, необязательные темы «Покрытие / Свет / Удобства», без звёзд. По умолчанию ничего не публикуется: выбор «Оставить только себе» либо «Всем на странице площадки», затем отдельное согласие на публичный текст. Первый вариант — отдельный собственный draft, не PG3 manager-note и не сообщение организатору. Preview показывает ровно публичную проекцию. От автора публично только «Участник игры», без profile link/avatar/стабильного межплощадочного псевдонима; внутри сохраняется подлинная identity для антизлоупотреблений. Не обещаем абсолютную анонимность по содержанию. Из публичного API, DOM, URL, cursor и текста исключены gameId, roster, точные даты/время игры, имена третьих лиц, контакты и приватный граф участия. Для unlisted игры контекст остаётся исключительно автору и назначенному reviewer. Публичный текст проверяется на косвенные идентификаторы; при сомнении — автору на исправление, не автопереписывание. Private PG3 никогда не подставляется в composer. Первичная подача — 14 дней от первого подтверждённого допуска (без сброса от обычных правок); апелляция сохраняет остаток и даёт минимум 7 дней после решения. Публичность — **не ранее 48 часов после последней содержательной правки и только после независимого просмотра текста**. Это охлаждение и проверка, не взаимное blind. Срок проверки не гарантируется. Истечение 48 часов само не публикует; условие проверяется обычным чтением/решением, отдельный scheduler не нужен. UNIQUE author/target/game защищает от дубля. На площадке показывается одна текущая запись автора; новая подтверждённая игра позволяет обновить её в своём окне, без множества отзывов от постоянного посетителя. Смена ключа идемпотентности, withdrawal и report не открывают второй слот. Непубличные ревизии остаются. До публикации автор редактирует; опубликованная версия сохраняется до принятия исправления. Можно снять свой текст в любой момент; возвращение той же записи проходит проверку вновь. Получатель/организатор не удаляют критику. У player остаётся один private reply ≤500. Публичный venue reply в первой версии **отсутствует**, поскольку подтверждённая роль представителя не установлена; organizer игры не представитель площадки. При реальном назначенном представителе допустим только один factual reply ≤500 с такой же проверкой, без ответов на ответ; вводить роль ради этой поставки не нужно. Typed reviewSafety/Case target нужен для жалобы на точный отзыв/ревизию и апелляции по решению. Existing report на игрока не выдавать за такую возможность. Негатив о скользком покрытии допустим; угрозы, травля, контакты, выдуманный опыт, давление и координированные дубли — предмет рассмотрения. Жалобы не дают автоматического массового hide. Blocks прекращают прямое взаимодействие и фильтруют личную выдачу, но organizer block не лишает независимого venue-review и не удаляет его для остальных. Аккаунтные ограничения, session fences, текущая авторизация на execute/replay сохраняются. Записанный неподтверждённый результат операции не переотправляется как новый. ## Путь и компромисс «Участники / Итоги → Обратная связь» разводит «Игроку · лично», «Об организации», «О тренировке», «О площадке · выбор видимости» и существующие личные заметки. На публичном профиле «Отзыв после игры» открывает только собственный список совместных игр. На venue — «Поделиться опытом», далее свой game picker, допуск, preview и согласие. Состояния: «Отметка запрошена», «Уточняем посещение», «Отзыв отправлен; ещё не опубликован», «Опубликован», «Сообщить о нарушении». Прогресс не называется назначенным рассмотрением без receipt. Вопрос до игры остаётся отдельным блоком «Вопросы об игре» на публичной GameDetailPage: attendance не нужен, текущие auth/privacy/block gates нужны. Это не способ разместить отзыв об игроке/площадке. Цена решения: нет публичного социального доказательства об игроке; обезличенные venue-тексты менее персональны, премодерация задерживает их. Зато не раскрывается приватный peer-граф и нет публичной площадки для взаимной мести. Риски сговора и ложных отметок сохраняются. **Открытых обязательных вопросов Owner: 0**; это рекомендуемый вариант в предоставленном мандате, а не утверждение его отдельного одобрения. Публичные player reviews сознательно не включены, а не молча разрешены. ## Материалы и границы проверки Прочитаны сначала `reviews394-owner-policy-20261102/{OWNER_DIRECTION,VERIFIED_PRIMARY_CASES}.md`, затем AGENTS.md; пять назначенных product contracts/guides, SITEWIDE/ DESKTOP_OVERLAY guides; `game-feedback.policy/service`, `game-attendance.policy/service` (допуск, dispute/help), `game-outcomes.policy`, `comments.policy/service`; scoped `admin/attendance-disputes.dto/service`, `safety.service` target, структура CommentsSection и comments/consumer tokens. Реальные seams и ограничения расписаны в CURSOR_BRIEF.md. В HTML встроены исходные `apps/web/public/brand/go-badminton.svg` и `apps/admin/public/fonts/Onest.ttf`. Git, runtime, DB, auth, secrets не читались. Состояния макета вымышленные; исходники не изменены.