add tasks

This commit is contained in:
2026-10-14 12:40:08 +07:00
parent 74e291f3c8
commit 734025a765
2 changed files with 75 additions and 2 deletions
+74 -1
View File
@@ -25,6 +25,79 @@
## Активные задачи
### ED-041 — Подготовить юридические документы сервиса
- Статус: `TODO`
- Приоритет: `P1`
- Репозиторий: `evening_detective_server`
- Цель: заполнить Пользовательское соглашение, Политику конфиденциальности и отдельное согласие на обработку данных по фактическим потокам сервиса.
- Согласовано: оператор — физическое лицо Федоров Владимир Васильевич; текущий адрес обращений — vladimir.fodorow@gmail.com. Собственный сервер, БД, файлы, резервные копии и почтовый сервер находятся в России; заявки поступают через Яндекс Формы. Публиковать домашний адрес на сайте не согласовано; адрес для уведомления РКН уточняется отдельно в ED-045. Передача исключительных прав на опубликованные сценарии сохраняется.
- Решение: заполнить реквизиты, домены и редакции; убрать шаблонные поля и технические инструкции из публичных текстов. Отделить принятие соглашения от согласий; описать аккаунты, заявки, контент, игровые результаты, внешние сервисы, хранение в браузере, сроки и отзыв. Не обещать уже реализованную полную очистку, отсутствие зарубежной обработки или существующую систему истории команд. Проверить действующие нормы на дату выполнения.
- Критерии: три документа согласованы между собой и с кодом, не содержат необоснованных обещаний; политика раскрывает цели, данные, основания, сроки/условия хранения и уничтожения; законные права автора и потребителя сохранены. Приглашения разрешаются только отдельным согласием ED-044.
- Проверка: ревью текстов по актуальным источникам; `go test ./...`; существующие RPC выдают полные тексты без шаблонных полей и внутренних инструкций.
- Не входит: уведомления РКН, смена почтового адреса без решения владельца, регистрация пользователей, рассылка, публикация на рабочем сервере, commit/push.
- Контекст отката: реализация ED-041 от 14.10.2026 отменена по просьбе владельца; предыдущая запись `DONE` удалена из архива. Копия прежнего diff находится в `/tmp/ed041-deferred-20261014`; это временный ориентир, не источник актуальной юридической редакции.
- Следующий шаг: сверить текущую обработку данных и тексты, учесть предварительную проверку инфраструктуры и внешних сервисов из ED-045, затем подготовить новые согласованные редакции.
### ED-042 — Получать отдельное согласие при регистрации аккаунта
- Статус: `TODO`
- Приоритет: `P1`
- Репозитории: `evening_detective_server`, `evening_detective_frontend`
- Зависимость: ED-041 — тексты и версии документов.
- Цель: фиксировать принятие соглашения и отдельного согласия на обработку данных, не подменяя их ознакомлением с политикой.
- Решение: ссылка второй галочки ведёт на `/consent`, политика доступна отдельно; добавить ссылку на согласие в подвал. Отметки изначально выключены; чтение документа мышью или клавиатурой не устанавливает галочку. Указать подтверждение 18+ в принятии соглашения. Передавать версии документов при signup и проверять их на сервере до создания аккаунта и отправки письма.
- Данные: сохранять новые записи `terms` и `consent` атомарно с аккаунтом, с версией, серверным временем, IP и User-Agent; расширить тип записи отдельной миграцией. Существующие записи `privacy` сохраняют прежний смысл. Не менять прежние номера и имена protobuf-полей; добавить поля версий. Старые вкладки без актуальных версий должны получить понятное требование обновления страницы.
- Критерии: без обеих отметок или с отсутствующими/устаревшими версиями аккаунт не создаётся; актуальные согласия сохраняются; исторические записи не переписываются; ссылки работают с клавиатуры; политика не используется вместо согласия.
- Проверка: тесты отказов, версий, фиксации соглашений и transport-кодов; миграция на отдельной PostgreSQL; `make generate`, `npm run proto:gen`, `go test ./...`, `npm run type-check`, `npm run lint`, `npm run lint:css`, `npm run build`; браузерный smoke регистрации и ссылок.
- Не входит: повторный акцепт всех существующих аккаунтов, рекламные согласия, очистка данных, публикация, commit/push.
- Следующий шаг: изучить текущие Signup → users_service → users_repo и callers фронтенда; после ED-041 внести минимальную миграцию, проверку версий и исправить форму.
### ED-043 — Фиксировать согласия в заявках Яндекс Форм
- Статус: `TODO`
- Приоритет: `P1`
- Репозитории: `evening_detective_server`, настройки `prod`; внешний кабинет Яндекс Форм.
- Зависимость: ED-041 — тексты и версии документов.
- Цель: получать соглашение и согласие капитана на обработку заявки до её отправки и сохранять подтверждение на сервере.
- Решение: отдельные обязательные, изначально выключенные отметки соглашения (18+) и обработки данных, ссылки на документы и политику. Расширить JSON / JSON-RPC webhook отметками и версиями; проверку выполнять в сервисе. Явный отказ в новом формате не считать старым запросом.
- Данные: версии соглашения и согласия, серверное время и связь с ID доставки сохраняются атомарно с командой. Старым заявкам согласие задним числом не присваивается. Повтор одного ID доставки не изменяет данные, пароль или согласия и не создаёт новую команду.
- Включение: подготовить точную инструкцию формы и JSON; использовать переходный режим `YANDEX_FORMS_REQUIRE_CONSENT=false`, затем после обновления формы и проверки доставок включить `true`. Передать флаг через оба compose-файла и описать порядок миграции / публикации. Доступа к кабинету формы сейчас нет: её настройку выполняет владелец либо агент после предоставления доступа, без передачи секретов в публичные поля.
- Критерии: проверены старый формат в переходном режиме, его отказ в строгом, явный отказ, отсутствующая/устаревшая версия, успешная регистрация и повторы; сбой записи согласия не оставляет команду; исторические данные сохранены.
- Проверка: service/handler/SQL-тесты на отдельной PostgreSQL, `go test ./...`, миграции и безопасный откат, compose `config --quiet`; контрольная отправка из реальной формы после её настройки владельцем.
- Не входит: рекламные приглашения и их согласия (ED-044), rate-limit (ED-002), статистика команд, очистка (ED-003), commit/push.
- Следующий шаг: изучить текущую интеграцию и callers регистрации, подготовить миграцию и совместимый переходный JSON-контракт; отдельно согласовать с владельцем момент обновления внешней формы.
### ED-044 — Отдельное добровольное согласие на приглашения
- Статус: `TODO`
- Приоритет: `P1`
- Репозитории: `evening_detective_server`, `evening_detective_frontend`; внешний кабинет Яндекс Форм.
- Зависимости: ED-041, ED-043; перед реальными отправками — ED-045 и порядок отзыва / очистки ED-003.
- Цель: отдельно подтвердить право использовать email капитана для приглашений на новые игры, сохранив возможность записаться без подписки.
- Согласовано: приглашения добровольны; email для этой цели хранится не более одного года с последней записи с действующим отдельным согласием. Повторная доставка и новая заявка без согласия не продлевают срок. Для обезличенных игровых результатов контактный email не нужен; статистика одной команды между играми — отдельная будущая работа.
- Решение: подготовить самостоятельный текст согласия на приглашения с учётом 152-ФЗ и 38-ФЗ и проверки необходимости раздельного оформления разрешений на рекламу и обработку данных. Добавить публичный RPC, маршрут `/invitation-consent`, ссылку в документах и подвале. В форме — отдельная необязательная отметка, не установленная заранее; две взаимоисключающие ветки интеграции передают явное согласие или отказ.
- Данные: сохранять только явно предоставленное согласие, его версию, серверное время и дату истечения атомарно с заявкой; не считать старые контакты или принятие соглашения согласием на рекламу. При отказе не создавать активное рекламное согласие. Откат миграций не должен уничтожать подтверждения.
- Критерии: запись без приглашений успешна; согласие на приглашения не заменяет согласие на заявку; версии проверяются; повторы не меняют согласие и срок; порядок отказа и условия хранения согласованы с ED-003 / ED-045.
- Проверка: генерация обоих protobuf-клиентов, tests service/handler/SQL, `go test ./...`, проверки типов и обоих линтеров фронтенда, сборка; браузерный smoke страницы и ссылок, контроль обеих веток реальной формы владельцем.
- Не входит: сама рассылка, автоматическая отписка и очистка, объединение команд между играми, публикация, commit/push.
- Следующий шаг: после ED-041 / ED-043 согласовать отдельный текст, расширить текущий контракт и миграцию заявки, затем подготовить настройку добровольной отметки в форме.
### ED-045 — Подготовить обработку данных к публичному запуску
- Статус: `TODO`
- Приоритет: `P1`
- Область: документы проекта и организационные действия владельца.
- Цель: проверить готовность сервиса с регистрацией и заявками к публичному запуску, включая обязанности вне кода.
- Этапы: сначала проверить реквизиты, инфраструктуру и внешние сервисы для подготовки ED-041; после ED-041–ED-044 выполнить итоговую проверку перед публичным запуском.
- Решение: проверить уведомление РКН по статье 22 152-ФЗ и подготовить сведения / черновик, если оно не подано; уточнить адрес оператора для уведомления. Проверить фактические условия Яндекс Форм и Gmail, оценить локализацию и возможную трансграничную передачу по статьям 12 и 18. Использование Gmail в политике само по себе не подтверждает законность передачи; собственная почта в РФ без пересылки — вариант для решения владельца, не автоматическая смена адреса.
- Процедуры: определить сроки/условия хранения журналов, переписки и резервных копий; описать исполнение запросов, удаление/блокирование данных, подтверждение уничтожения, повторное применение удаления после восстановления копии и реакцию на инциденты. Учесть контакты заявок, файлы и персональные сведения в контенте, ответы Яндекс Форм и почту. До автоматизации допустима исполнимая ручная процедура; техническую очистку заявок вести в ED-003.
- Критерии: зафиксированы подтверждённые факты и оставшиеся препятствия, согласованы данные уведомления и способы обработки внешними сервисами; процедуры можно выполнить в сроки закона; итоговые тексты ED-041 соответствуют процедурам. Перед запуском проверены опубликованные документы, регистрация и реальная Яндекс Форма после ED-042 / ED-043. Перед приглашениями подтверждены отдельное согласие ED-044, немедленное прекращение отправок при отзыве и исключение истёкших согласий.
- Проверка: актуальные первичные нормативные источники, сверка фактической инфраструктуры и настроек внешних сервисов, подтверждение подачи уведомлений владельцем, ручной сценарий запроса/удаления на тестовых данных; составить краткий итог готовности без заявления о проверке непроверенных действий.
- Ограничения: не публиковать домашний адрес на сайте, не менять контактный email, не подавать уведомления от имени владельца, не отправлять сообщения третьим лицам и не менять production без отдельного явного поручения. Паспортные сведения, личный почтовый адрес и секреты не добавлять в Git.
- Не входит: разработка рассылки и статистики, автоматизация всей очистки, налоговые вопросы, регистрация ИП/ООО, commit/push.
- Следующий шаг: уточнить у владельца подачу уведомления и данные для него, проверить условия Gmail / Яндекс и фактические копии данных; затем определить исполнимые процедуры и согласовать вывод о запуске.
### ED-024 — Общая дизайн-система фронтенда
- Статус: `TODO`
@@ -177,7 +250,7 @@
- Цель: удалять персональные данные завершённых игр по утверждённому сроку хранения.
- Контекст: `contact_email` и связанные данные регистрации остаются в БД после завершения игры.
- Решение: очищать персональные поля команд завершённых игр, сохраняя данные, нужные для итогов; удалять истёкшие confirmation-токены.
- Следующий шаг: утвердить срок хранения и точный список полей, затем спроектировать job.
- Следующий шаг: учесть согласованный в ED-044 срок приглашений — один год с последней записи с действующим отдельным согласием; после определения процедур ED-045 уточнить очистку по целям (участие / приглашения), точный список полей и учёт отзывов, затем спроектировать job. Решение о сроке сохранено; реализация согласий отложена и локально отменена.
- Критерии: срок хранения зафиксирован в политике; job идемпотентен; игровые итоги не ломаются; есть тест на очистку.
- Ограничения: не удалять команды и данные, необходимые для итоговой таблицы; не запускать очистку без утверждённого срока хранения.
- Не входит: изменение всей политики хранения данных приложения.
+1 -1
Submodule prod updated: 4205e86ef6...eea4aa524d