# Приведение Политики конфиденциальности и Пользовательского соглашения в соответствие с проектом > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Убрать из юридических документов упоминания несуществующих функций (аналитика, рекламные рассылки, персонализация, Яндекс.Метрика) и исправить неточности (OAuth, cookie, IP-логирование, дублирование данных оператора). **Architecture:** 4 задачи: унификация данных оператора в shared/config, правка Политики конфиденциальности, правка Пользовательского соглашения, финальная проверка. **Tech Stack:** TypeScript, React, MUI — изменения только в статическом JSX-тексте и shared/config. --- ## Файловая структура изменений | Файл | Что делаем | | ---------------------------------------------------------- | ------------------------------------------------------------------------------- | | `client/src/shared/config/index.ts` | Добавляем `STORE_OP_NAME`, `STORE_OP_INN`, `STORE_OP_OGRN`, `STORE_OP_ADDR` | | `client/src/pages/privacy-policy/ui/PrivacyPolicyPage.tsx` | Импорт из config, правка пунктов 2, 3, 5, 6, 7, добавляем дату | | `client/src/pages/terms/ui/TermsPage.tsx` | Импорт из config, правка пунктов 1, 3, 7, 8, 9, убираем противоречие 6.1 vs 2.2 | --- ### Task 1: Вынести данные оператора в shared/config **Files:** - Modify: `client/src/shared/config/index.ts` - [ ] **Step 1: Добавить константы оператора в shared/config** Вставить после строки 17 (перед `export const VK_URL`): ```ts export const STORE_OP_NAME = "Индивидуальный предприниматель Новоселова Наталия Владимировна"; export const STORE_OP_INN = "402900832341"; export const STORE_OP_OGRN = "305402922700051"; export const STORE_OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А"; ``` - [ ] **Step 2: Проверить синтаксис** ```bash cd client && npx tsc -b --noEmit ``` Expected: no errors. --- ### Task 2: Исправить Политику конфиденциальности **Files:** - Modify: `client/src/pages/privacy-policy/ui/PrivacyPolicyPage.tsx` - [ ] **Step 1: Заменить импорт и локальные константы** Заменить строки 4-10 (импорт STORE_EMAIL + локальные константы). Было: ```ts import { STORE_EMAIL } from "@/shared/config"; const OP_NAME = "Индивидуальный предприниматель Новоселова Наталия Владимировна"; const OP_INN = "402900832341"; const OP_OGRN = "305402922700051"; const OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А"; const SITE_URL = window.location.origin; ``` Стало: ```ts import { STORE_EMAIL, STORE_OP_NAME, STORE_OP_INN, STORE_OP_OGRN, STORE_OP_ADDR, STORE_PUBLIC_SITE_URL, } from "@/shared/config"; const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== "undefined" ? window.location.origin : ""); ``` И заменить `OP_NAME` → `STORE_OP_NAME`, `OP_INN` → `STORE_OP_INN`, `OP_OGRN` → `STORE_OP_OGRN`, `OP_ADDR` → `STORE_OP_ADDR` во всём файле (replaceAll). - [ ] **Step 2: Исправить раздел 2 — актуальный список собираемых данных** Заменить `items` в секции 2. Было: ```ts items: [ '2.1. Оператор обрабатывает следующие персональные данные Пользователей:', '— фамилия, имя, отчество;', '— адрес электронной почты;', '— номер телефона;', '— данные файлов cookie;', '— данные о действиях на сайте (аналитика);', '— адрес доставки и геолокационные координаты.', ], ``` Стало: ```ts items: [ '2.1. Оператор обрабатывает следующие персональные данные Пользователей:', '— адрес электронной почты;', '— имя (отображаемое имя, может быть указано Пользователем добровольно);', '— номер телефона (указывается Пользователем добровольно при оформлении доставки);', '— адрес доставки и геолокационные координаты (указываются Пользователем при оформлении заказа);', '— аутентификационные данные (сессионные cookie для поддержания входа в Личный кабинет).', ], ``` - [ ] **Step 3: Исправить раздел 3 — убрать несуществующую персонализацию** Было: ```ts items: [ '3.1. Оператор обрабатывает персональные данные в следующих целях:', '— идентификация Пользователя;', '— оказание услуг / продажа товаров;', '— направление уведомлений и информационных сообщений;', '— улучшение качества работы сайта;', '— построение персонализированных предложений и рекомендаций.', ], ``` Стало: ```ts items: [ '3.1. Оператор обрабатывает персональные данные в следующих целях:', '— идентификация и аутентификация Пользователя;', '— оказание услуг / продажа товаров и оформление доставки;', '— направление транзакционных уведомлений о статусе заказов и информационных сообщений;', '— улучшение качества работы сайта.', ], ``` - [ ] **Step 4: Исправить раздел 5 — убрать неавтоматизированную обработку и нереалистичный срок** Было: ```ts items: [ '5.1. Обработка осуществляется путём сбора, записи, систематизации, накопления, хранения, уточнения, извлечения, использования, передачи, обезличивания, блокирования, удаления и уничтожения персональных данных.', '5.2. Обработка осуществляется автоматизированным и неавтоматизированным способами.', '5.3. Срок хранения персональных данных: не более 7 лет с момента последнего обращения Пользователя либо до момента отзыва согласия на обработку.', ], ``` Стало: ```ts items: [ '5.1. Обработка осуществляется путём сбора, записи, систематизации, накопления, хранения, уточнения, извлечения, использования, передачи, блокирования, удаления и уничтожения персональных данных.', '5.2. Обработка осуществляется автоматизированным способом с использованием программных средств Сайта.', '5.3. Срок хранения персональных данных: до достижения целей обработки либо до момента отзыва Пользователем согласия на обработку.', ], ``` - [ ] **Step 5: Исправить раздел 6 — Яндекс.Метрика → ЮKassa** Было: ```ts items: [ '6.1. Оператор может передать персональные данные третьим лицам в следующих случаях:', '— с согласия субъекта;', '— по требованию законодательства РФ;', '— для выполнения договорных обязательств (перечень третьих лиц): службы доставки, платёжные агрегаторы, сервисы аналитики (Яндекс.Метрика).', ], ``` Стало: ```ts items: [ '6.1. Оператор может передать персональные данные третьим лицам в следующих случаях:', '— с согласия субъекта;', '— по требованию законодательства РФ;', '— для выполнения договорных обязательств (перечень третьих лиц): службы доставки, платёжный сервис (ЮKassa).', ], ``` - [ ] **Step 6: Добавить дату обновления** Заменить текст подзаголовка (строка 99): ``` Политика в отношении обработки персональных данных. ``` на: ``` Последнее обновление: 23 мая 2026 г. ``` - [ ] **Step 7: Проверить линтер** ```bash cd client && npm run lint ``` Expected: 0 новых ошибок. --- ### Task 3: Исправить Пользовательское соглашение **Files:** - Modify: `client/src/pages/terms/ui/TermsPage.tsx` - [ ] **Step 1: Заменить локальные константы на импорт из config** Заменить строки 4-11. Было: ```ts import { STORE_EMAIL, STORE_PHONE, STORE_PUBLIC_SITE_URL, } from "@/shared/config"; const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== "undefined" ? window.location.origin : ""); const OP_NAME = "Индивидуальный предприниматель Новоселова Наталия Владимировна"; const OP_INN = "402900832341"; const OP_OGRN = "305402922700051"; const OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А"; ``` Стало: ```ts import { STORE_EMAIL, STORE_PHONE, STORE_PUBLIC_SITE_URL, STORE_OP_NAME, STORE_OP_INN, STORE_OP_OGRN, STORE_OP_ADDR, } from "@/shared/config"; const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== "undefined" ? window.location.origin : ""); ``` Заменить `OP_NAME` → `STORE_OP_NAME`, `OP_INN` → `STORE_OP_INN`, `OP_OGRN` → `STORE_OP_OGRN`, `OP_ADDR` → `STORE_OP_ADDR` во всём файле (replaceAll). - [ ] **Step 2: Дополнить раздел 1 — упомянуть OAuth и вход по коду** В секции 1, в определении «Аутентификационные данные». Найти: ``` '— Аутентификационные данные Пользователя — адрес электронной почты Пользователя и пароль (код доступа), которые в совокупности признаются простой электронной подписью Пользователя.', ``` Заменить на: ``` '— Аутентификационные данные Пользователя — адрес электронной почты и пароль (код доступа), либо данные, полученные через сервисы авторизации третьих лиц (VK ID, Яндекс ID), либо одноразовый код, направляемый на электронную почту. Совокупность аутентификационных данных признаётся простой электронной подписью Пользователя.', ``` - [ ] **Step 3: Убрать «рекламные» сообщения из п. 3.7** Найти: ``` '3.7. При регистрации Пользователь даёт согласие на получение информационных и рекламных сообщений от Администратора на указанный адрес электронной почты.', ``` Заменить на: ``` '3.7. При регистрации Пользователь даёт согласие на получение транзакционных уведомлений (статус заказа, сообщения в чате заказа, статус оплаты) на указанный адрес электронной почты.', ``` - [ ] **Step 4: Исправить противоречие 6.1 vs 2.2 («гарантирует» vs «as is»)** Найти в секции 6: ``` '6.1. Администратор гарантирует достоверность и полноту только той информации, которую он разместил на Сайте самостоятельно.', ``` Заменить на: ``` '6.1. Администратор прилагает разумные усилия для обеспечения достоверности и полноты информации, размещённой на Сайте, однако не даёт явных гарантий точности такой информации.', ``` - [ ] **Step 5: Исправить раздел 7 — указать реальных третьих лиц (ЮKassa, OSM вместо рекламы/аналитики)** Заменить всю секцию 7. Было: ```ts { title: '7. Доступ к ресурсам третьих лиц', items: [ '7.1. Доступ Пользователя к Сайту может вызывать обращение к интернет-ресурсам третьих лиц (реклама, сбор статистики).', '7.2. Владельцы таких ресурсов имеют техническую возможность собирать информацию о Пользователях и самостоятельно определяют условия её использования.', '7.3. При переходе на сторонние ресурсы Пользователи самостоятельно определяют пределы использования своей информации согласно правилам соответствующих ресурсов.', ], }, ``` Стало: ```ts { title: '7. Доступ к ресурсам третьих лиц', items: [ '7.1. Для обеспечения функциональности Сайта используются сервисы третьих лиц: платёжный сервис ЮKassa (для обработки онлайн-платежей). '7.2. Владельцы указанных ресурсов имеют собственную политику конфиденциальности и самостоятельно определяют условия обработки получаемой информации.', '7.3. При переходе на сторонние ресурсы Пользователи самостоятельно определяют пределы использования своей информации согласно правилам соответствующих ресурсов.', ], }, ``` - [ ] **Step 6: Исправить раздел 8 — Cookie только для сессии, не для аналитики** Заменить всю секцию 8. Было: ```ts { title: '8. Информация, хранящаяся на стороне браузера', items: [ '8.1. Администратор использует cookie-файлы для определения уникального идентификатора доступа Пользователя к Сайту.', '8.2. Цели использования cookie:', '— поддержка функциональности Сайта, требующей использования cookie;', '— измерение аудитории Сайта;', '— определение статистических предпочтений Пользователей;', '— исследование корреляции статистических данных.', '8.3. Пользователь может запретить использование cookie в настройках браузера, однако это может привести к частичной или полной потере функциональности Сайта.', ], }, ``` Стало: ```ts { title: '8. Информация, хранящаяся на стороне браузера', items: [ '8.1. Администратор использует сессионные cookie-файлы исключительно для поддержания аутентификации Пользователя в Личном кабинете.', '8.2. Сайт не использует cookie для сбора статистики, отслеживания действий Пользователя или показа рекламы.', '8.3. Пользователь может запретить использование cookie в настройках браузера, однако это приведёт к невозможности входа в Личный кабинет и использования функций, требующих аутентификации.', ], }, ``` - [ ] **Step 7: Исправить раздел 9.3–9.4 — актуальный перечень данных и целей** Заменить строки 9.3 и 9.4 в секции 9. Было: ```ts '9.3. Администратор обрабатывает следующие персональные данные: Ф. И. О., адрес электронной почты, номер телефона, IP-адрес, тип браузера, данные о действиях на Сайте.', '9.4. Цели обработки персональных данных: обеспечение функционирования Сайта, оказание информационной поддержки, предоставление персонализированных сервисов, направление информационных сообщений.', ``` Стало: ```ts '9.3. Администратор обрабатывает следующие персональные данные: адрес электронной почты, имя (при добровольном указании), номер телефона (при оформлении доставки), адрес доставки.', '9.4. Цели обработки персональных данных: обеспечение функционирования Сайта, аутентификация Пользователя, оформление и доставка заказов, направление транзакционных уведомлений.', ``` - [ ] **Step 8: Проверить линтер** ```bash cd client && npm run lint ``` Expected: 0 новых ошибок. --- ### Task 4: Финальная проверка **Files:** No modifications, verification only. - [ ] **Step 1: TypeScript check** ```bash cd client && npx tsc -b --noEmit ``` Expected: no errors. - [ ] **Step 2: Lint** ```bash cd client && npm run lint ``` Expected: 0 errors (warnings OK). - [ ] **Step 3: Сборка** ```bash cd client && npm run build ``` Expected: успешная сборка. - [ ] **Step 4: Format check** ```bash cd client && npm run format:check ``` Expected: все файлы отформатированы (или отформатировать через `npm run format`).