Files
rf4-spotter/docs/open-alpha-acceptance.md
ik c4d1c8b87b
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s
feat: audit full alpha catalog
2026-09-07 09:37:01 +07:00

5.8 KiB

Приёмка открытой альфы RF4 Spotter

Версия: 7 сентября 2026 года. Проверка проводится сначала владельцем проекта, затем открыто реальными пользователями. Продуктового allowlist нет: доступны все категории рекордов, водоёмы и виды рыб, корректно полученные из разрешённых источников. Неполный или непроверенный staging не публикуется.

Условия открытия

  • production preflight, DNS, TLS, /health и /ready успешны;
  • настроены внешний backup, ежедневное обслуживание и уведомления мониторинга;
  • работают privacy@rf4spotter.ru и abuse@rf4spotter.ru, назначен ответственный;
  • опубликованы /rules и /privacy, форма требует согласия;
  • заглушки секретов отсутствуют, административные маршруты закрыты двумя уровнями авторизации;
  • импортирован полный доступный разрешённый каталог, демоданные отсутствуют;
  • по каждому источнику опубликованы время последнего успешного обновления и состояние ошибки.

Сценарий игрока

  1. На телефоне открыть главную, выбрать водоём и рыбу, получить результат не позднее второй высоты экрана.
  2. Открыть точку и своими словами объяснить активность, уверенность и свежесть.
  3. Отправить улов с обязательными полями и согласием; убедиться, что до модерации он не публичен.
  4. Модератор проверяет заявку, указывает причину отказа либо одобряет её.
  5. После одобрения точка появляется в выдаче; удаление заявки обезличивает данные и сохраняет аудит.
  6. Проверить рекорды и сброс фильтров на desktop и 390 px.

Проверка каталога выполняется по всем загруженным сущностям автоматически: уникальность slug, существование связей, диапазоны координат/веса, отсутствие неподтверждённого staging в публичном API. Ручной smoke использует минимум по одному представителю каждого водоёма и каждой категории рекордов; редкие виды проверяются выборочно, а не исключаются из публикации.

Перед каждым релизом выполнить docker compose exec -T api python -m app.cli audit-catalog. Ненулевой failures или exit code 1 блокирует открытие/обновление.

Измеримые критерии

Область Проходной порог
Доступность axe: 0 critical/serious; Lighthouse accessibility ≥ 95
Интерфейс нет горизонтального overflow на 390 px; ≥ 80% участников завершают поиск без подсказки
Каталог 100% публичных записей имеют валидные связи; фильтры принимают весь загруженный справочник без allowlist
Понятность ≥ 80% верно объясняют разницу активности и уверенности
API p95 публичных списков ≤ 250 мс; admin queue ≤ 500 мс на пилотном объёме
Надёжность readiness успешен; backup моложе 26 часов и проходит checksum
Модерация 100% пользовательских заявок сначала pending; медианное решение ≤ 12 часов
Свежесть успешный разрешённый импорт не старше настроенного интервала; сбой явно виден в readiness/monitoring
Abuse шестая заявка одного клиента за 10 минут получает 429; файл > 8 МБ отклоняется; повторный screenshot отклоняется
Обращения abuse подтверждается ≤ 24 часов, privacy/delete ≤ 72 часов

Стоп-критерии

Альфа закрывается для новых отправок при утечке данных или секретов, потере возможности восстановления, обходе модерации, недоступности обоих контактов более 24 часов либо устойчивой ошибке 5xx выше 2% за 15 минут. Публичное чтение можно оставить только если оно не усугубляет инцидент.

Результат прогона

Для каждого запуска фиксируются дата, версия/коммит, участники, объём данных, p95, ошибки, возраст backup, результаты axe/Lighthouse и решение GO/NO-GO. Блокирующие дефекты получают владельца и срок повторной проверки.