Lawyer 152-FZ
by nevarium-spb
README.md
# Lawyer 152-FZ
ИИ-юрист по 152-ФЗ «О персональных данных» и работе с Роскомнадзором — плагин для Claude Code и MCP-сервер.
Отвечает на вопросы со ссылками на конкретные нормы и даты их редакций, проверяет сайт и код проекта, составляет политику обработки ПДн, согласия и сведения для уведомлений РКН.
> **Результат носит справочный характер и не заменяет консультацию юриста.** База норм и шаблоны документов ещё не прошли ревью практикующим юристом — см. [ограничения](#ограничения).
## Что умеет
- **Консультации.** Ответ опирается на текст нормы из встроенной базы и содержит цитату с идентификатором вида `152-fz/art-9/part-1` и датой редакции. Цитату можно проверить инструментом `get_norm`. Если нормы в базе нет, агент говорит об этом, а не домысливает.
- **Аудит сайта и кода.** Находки привязаны к месту (страница и форма, файл и строка), к норме и к уверенности: «факт» или «требует проверки юристом». Отдельно перечислено, что проверить не удалось.
- **Документы.** Политика обработки ПДн, согласие на обработку (для формы на сайте и письменное), согласие на распространение, сведения для уведомлений РКН об обработке, о трансграничной передаче и об инциденте (24 и 72 часа), приказ о назначении ответственного за организацию обработки (для юридических лиц), реестр мест хранения бумажных носителей (пп. 13–15 ПП № 687), акт определения уровня защищённости в информационных системах (пп. 5–16 ПП № 1119; тип угроз называет оператор), перечень лиц, допущенных к данным в информационных системах (пп. «в» п. 13 ПП № 1119), акт оценки вреда (приказ РКН № 178; степень вреда считает код из случаев, которые называет оператор), акт об уничтожении (приказ РКН № 179) и порядок уничтожения (ст. 21 Закона). Реквизиты агент не выдумывает: недостающие поля запрашивает одним списком, текст берёт из шаблона без правок.
- **Актуальность норм.** `check_norm_freshness` сверяет редакцию с официальным порталом и называет будущие редакции. Если портал недоступен, результат «не удалось проверить», а не «актуально».
## Установка
Нужна последняя версия Node.js (сейчас ≥ 26): MCP-сервер плагина запускается через `node`.
```
/plugin marketplace add nevarium-spb/lawyer-152fz
/plugin install lawyer-152fz@lawyer-152fz
```
Плагин ставится из ветки `release`, где лежит уже собранный сервер (`server/index.mjs`). Отдельной установки зависимостей не нужно.
## Примеры
> Нужно ли согласие на обработку персональных данных для формы обратной связи на сайте?
Ответ с цитатой ст. 9 152-ФЗ и датой редакции.
> Проверь сайт https://example.ru на соответствие 152-ФЗ.
Отчёт: нарушения → риски → рекомендации. У каждой находки — где она, что сделать и на какую норму опирается.
> Проверь, нет ли в коде проекта иностранных SDK и хранилищ за рубежом.
Агент читает исходники (только чтение, `.env` не открывается) и сообщает о найденном. Правки в проекте он вносит только с вашего согласия.
> Составь политику обработки персональных данных для нашего сайта.
Агент спросит реквизиты и цели обработки, заполнит шаблон и с вашего согласия сохранит документ в `docs/152-fz/privacy-policy.md`.
## Что проверяет аудит
| Правило | Что ищет | Основание |
| ------------------------ | ----------------------------------------------------------- | -------------- |
| `PD-FORM-CONSENT` | форма с полями ПДн без согласия | ст. 9 |
| `PD-POLICY-PUBLISHED` | нет ссылки на политику обработки ПДн на страницах с формами | ст. 18.1 |
| `PD-HTTPS` | форма с ПДн отправляется по HTTP | ст. 19 |
| `PD-FOREIGN-SERVICES` | иностранные сервисы аналитики и форм | ст. 12, ст. 18 |
| `PD-COUNTERS-NOTICE` | счётчики и cookie без уведомления пользователя | ст. 9 |
| `PD-CODE-FOREIGN-SDK` | иностранные SDK, получающие ПДн | ст. 12 |
| `PD-CODE-STORAGE-REGION` | хранилища и облака с регионом вне РФ в конфигурации | ст. 18 ч. 5 |
| `PD-CODE-LOGGING` | ПДн попадают в логи | ст. 19 |
Сайт обходится до 50 страниц. Страницы на React, Vue и других SPA без браузера не видны: для них есть `audit_html` по DOM из браузера.
## Инструменты MCP-сервера
| Инструмент | Назначение |
| ------------------------- | ----------------------------------------------------------------- |
| `search_norms` | поиск по нормам |
| `get_norm` | полный текст нормы с датой редакции — единственный источник цитат |
| `verify_answer` | сверка черновика ответа с базой: идентификаторы, цитаты, метки |
| `check_norm_freshness` | сверка редакции с официальным порталом |
| `audit_site` | обход сайта и проверка форм, согласий, политики, HTTPS, сервисов |
| `audit_html` | проверка страницы по DOM из браузера |
| `audit_codebase` | поиск иностранных SDK, зарубежных облаков и ПДн в логах |
| `list_document_templates` | шаблоны документов, их основания и обязательные поля |
| `render_document` | заполнение шаблона данными оператора |
Подробности и состав плагина — в [README плагина](plugins/lawyer-152fz/README.md).
## База норм
| Акт | Что входит |
| ----------------------------------------------------- | ----------- |
| 152-ФЗ «О персональных данных» | все статьи |
| КоАП РФ | ст. 13.11 |
| ПП РФ № 687 (обработка ПДн без средств автоматизации) | пункты 1–15 |
| ПП РФ № 1119 (требования к защите ПДн в ИСПДн) | пункты 1–17 |
| Приказ РКН № 18 (согласие на распространение ПДн) | пункты 1–9 |
| Приказ РКН № 178 (оценка вреда субъектам ПДн) | пункты 1–6 |
| Приказ РКН № 179 (подтверждение уничтожения ПДн) | пункты 1–8 |
Тексты берутся с официального портала актуальных редакций. Исключение — ПП № 1119: на портале его нет, текст взят с официального сайта Правительства РФ (government.ru), реквизиты официальной публикации указаны в ответе ([ADR-0014](docs/adr/0014-official-source-government-ru.md)). Приказ Роскомнадзора № 18 (требования к согласию на распространение) на портале опубликован только сканом: текст набран по скану, сверен с двумя копиями, срок действия приказа (до 01.09.2027) указан в ответе ([ADR-0015](docs/adr/0015-official-publication-scan-rkn-order-18.md)). Приказы № 178 и № 179 — тем же способом, срок действия до 01.03.2029, текст сверен с одной копией ([ADR-0016](docs/adr/0016-rkn-orders-178-179-harm-assessment-and-destruction.md)). Подробнее о составе, формате и обновлении — [в README базы](packages/knowledge/README.md).
## Ограничения
- **Нет ревью юристом.** Тексты норм сверены с официальными источниками, а шаблоны документов и правила аудита проверены автоматическими тестами и evals, но практикующий юрист их ещё не смотрел. Документы, которые пойдут в работу, показывайте юристу.
- **Только российское право.** Вопросы по GDPR и другому иностранному праву агент считает вне базы и не отвечает по ним как по нормам.
- **Аудит не заменяет проверку РКН.** Правила находят признаки нарушений; вывод о том, нарушение ли это, часто зависит от обстоятельств, и такие находки помечены «требует проверки».
- **Аудит видит не всё.** Он не заходит за авторизацию и не выполняет действия пользователя на странице. То, что проверить не удалось, попадает в раздел отчёта «не удалось проверить».
- **Профильные приказы РКН** в базе только № 18, № 178 и № 179: тексты набраны вручную по сканам опубликования, автопроверки изменений нет. Остальных приказов РКН нет.
- **Документы — не весь комплект.** Плагин не составляет, кроме приказа об ответственном, реестра носителей, акта уровня защищённости, перечня допущенных, акта оценки вреда, акта об уничтожении и порядка уничтожения, остальные локальные акты, договор поручения, уведомления об изменении сведений и о прекращении обработки. Аудит сайта замечает специальные категории и биометрию только по словам в подписях полей форм («диагноз», «отпечаток» и т. п.) и помечает находку как требующую проверки; в исходниках, файлах, чатах и картинках он их не ищет. Он не проверяет маркетинг (ст. 15), данные не от субъекта (ч. 2–4 ст. 18), ответы на запросы и соблюдение ПП № 687 на деле (реестр носителей он только составляет по словам пользователя).
## Безопасность и приватность
- Содержимое проверяемых сайтов и репозиториев считается недоверенным: инструкции из него агент не исполняет.
- Сервер не хранит и не логирует персональные данные, найденные при аудите.
- Загрузка адресов защищена от SSRF.
Как сообщить об уязвимости — в [SECURITY.md](SECURITY.md). Принципы защиты — [ADR-0006](docs/adr/0006-security-untrusted-content-no-pd-retention.md).
## Разработка
Архитектура: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). План и статус вех: [docs/PLAN.md](docs/PLAN.md). Как участвовать: [CONTRIBUTING.md](CONTRIBUTING.md).
```bash
pnpm install
pnpm check
```
## Лицензия
[AGPL-3.0](LICENSE) · © Невариум Лаб ИИ
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessOutdated data