generated from VLADIMIR/template
add юрист
This commit is contained in:
@@ -0,0 +1,277 @@
|
||||
# The `software-lawyer` agent preset: the full coding agent (tools identical to
|
||||
# `standard`) with the persona and knowledge base of «Юрист по ПО» — a legal
|
||||
# consultant for software development, licensing, copyright, personal data and
|
||||
# contracts. Mounted once per process.
|
||||
#
|
||||
# This file is an AGENT-PLANE composition. The roster mounts it ONCE under a
|
||||
# standing scope; every session naming it joins by scope parentage, so the
|
||||
# tools and prompt sections registered here cover each joined agent while a
|
||||
# session's own state stays keyed per Session/Agent inside the plugins. The
|
||||
# host composition (`base.cordis.yml` + `web.cordis.yml`) keeps everything a
|
||||
# preset must not own: the registries themselves, the sandbox and approval
|
||||
# stack, persistence, and the model route.
|
||||
#
|
||||
# A service row here MUST sit inside a group carrying an `isolate` realm.
|
||||
# Without one it publishes into the root realm, where it is process-global —
|
||||
# another preset publishing the same name collides, and a host reader would
|
||||
# resolve one preset's instance for every session; `dsh-agent-presets` rejects
|
||||
# that at mount. `true` means an entry-local realm: this standing mount's own
|
||||
# private instance, apart from every other preset's. (A shared label does NOT
|
||||
# pool instances — `provide()` throws on the second registration under the
|
||||
# same realm symbol; labels join REALMS, and are not what this file needs.)
|
||||
|
||||
# ── identity ────────────────────────────────────────────────────────────────
|
||||
|
||||
# The preset's own persona, shadowing the deployment default for this agent.
|
||||
# `{{model}}` and `{{cwd}}` resolve from the agent's own route and workspace.
|
||||
- id: persona
|
||||
name: '@deepseek-ai/dsh-persona'
|
||||
config:
|
||||
text: |-
|
||||
You are «Юрист по ПО» (Software Lawyer) — специализированный агент-консультант по правовым вопросам разработки и распространения программного обеспечения, powered by the {{model}} model. Your working directory is {{cwd}}.
|
||||
|
||||
## Специализация
|
||||
|
||||
- Лицензирование ПО: свободные и проприетарные лицензии (MIT, BSD, Apache-2.0, GPL-2.0/3.0, LGPL, AGPL, MPL, EPL, CC, Unlicense), совместимость лицензий, соблюдение их условий, compliance-риски при использовании сторонних компонентов.
|
||||
- Авторские права на код и базы данных: Бернская конвенция, ГК РФ часть 4 (глава 70), US Copyright Act, служебные произведения, передача и отчуждение прав, fair use.
|
||||
- Персональные данные: 152-ФЗ, GDPR, трансграничная передача данных, обработка данных в продуктах (cookies, аналитика, SaaS).
|
||||
- Договоры: разработка ПО, лицензионные договоры, SLA, NDA, escrow.
|
||||
|
||||
## Правила работы
|
||||
|
||||
1. Перед ответом на юридический вопрос загрузи скилл `software-law` и прочитай нужный справочный файл из `references/` этого скилла (licenses.md, copyright.md, personal-data.md, contracts.md). Отвечай на основе этой базы знаний, а не по памяти.
|
||||
2. Структурируй ответ: краткий ответ → применимые нормы → анализ → вывод и рекомендации.
|
||||
3. Всегда добавляй дисклеймер: консультация носит информационный характер, не является юридической услугой и не заменяет профессиональную помощь; для юридически значимых решений нужно обратиться к квалифицированному юристу.
|
||||
4. Различай юрисдикции: право РФ / ЕС (GDPR) / США. Если юрисдикция не указана — уточни у пользователя.
|
||||
5. Если вопрос касается текущего репозитория (go.mod, лицензии зависимостей, условия), сначала изучи реальные файлы инструментами файловой системы и только потом отвечай.
|
||||
6. Ссылайся на конкретные нормы (например, ст. 1225–1231, 1235, 1261, 1295 ГК РФ; ст. 3–9, 12, 22 152-ФЗ; ст. 3, 6, 7, 15–22, 33–35, 83 GDPR) и условия лицензий. Не выдумывай ссылки; если не уверен в норме — так и скажи.
|
||||
7. Отвечай на языке пользователя (по умолчанию — русский).
|
||||
|
||||
- id: agent-instructions
|
||||
name: '@deepseek-ai/dsh-agent-instructions'
|
||||
config:
|
||||
maxBytes: 65536
|
||||
|
||||
# ── shell ───────────────────────────────────────────────────────────────────
|
||||
|
||||
# `shell-env` stays in the HOST composition: `apps/cli/src/web.ts` injects it to
|
||||
# publish `DSH_WEB_URL`/`DSH_WEB_MODE`, and a host row that injects a service is
|
||||
# the criterion for host-plane ownership — injection resolves before any session
|
||||
# exists, so there is no agent to key by. Behind a preset realm those variables
|
||||
# never reached the model's shell at all. Both shell tools consume the host
|
||||
# registry from here; their executors (`bash-sandbox`/`pwsh-sandbox`) are
|
||||
# host-plane too.
|
||||
- id: tool-bash
|
||||
name: '@deepseek-ai/dsh-tool-bash'
|
||||
disabled: !!js process.platform === 'win32'
|
||||
|
||||
- id: tool-pwsh
|
||||
name: '@deepseek-ai/dsh-tool-pwsh'
|
||||
disabled: !!js process.platform !== 'win32'
|
||||
|
||||
# ── filesystem ──────────────────────────────────────────────────────────────
|
||||
|
||||
# Both register into the host `tools` registry and provide nothing, so
|
||||
# they need no realm. The `fs` service and its policy stay in the host.
|
||||
- id: tool-fs
|
||||
name: '@deepseek-ai/dsh-tool-fs'
|
||||
|
||||
- id: tool-fs-search
|
||||
name: '@deepseek-ai/dsh-tool-fs-search'
|
||||
config:
|
||||
sampleOverCapGlobResults: false
|
||||
|
||||
# ── background jobs ────────────────────────────────────────────────────────
|
||||
|
||||
# Only the model-facing controls. The task REGISTRY stays on the host plane:
|
||||
# its producers sit outside any realm this file could put it in — `tool-bash`
|
||||
# above resolves it with `ctx.get`, and an entry-local realm here is invisible
|
||||
# to every sibling row, so `run_in_background` would answer "background jobs
|
||||
# unavailable" while these controls sat in the catalog. The registry is keyed by
|
||||
# owning agent anyway, so one host instance serves every session. What a preset
|
||||
# chooses is whether its agent can collect and stop background work at all.
|
||||
- id: tool-jobs
|
||||
name: '@deepseek-ai/dsh-tool-jobs'
|
||||
|
||||
# ── skills ──────────────────────────────────────────────────────────────────
|
||||
|
||||
# The skill REGISTRY lives in the host composition and is layered per scope:
|
||||
# these rows register into THIS preset's layer of it, so they need no realm.
|
||||
# `skill-filesystem` contributes local-root discovery for agents on this preset, and
|
||||
# `tool-skill` gives them the catalog and loader; the merged catalog also
|
||||
# carries whatever the deployment registered globally (repository plugins).
|
||||
# The `software-law` knowledge base ships inside this preset: `customSkillDirs`
|
||||
# points the provider at the preset's own `skills/` directory, so the skill
|
||||
# travels with the composition wherever it is installed.
|
||||
- id: skill-filesystem
|
||||
name: '@deepseek-ai/dsh-skill-filesystem'
|
||||
config:
|
||||
customSkillDirs:
|
||||
- !!js "process.getBuiltinModule('node:url').fileURLToPath(new URL('skills/', baseUrl))"
|
||||
|
||||
- id: tool-skill
|
||||
name: '@deepseek-ai/dsh-tool-skill'
|
||||
|
||||
# ── goals ───────────────────────────────────────────────────────────────────
|
||||
|
||||
# Only the model-facing tool. The goal SERVICE, its session driver, and the
|
||||
# `/goal` command stay on the host plane: the Gateway serves the goal domain as
|
||||
# Remote endpoints whose receiver comes from a generated descriptor, so it
|
||||
# resolves `goals` on the host and an entry-local realm here would hide it. The
|
||||
# registry is keyed by session anyway, so one host instance serves every
|
||||
# session. What a preset chooses is whether its agent can call the goal tool.
|
||||
- id: tool-goal
|
||||
name: '@deepseek-ai/dsh-tool-goal'
|
||||
|
||||
# ── plan mode ───────────────────────────────────────────────────────────────
|
||||
|
||||
# Plan state is per-agent by nature, so an entry-local realm is not a
|
||||
# workaround here — it is the correct lifetime.
|
||||
- id: planning
|
||||
name: cordis:group
|
||||
group: true
|
||||
isolate:
|
||||
planMode: true
|
||||
config:
|
||||
- id: plan-mode
|
||||
name: '@deepseek-ai/dsh-plan-mode'
|
||||
config:
|
||||
section: |
|
||||
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
||||
|
||||
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
||||
|
||||
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
||||
|
||||
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
||||
|
||||
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
||||
|
||||
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
||||
|
||||
# ── compaction ──────────────────────────────────────────────────────────────
|
||||
|
||||
# `compaction-basic` reads `toolResultPrune` through `ctx.get`, so the pruner must
|
||||
# share this realm rather than sit outside it.
|
||||
#
|
||||
# `tokenMeter` is deliberately NOT in this realm: the meter stays on the HOST
|
||||
# plane, and the rows here resolve that one instance. It takes no configuration,
|
||||
# keys every fold by Session, and owns the context-meter projection units the
|
||||
# browser reads for every session — behind a realm those units would come and go
|
||||
# with whichever presets happen to be mounted. What a preset chooses is whether
|
||||
# its agent compacts at all, which is `compaction-basic` below.
|
||||
- id: compaction
|
||||
name: cordis:group
|
||||
group: true
|
||||
isolate:
|
||||
compaction: true
|
||||
toolResultPruner: true
|
||||
config:
|
||||
- id: compaction-basic
|
||||
name: '@deepseek-ai/dsh-compaction-basic'
|
||||
|
||||
- id: command-compact
|
||||
name: '@deepseek-ai/dsh-command-compact'
|
||||
|
||||
- id: tool-result-pruner
|
||||
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
||||
config:
|
||||
thresholdChars: 8192
|
||||
headChars: 4096
|
||||
tailChars: 1024
|
||||
|
||||
# ── delegation and workflows ────────────────────────────────────────────────
|
||||
|
||||
# The `subagents` registry and its spawn/fork backends live in the HOST
|
||||
# composition: the registry is a process singleton whose cross-session queries
|
||||
# the api-proxy serves to the browser, and a provider name may only be
|
||||
# registered once. This preset contributes the delegation TOOLS, which resolve
|
||||
# that host registry.
|
||||
#
|
||||
# `workflows` is different — nothing outside an agent reads it — so every row
|
||||
# that reaches it shares one entry-local realm here, and a consumer left
|
||||
# outside would resolve a host registry this preset does not populate.
|
||||
#
|
||||
# `tool-subagent-report` is host-plane for the same reason as the registry,
|
||||
# not because a preset may not want it: it registers a CONTINUABLE SETUP on
|
||||
# that singleton rather than a tool this agent calls, and the setup list is
|
||||
# not scope-aware — one copy per mounted preset means every child gets
|
||||
# `report` registered once per live session, which throws on the second.
|
||||
- id: delegation
|
||||
name: cordis:group
|
||||
group: true
|
||||
isolate:
|
||||
workflowEngine: true
|
||||
config:
|
||||
- id: tool-subagent-control
|
||||
name: '@deepseek-ai/dsh-tool-subagent-control'
|
||||
|
||||
- id: tool-subagent-list-agents
|
||||
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
||||
|
||||
- id: tool-subagent
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: spawn
|
||||
toolName: subagent
|
||||
backgroundMode: continuable
|
||||
|
||||
- id: tool-subagent-fork
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: fork
|
||||
toolName: subagent_fork
|
||||
backgroundMode: continuable
|
||||
|
||||
# Product providers are host-plane singletons. Copy this preset, then
|
||||
# remove `disabled` from either ordinary tool row to expose that product
|
||||
# only to agents composed from the copy.
|
||||
- id: tool-subagent-codex
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
disabled: true
|
||||
config:
|
||||
provider: codex
|
||||
toolName: subagent_codex
|
||||
enableRunInBackground: false
|
||||
maxDepth: provider-managed
|
||||
|
||||
- id: tool-subagent-claude-code
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
disabled: true
|
||||
config:
|
||||
provider: claude-code
|
||||
toolName: subagent_claude_code
|
||||
enableRunInBackground: false
|
||||
maxDepth: provider-managed
|
||||
|
||||
- id: workflow-worker-thread
|
||||
name: '@deepseek-ai/dsh-workflow-worker-thread'
|
||||
config:
|
||||
provider: spawn
|
||||
|
||||
- id: tool-workflow
|
||||
name: '@deepseek-ai/dsh-tool-workflow'
|
||||
|
||||
- id: tool-ralph
|
||||
name: '@deepseek-ai/dsh-tool-ralph'
|
||||
config:
|
||||
subagentProvider: spawn
|
||||
maxRounds: 64
|
||||
|
||||
# ── remaining model-facing rows ─────────────────────────────────────────────
|
||||
|
||||
- id: tool-ask-user
|
||||
name: '@deepseek-ai/dsh-tool-ask-user'
|
||||
|
||||
- id: tool-todo
|
||||
name: '@deepseek-ai/dsh-tool-todo'
|
||||
config:
|
||||
allowParallelInProgress: true
|
||||
|
||||
# The `web` service and its search provider stay in the host composition; only
|
||||
# the model-facing tool is per-session.
|
||||
- id: tool-web
|
||||
name: '@deepseek-ai/dsh-tool-web'
|
||||
config:
|
||||
fetch: false
|
||||
searchTimeoutMs: 60000
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Устанавливает агента-пресет «Юрист по ПО» в пользовательский корень
|
||||
# пресетов DeepSeek Harness ($DSH_HOME/.agent-presets/software-lawyer).
|
||||
#
|
||||
# Использование:
|
||||
# ./agents/software-lawyer/install.sh # установка (идемпотентно)
|
||||
# ./agents/software-lawyer/install.sh --force # перезаписать существующий пресет
|
||||
#
|
||||
# После установки пресет «Юрист по ПО» появляется в списке агентов при
|
||||
# создании новой сессии (обнаружение пресетов читает каталог при каждом
|
||||
# вызове, перезапуск не требуется).
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SOURCE_DIR="$SCRIPT_DIR"
|
||||
DSH_HOME="${DSH_HOME:-$HOME/.dsh}"
|
||||
TARGET_DIR="$DSH_HOME/.agent-presets/software-lawyer"
|
||||
|
||||
FORCE=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--force|-f) FORCE=1 ;;
|
||||
-h|--help)
|
||||
sed -n '2,14p' "$0" | sed 's/^# \{0,1\}//'
|
||||
exit 0
|
||||
;;
|
||||
*) echo "Неизвестный аргумент: $arg" >&2; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -d "$TARGET_DIR" && "$FORCE" -ne 1 ]]; then
|
||||
echo "Пресет уже установлен: $TARGET_DIR"
|
||||
echo "Для перезаписи запустите с --force."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$DSH_HOME/.agent-presets"
|
||||
|
||||
if [[ -d "$TARGET_DIR" ]]; then
|
||||
rm -rf "$TARGET_DIR"
|
||||
fi
|
||||
|
||||
mkdir -p "$TARGET_DIR"
|
||||
# Копируем содержимое пресета, исключая сам скрипт установки.
|
||||
shopt -s dotglob
|
||||
for entry in "$SOURCE_DIR"/*; do
|
||||
[[ "$(basename "$entry")" == "install.sh" ]] && continue
|
||||
cp -R "$entry" "$TARGET_DIR"/
|
||||
done
|
||||
shopt -u dotglob
|
||||
# Пресет-каталоги в DSH создаются с правами владельца (0o700/0o600); копия
|
||||
# наследует umask — приведём к аналогичному виду.
|
||||
chmod -R u+rwX,go-rwx "$TARGET_DIR"
|
||||
|
||||
echo "Установлено: $TARGET_DIR"
|
||||
echo "Пресет «Юрист по ПО» доступен при создании новой сессии."
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Юрист по ПО
|
||||
description: Агент-консультант по правовым вопросам разработки ПО — лицензии (MIT, GPL, Apache...), авторские права, персональные данные (152-ФЗ/GDPR), договоры. Отвечает на основе встроенной базы знаний, без внешних API.
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: software-law
|
||||
description: База знаний агента «Юрист по ПО» — правила проведения юридических консультаций по разработке ПО и справочные материалы (лицензии, авторские права, персональные данные, договоры). Загружай перед ответом на любой юридический вопрос.
|
||||
---
|
||||
|
||||
# База знаний «Юрист по ПО»
|
||||
|
||||
Это встроенная база знаний агента «Юрист по ПО» (движок: знания + правила, без внешних API). Справочные материалы лежат в `references/` этого скилла. Перед ответом на юридический вопрос прочитай соответствующий файл (или несколько) и строй ответ на его содержании.
|
||||
|
||||
## Справочные файлы
|
||||
|
||||
| Тема вопроса | Файл |
|
||||
|---|---|
|
||||
| Лицензии ПО, совместимость, open source, compliance | `references/licenses.md` |
|
||||
| Авторские права на код, служебные произведения, передача прав | `references/copyright.md` |
|
||||
| Персональные данные: 152-ФЗ, GDPR, cookies, трансграничная передача | `references/personal-data.md` |
|
||||
| Договоры разработки, лицензионные договоры, SLA, NDA, escrow | `references/contracts.md` |
|
||||
|
||||
## Как проводить консультацию
|
||||
|
||||
1. **Определи вопрос и юрисдикцию.** Если не указана (РФ / ЕС / США / иная) — уточни. Многие ответы радикально различаются по юрисдикциям.
|
||||
2. **Прочитай нужный справочный файл.** При комплексном вопросе — несколько файлов. Не отвечай «по памяти»: база знаний — источник истины.
|
||||
3. **Если вопрос касается конкретного проекта** (go.mod, зависимости, README, условия в репозитории) — сначала изучи реальные файлы инструментами файловой системы.
|
||||
4. **Структура ответа:**
|
||||
- краткий прямой ответ (1–3 предложения);
|
||||
- применимые нормы и условия (со ссылками на статьи/пункты);
|
||||
- анализ применительно к ситуации пользователя;
|
||||
- вывод и практические рекомендации (что сделать, что проверить, к кому обратиться).
|
||||
5. **Всегда добавляй дисклеймер:** консультация информационная, не является юридической услугой и не заменяет профессиональную помощь; для юридически значимых решений — к квалифицированному юристу.
|
||||
6. **Не выдумывай нормы.** Ссылайся только на то, что есть в справочных файлах или в проверенных источниках. Если нормы нет в базе — скажи, что вопрос требует уточнения у юриста.
|
||||
7. **Различай уровни уверенности.** Если норма спорная или зависит от обстоятельств — покажи оба прочтения и что влияет на вывод.
|
||||
|
||||
## Границы компетенции
|
||||
|
||||
- Агент не подписывает документы, не даёт заключений «для суда», не представляет интересы в органах.
|
||||
- Шаблоны договоров/согласий — только информационный материал, требующий адаптации юристом.
|
||||
- Законы и практика меняются: при значимом решении проверяй актуальность норм (например, web_search).
|
||||
- Налоги, уголовная ответственность, регистрация юрлиц — вне специализации; перенаправь к профильному специалисту.
|
||||
@@ -0,0 +1,65 @@
|
||||
# Договоры в разработке ПО
|
||||
|
||||
Справочник агента «Юрист по ПО»: договоры разработки, лицензионные договоры, SLA, NDA, escrow.
|
||||
|
||||
## Договор разработки ПО (подряд/услуги)
|
||||
|
||||
- **Квалификация**: разработка «под ключ» с результатом — договор подряда (гл. 37 ГК РФ) или смешанный; поддержка и сопровождение — возмездное оказание услуг (гл. 39 ГК РФ); для IT-проектов часто смешанный договор.
|
||||
- **Существенные условия**:
|
||||
- предмет: что разрабатывается (ТЗ/спецификация/приложение — обязательное приложение), объём, функциональные требования;
|
||||
- сроки: этапы, промежуточные и финальный сроки, порядок сдачи-приёмки;
|
||||
- цена и порядок оплаты (аванс/вехи/финальный платёж);
|
||||
- права на результаты (см. ниже) и на исходный код;
|
||||
- гарантии и ответственность сторон.
|
||||
- **Приёмка**: акт сдачи-приёмки, порядок тестирования, срок на замечания, последствия несоответствия (устранение за счёт исполнителя).
|
||||
- **Права на результат**: по умолчанию по договору подряда — у подрядчика (автора), заказчик получает право использования для целей договора (ст. 1296 ГК РФ — по договору подряда/заказа на создание программы: исключительное право принадлежит подрядчику, если договором не установлено иное; заказчик вправе использовать для целей договора). → **Договор должен явно передавать исключительное право или лицензию заказчику** (ст. 1234/1235 ГК РФ).
|
||||
- **Гарантии качества**: гарантийный срок, скрытые недостатки, техническая поддержка после сдачи.
|
||||
- **Ответственность**: неустойка за просрочку (ст. 330 ГК РФ), ограничение ответственности (cap), исключение косвенных убытков.
|
||||
|
||||
## Лицензионный договор (ст. 1235 ГК РФ)
|
||||
|
||||
- **Существенные условия**: предмет (произведение/ПО), **способы использования** (обязательно! иначе право не считается предоставленным — ст. 1235 п. 2).
|
||||
- **Территория**: по умолчанию — вся территория РФ; можно указать иную.
|
||||
- **Срок**: до 5 лет, если не указан; можно бессрочно/до 5 лет.
|
||||
- **Вознаграждение**: форма (паушальное/роялти/смешанное); для возмездного договора цена существенна (ст. 1235 п. 5 — при отсутствии условия о вознаграждении договор считается незаключённым).
|
||||
- **Виды** (ст. 1236): простая (неисключительная) лицензия — правообладатель может лицензировать другим; исключительная — лицензиат единственный.
|
||||
- **Сублицензия** (ст. 1238): только с письменного согласия лицензиара, если не указано иное.
|
||||
- **Открытая лицензия** (ст. 1286.1) — упрощённый порядок акцепта, см. licenses.md.
|
||||
- **End User License Agreement (EULA)**: договор присоединения (ст. 428 ГК РФ); акцепт при установке/использовании (ст. 1286 п. 3 ГК РФ — допускается заключение путём совершения конклюдентных действий).
|
||||
|
||||
## SLA (Service Level Agreement)
|
||||
|
||||
- Часть договора услуг/поддержки: **метрики** (uptime %, время ответа, время восстановления RTO), **периоды измерения**, **порядок расчёта**, **штрафы/компенсации** (service credits), исключения из SLA (форс-мажор, плановые окна, действия клиента).
|
||||
- Соотношение с гарантиями: SLA — операционные обязательства, не замена гарантий качества.
|
||||
- Типичные метрики: доступность (99.9%), MTTR, MTBF, время реакции по уровням приоритета инцидентов.
|
||||
|
||||
## NDA (соглашение о конфиденциальности)
|
||||
|
||||
- **Предмет**: какая информация конфиденциальна (перечень/критерии), исключения (публичная информация, известная ранее, полученная от третьих лиц, разработанная самостоятельно).
|
||||
- **Обязательства**: неразглашение, ограничение использования, защита (разумные меры), возврат/уничтожение информации.
|
||||
- **Срок**: период действия + срок конфиденциальности после прекращения (обычно 2–5 лет).
|
||||
- **Одностороннее/двустороннее**: зависит от того, кто раскрывает информацию.
|
||||
- В РФ: ст. 1465–1470 ГК РФ (коммерческая тайна), 98-ФЗ «О коммерческой тайне».
|
||||
|
||||
## Escrow (депонирование исходного кода)
|
||||
|
||||
- Третья сторона (эскроу-агент) хранит исходный код и документацию; заказчик получает доступ при наступлении условий (банкротство/прекращение поддержки вендора, неисполнение обязательств).
|
||||
- Применимо для критичных систем при закрытом коде вендора.
|
||||
- Условия: состав депозита, порядок обновления, условия и процедура раскрытия, ответственность эскроу-агента.
|
||||
|
||||
## Международные договоры
|
||||
|
||||
- Выбор права и суда/арбитража (важно для кросс-граничных контрактов).
|
||||
- Инкотермс — для поставок (не для ПО как услуги).
|
||||
- Экспортный контроль (в т.ч. криптография — экспортные ограничения США (EAR), ЕС) — при распространении ПО за рубеж.
|
||||
- Налоговые аспекты (роялти, постоянное представительство) — вне специализации, направить к профильному специалисту.
|
||||
|
||||
## Чек-лист договора разработки
|
||||
|
||||
1. Предмет + ТЗ/спецификация как приложение.
|
||||
2. Этапы, сроки, порядок приёмки.
|
||||
3. Права на код и результаты — явная передача заказчику.
|
||||
4. Гарантии, SLA (если поддержка), ответственность и cap.
|
||||
5. Конфиденциальность (NDA).
|
||||
6. Порядок расторжения и передача при прекращении (передача кода, данных).
|
||||
7. Право и юрисдикция.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Авторские права на программное обеспечение
|
||||
|
||||
Справочник агента «Юрист по ПО»: охрана кода, служебные произведения, передача прав, ответственность.
|
||||
|
||||
## Основы
|
||||
|
||||
- **Программа для ЭВМ** охраняется авторским правом как литературное произведение (ст. 1261 ГК РФ). Охраняется код (исходный и объектный), а также подготовительные материалы.
|
||||
- **База данных** — составное произведение (ст. 1260 ГК РФ); также охраняется право изготовителя базы данных (ст. 1333–1336 ГК РФ).
|
||||
- **Авторское право возникает автоматически** с момента создания произведения — без регистрации, без депонирования (ст. 1257, 1259 ГК РФ). Регистрация программ для ЭМВ возможна в Роспатенте (ст. 1262 ГК РФ) — добровольная, даёт презумпцию авторства и удобна в спорах.
|
||||
- **Международная охрана**: Бернская конвенция об охране литературных и художественных произведений (РФ — участник) — охрана без формальностей во всех странах-участницах.
|
||||
- **США**: US Copyright Act (17 U.S.C.), регистрация в U.S. Copyright Office — условие для statutory damages; fair use (§ 107).
|
||||
|
||||
## Объекты и права
|
||||
|
||||
- **Личные неимущественные права автора** (ст. 1255, 1265 ГК РФ): право авторства, право на имя, неприкосновенность произведения, обнародование. Непередаваемы.
|
||||
- **Исключительное право** (ст. 1270 ГК РФ): использование произведения любым способом — воспроизведение, распространение, публичный показ, переработка (модификация кода!), доведение до всеобщего сведения (интернет) и др.
|
||||
- **Срок действия**: вся жизнь автора + 70 лет (ст. 1281 ГК РФ); в США — 70 лет после смерти автора (для работ по найму — 95 лет от публикации / 120 лет от создания).
|
||||
|
||||
## Служебные произведения (ст. 1295 ГК РФ)
|
||||
|
||||
- Произведение, созданное **в пределах трудовых обязанностей** работника — исключительное право принадлежит **работодателю**, если договором не предусмотрено иное.
|
||||
- Автор (работник) вправе получить вознаграждение за использование (если не установлено иное).
|
||||
- Работодатель вправе обнародовать произведение и использовать его; автор не вправе препятствовать.
|
||||
- **Важно**: если код написан работником вне трудовых обязанностей (в свободное время, без задания) — по умолчанию права у работника. Границы спорны; решается по факту (должностная инструкция, характер работы).
|
||||
|
||||
## Произведения по заказу и по госконтракту
|
||||
|
||||
- **По договору авторского заказа** (ст. 1288–1290 ГК РФ): права на произведение принадлежат автору, если договором не предусмотрена передача заказчику; договор должен прямо предусматривать отчуждение исключительного права или лицензию.
|
||||
- **По государственному/муниципальному контракту** (ст. 1298 ГК РФ): исключительное право принадлежит исполнителю, если контрактом не установлено иное (обычно — РФ/субъекту, если прямо указано).
|
||||
|
||||
## Передача и распоряжение правами
|
||||
|
||||
- **Договор об отчуждении исключительного права** (ст. 1234 ГК РФ): переход права целиком; существенные условия — предмет (произведение) и цена (если безвозмездно — прямо указать).
|
||||
- **Лицензионный договор** (ст. 1235 ГК РФ): предоставление права использования в пределах (способы, территория, срок). Существенные условия: предмет, способы использования. Срок — до 5 лет, иначе 5 лет; территория — РФ, иначе вся территория РФ. Если способ использования не указан — право не считается предоставленным.
|
||||
- **Открытая лицензия** (ст. 1286.1 ГК РФ) — см. licenses.md.
|
||||
- **Простая/исключительная лицензия** (ст. 1236 ГК РФ): неисключительная (можно лицензировать другим) vs исключительная (лицензиат — единственный).
|
||||
- Форма: лицензионный договор — письменная, кроме открытых лицензий и лицензий на ПО для ЭВМ (ст. 1286 ГК РФ — допускается заключение путём акцепта условий, например при установке). Договор отчуждения исключительного права — письменный (ст. 1234).
|
||||
|
||||
## Свободное использование и fair use
|
||||
|
||||
- **РФ** (ст. 1273–1280 ГК РФ): узкий перечень — личное использование, цитирование, использование для целей обучения/исследования (в установленных пределах) и др. Для ПО свободное использование практически не работает.
|
||||
- **США** (fair use, §107 Copyright Act): 4 фактора — цель/характер использования, характер произведения, объём использованного, влияние на рынок. Применяется в США, в РФ аналога нет.
|
||||
- **Реверс-инжиниринг**: в РФ ограниченно (ст. 1280 ГК РФ — право на декомпиляцию для взаимодействия программ, при определённых условиях); в ЕС — Directive 2009/24/EC (интероперабельность); в США — ограниченные исключения.
|
||||
|
||||
## Ответственность за нарушение (РФ)
|
||||
|
||||
- Гражданско-правовая (ст. 1252, 1301 ГК РФ): требование о прекращении нарушения, изъятие контрафакта, **компенсация** — от 10 000 до 5 000 000 ₽ либо двукратная стоимость права использования или контрафактных экземпляров.
|
||||
- Административная (ст. 7.12 КоАП РФ): штрафы + конфискация.
|
||||
- Уголовная (ст. 146 УК РФ): крупный/особо крупный размер — штраф до 1 млн ₽, обязательные/принудительные работы, лишение свободы до 6 лет.
|
||||
- Плагиат (ст. 146 УК РФ ч. 1) — присвоение авторства.
|
||||
|
||||
## Практические вопросы
|
||||
|
||||
- **Кто автор кода в команде?** Все, кто вносил творческий вклад; распределение прав — договором/соглашением.
|
||||
- **Стартапы**: закреплять права на код за компанией договорами с разработчиками (трудовой договор + положение о служебных произведениях, договоры подряда/заказа с исполнителями, соглашения об отчуждении прав от фрилансеров).
|
||||
- **Вклад в open source**: контрибьютор сохраняет права на свой вклад, лицензируя его под лицензией проекта (по умолчанию — лицензия репозитория); CLA (Contributor License Agreement) — договор, перераспределяющий/лицензирующий права в пользу проекта.
|
||||
- **AI-сгенерированный код**: правовой статус не устоялся; в ряде юрисдикций (США, ЕС) результаты генерации без творческого вклада человека могут не охраняться; РФ — доктринально спорно, практика формируется. Рекомендовать: фиксировать в договорах права на AI-результаты, проверять условия инструментов генерации.
|
||||
@@ -0,0 +1,98 @@
|
||||
# Лицензии программного обеспечения
|
||||
|
||||
Справочник агента «Юрист по ПО». Лицензия — правовой инструмент, определяющий, как можно использовать, изменять и распространять ПО. В РФ лицензии на ПО оформляются как лицензионные договоры, в т.ч. открытые лицензии (ст. 1286.1 ГК РФ).
|
||||
|
||||
## Базовые понятия
|
||||
|
||||
- **Проприетарная лицензия** — права ограничены: обычно запрет копирования, модификации, реверс-инжиниринга, субаренды; часто оплата за использование.
|
||||
- **Open source (OSI)** — ПО с лицензией, удовлетворяющей 10 критериям OSI (свободное распространение, доступность исходников, право на модификацию и производные и т.д.).
|
||||
- **Свободное ПО (FSF)** — 4 свободы: запускать для любых целей, изучать и изменять, распространять копии, распространять улучшенные версии.
|
||||
- **SPDX-идентификатор** — стандартный короткий код лицензии (например `MIT`, `Apache-2.0`, `GPL-3.0-only`), используется в метаданных зависимостей и отчётах.
|
||||
|
||||
## Пермиссивные лицензии (permissive)
|
||||
|
||||
Разрешают почти всё (использование, модификацию, закрытие исходников, включение в проприетарный продукт) при соблюдении условий атрибуции.
|
||||
|
||||
| Лицензия | SPDX | Ключевые условия | Особенности |
|
||||
|---|---|---|---|
|
||||
| MIT | `MIT` | Сохранение уведомления об авторстве и текста лицензии в копиях/производных | Самая простая и распространённая; совместима практически со всем |
|
||||
| BSD-2-Clause | `BSD-2-Clause` | Атрибуция, запрет использования имени автора для рекламы | |
|
||||
| BSD-3-Clause | `BSD-3-Clause` | Как BSD-2 + запрет использования имени автора в рекламе без разрешения | |
|
||||
| ISC | `ISC` | Атрибуция | Похожа на MIT, короче |
|
||||
| Apache-2.0 | `Apache-2.0` | Атрибуция + уведомление об изменениях (NOTICE), явная патентная лицензия | Патентная «граната»: грант патентов на вклад; совместима с GPL-3.0 |
|
||||
| Unlicense / CC0 | `Unlicense` / `CC0-1.0` | Отказ от прав (public domain по возможности) | CC0 — не для ПО в РФ напрямую (нет института public domain); Unlicense — текст-отказ |
|
||||
|
||||
**Вывод для проприетарного продукта:** пермиссивные лицензии безопасны — можно включить код в закрытый продукт, выполнив условия атрибуции (обычно копия текста лицензии + уведомление об авторстве в составе дистрибутива).
|
||||
|
||||
## Копилефт-лицензии (copyleft)
|
||||
|
||||
Требуют, чтобы производные работы распространялись под той же лицензией (с открытием исходников).
|
||||
|
||||
| Лицензия | SPDX | Обязательство | Особенности |
|
||||
|---|---|---|---|
|
||||
| GPL-2.0 | `GPL-2.0-only` | Производные работы — под GPL-2.0 с открытием исходников | Классический «сильный» копилефт; несовместима с Apache-2.0 |
|
||||
| GPL-3.0 | `GPL-3.0-only` | Как GPL-2.0 + явная патентная лицензия, защита от TiVo-зации (антиблокировка) | Совместима с Apache-2.0; несовместима с GPL-2.0 (можно под «GPL-2.0-or-later» объединять) |
|
||||
| LGPL-2.1 / LGPL-3.0 | `LGPL-2.1-only` / `LGPL-3.0-only` | Копилефт для самой библиотеки; использование через динамическую компоновку не «заражает» вызывающий код | Слабее GPL: проприетарное приложение может использовать LGPL-библиотеку динамически |
|
||||
| AGPL-3.0 | `AGPL-3.0-only` | Как GPL-3.0 + обязательство открытия исходников при предоставлении ПО через сеть (SaaS) | Критична для серверных продуктов и веб-сервисов |
|
||||
| MPL-2.0 | `MPL-2.0` | Копилефт на уровне файлов: изменённые файлы — под MPL, остальное можно под другой лицензией | «Слабый» копилефт; файловый уровень; совместима с GPL |
|
||||
| EPL-2.0 | `EPL-2.0` | Копилефт на уровне модуля; патентный грант | Используется Eclipse Foundation |
|
||||
|
||||
**Ключевые риски:**
|
||||
- Включение GPL/AGPL-кода в проприетарный продукт обычно **недопустимо** без открытия исходников продукта под GPL.
|
||||
- **AGPL** опасна для SaaS: использование AGPL-кода в серверной части веб-сервиса обязывает открыть исходники сервиса (при передаче через сеть).
|
||||
- **LGPL + статическая компоновка / копирование кода** может «заразить» продукт; динамическая компоновка (shared library) обычно безопасна.
|
||||
- **Копирование кода** (copy-paste) из copyleft-проекта = создание производной работы со всеми последствиями.
|
||||
|
||||
## Лицензии Creative Commons (для контента, не для ПО)
|
||||
|
||||
- `CC0-1.0` — отказ от прав (public domain).
|
||||
- `CC-BY-4.0` — атрибуция.
|
||||
- `CC-BY-SA-4.0` — атрибуция + share-alike (производные под той же лицензией).
|
||||
- `CC-BY-NC-*` — запрет коммерческого использования.
|
||||
- `CC-BY-ND-*` — запрет производных работ.
|
||||
- **Не рекомендуется для ПО** (нет чётких правил для кода, нет патентных положений); для кода лучше CC0 (отказ) или MIT.
|
||||
|
||||
## Совместимость лицензий (кратко)
|
||||
|
||||
| Комбинация | Совместимо? |
|
||||
|---|---|
|
||||
| MIT/BSD/ISC + любая лицензия | Да |
|
||||
| Apache-2.0 + GPL-3.0 | Да (Apache-2.0 совместима с GPL-3.0) |
|
||||
| Apache-2.0 + GPL-2.0 | Нет |
|
||||
| GPL-2.0 + GPL-3.0 | Нет (если не «or-later») |
|
||||
| GPL + LGPL | Да (LGPL-код можно включать в GPL-проект) |
|
||||
| MPL-2.0 + GPL | Да |
|
||||
| GPL + проприетарный продукт | Только если продукт открывается под GPL |
|
||||
| AGPL + проприетарный SaaS | Нет (по умолчанию) |
|
||||
|
||||
## Dual licensing (двойное лицензирование)
|
||||
|
||||
Правообладатель предлагает выбор: например, open source-лицензия (GPL/AGPL) ИЛИ коммерческая лицензия. Пользователь выбирает одну. Частая модель для библиотек (пример: MySQL, Qt, MongoDB).
|
||||
|
||||
## Проверка лицензий зависимостей (compliance)
|
||||
|
||||
- **SPDX-метаданные** в go.mod / package.json / Cargo.toml и т.д.
|
||||
- Инструменты: `go-licenses`, `license-checker` (npm), `cargo-license`, FOSSA, ScanCode Toolkit, GitHub Dependency Insights.
|
||||
- В отчёте фиксировать: компонент, версия, SPDX-идентификатор, текст лицензии, совместимость с моделью распространения продукта.
|
||||
- Атрибуция: собрать THIRD_PARTY_NOTICES / NOTICE с текстами лицензий и уведомлениями об авторстве.
|
||||
|
||||
## Открытая лицензия в РФ (ст. 1286.1 ГК РФ)
|
||||
|
||||
- Открытая лицензия — лицензионный договор, заключаемый в упрощённом порядке (акцепт условий, например началом использования).
|
||||
- Действует на всей территории мира, на срок действия исключительного права, если не указано иное.
|
||||
- Лицензиар вправе отказаться от договора в одностороннем порядке, если лицензиат предоставляет третьим лицам права на ПО (например, сублицензии) в нарушение условий.
|
||||
- Для ПО открытые лицензии (MIT, GPL и т.д.) признаются в РФ лицензионными договорами.
|
||||
|
||||
## Ответственность и риски
|
||||
|
||||
- Нарушение условий лицензии = нарушение исключительного права (ст. 1252, 1301 ГК РФ): компенсация от 10 000 до 5 000 000 ₽ или двукратная стоимость права использования / контрафактных экземпляров; также возможны изъятие контрафакта, судебные запреты.
|
||||
- Для иностранных правообладателей — Бернская конвенция обеспечивает охрану в РФ.
|
||||
- Ответственность за отсутствие лицензионной чистоты (license hygiene) ложится на распространителя продукта.
|
||||
|
||||
## Чек-лист для ответа про лицензии
|
||||
|
||||
1. Какой компонент и какая лицензия (SPDX)?
|
||||
2. Как используется: включение кода, компоновка (динамическая/статическая), сервис (SaaS)?
|
||||
3. Как распространяется продукт: закрытый, open source, под какой лицензией?
|
||||
4. Есть ли патентные положения (Apache-2.0, GPL-3.0) и патентные риски?
|
||||
5. Выполнены ли условия атрибуции и доставлен ли текст лицензии?
|
||||
@@ -0,0 +1,58 @@
|
||||
# Персональные данные в ПО: 152-ФЗ и GDPR
|
||||
|
||||
Справочник агента «Юрист по ПО»: обработка персональных данных (ПДн) в продуктах, сервисах и приложениях.
|
||||
|
||||
## Основные понятия (152-ФЗ)
|
||||
|
||||
- **Персональные данные (ПДн)** (ст. 3): любая информация, относящаяся к прямо или косвенно определённому или определяемому физическому лицу (субъекту ПДн).
|
||||
- **Оператор**: государственный орган, юрлицо или физлицо, организующее/осуществляющее обработку ПДн.
|
||||
- **Обработка**: любое действие с ПДн — сбор, запись, систематизация, накопление, хранение, уточнение, извлечение, использование, передача, обезличивание, блокирование, удаление, уничтожение.
|
||||
- **Специальные категории** (ст. 10): раса, национальность, политические взгляды, религия, здоровье, интимная жизнь. Обработка — только в исключительных случаях.
|
||||
- **Биометрические ПДн** (ст. 11): обработка — только с согласия в письменной форме (кроме гос. систем).
|
||||
|
||||
## Принципы и основания (152-ФЗ)
|
||||
|
||||
- **Принципы** (ст. 5): законность и справедливость; соответствие целям; минимизация; точность; достаточность; ограничение сроков хранения.
|
||||
- **Основания обработки** (ст. 6): согласие субъекта; исполнение договора; исполнение закона; защита жизни/здоровья; исполнение полномочий госорганов; законные интересы оператора (с учётом прав субъекта).
|
||||
- **Согласие** (ст. 9): конкретное, информированное, сознательное; может быть в любой форме, позволяющей подтвердить факт получения; отзыв — в любое время; при отзыве оператор обязан прекратить обработку и уничтожить ПДн, если нет иных оснований.
|
||||
|
||||
## Обязанности оператора (152-ФЗ)
|
||||
|
||||
- **Уведомление Роскомнадзора** о намерении обрабатывать ПДн (ст. 22) — до начала обработки, кроме случаев из ч. 2 ст. 22 (трудовые отношения, договоры с субъектом, одноразовый пропуск, без использования средств автоматизации и т.д.).
|
||||
- **Локальные акты** (ст. 18.1): политика обработки ПДн, положение/инструкции, назначение ответственного, оценка вреда, меры безопасности.
|
||||
- **Меры безопасности** (ст. 19): правовые, организационные и технические меры (шифрование, разграничение доступа, антивирус, защита каналов).
|
||||
- **Права субъекта** (ст. 14): доступ к своим ПДн, уточнение, блокирование, уничтожение, обжалование действий оператора.
|
||||
- **Трансграничная передача** (ст. 12): на территорию стран из перечня Роскомнадзора — свободно; в иные страны — при определённых условиях (согласие, договор, международные договоры); с 01.09.2025 ужесточение: уведомление/разрешение Роскомнадзора на трансграничную передачу (для стран вне перечня) с обязанностью оператора подтвердить соблюдение требований. *Норма меняется — проверяй актуальную редакцию.*
|
||||
- **Утечки** (ст. 21, ст. 23): обязанность уведомить Роскомнадзор (и, с 2023, в определённых случаях — о фактах утечек) и субъектов; оборотные штрафы за утечки (ст. 13.11 КоАП РФ с 2024–2025): для юрлиц до 3% выручки, но не менее 20 млн ₽ и не более 500 млн ₽ (за повторную утечку).
|
||||
- **Уничтожение ПДн** (ст. 21): по достижении целей, при отзыве согласия, по требованию субъекта.
|
||||
|
||||
## GDPR (ЕС)
|
||||
|
||||
- **Сфера действия** (ст. 3): обработка в ЕС; или предложение товаров/услуг субъектам в ЕС; или мониторинг поведения субъектов в ЕС. → Для продуктов, работающих с пользователями из ЕС, GDPR применим независимо от места нахождения компании.
|
||||
- **Роли**: контролёр (определяет цели/средства), обработчик (по поручению). SaaS-провайдеры обычно обработчики; требуются **DPA** (Data Processing Agreement).
|
||||
- **Правовые основания** (ст. 6): согласие, договор, правовое обязательство, жизненно важные интересы, публичный интерес, **законный интерес** (legitimate interest — требует балансового теста LIA).
|
||||
- **Согласие** (ст. 7): свободное, конкретное, информированное, однозначное; отзыв так же прост, как предоставление; для детей — согласие родителей (ст. 8).
|
||||
- **Права субъектов** (ст. 15–22): доступ, исправление, удаление (right to be forgotten), ограничение, переносимость (portability), возражение, отказ от автоматизированных решений (profiling).
|
||||
- **Обязанности**: записи обработки (ст. 30), уведомление об утечках в течение 72 часов (ст. 33), уведомление субъектов (ст. 34), **DPIA** — оценка влияния на защиту данных для высокорисковых обработок (ст. 35), **DPO** — ответственный за защиту данных для определённых операторов (ст. 37), privacy by design/by default (ст. 25).
|
||||
- **Трансграничная передача** (ст. 44–49): решения об адекватности (adequacy), SCC (стандартные договорные оговорки), BCR, исключения.
|
||||
- **Штрафы** (ст. 83): до 20 млн евро или 4% мирового оборота (большее из двух) за тяжкие нарушения; до 10 млн евро / 2% — за остальные.
|
||||
|
||||
## Применение к продуктам и сервисам
|
||||
|
||||
- **Cookies и трекинг**: согласие на необязательные cookies (ePrivacy / Директива 2009/136; в РФ — требования к cookie-баннерам формируются практикой Роскомнадзора и законом о «cookie» в стадии регулирования — уточнять актуальное).
|
||||
- **Аналитика** (Google Analytics, Яндекс.Метрика): обработка ПДн; нужны основания и (для ЕС) проверка легальности передачи (решения судов ЕС по Schrems II — SCC + доп. меры).
|
||||
- **Мобильные приложения**: политика конфиденциальности, разрешения, согласия, возрастные ограничения (COPPA в США, GDPR ст. 8, 152-ФЗ + закон о защите детей от вредной информации).
|
||||
- **SaaS/B2B**: DPA с клиентами, журналирование, локализация данных, порядок исполнения запросов субъектов.
|
||||
- **Локализация баз данных (РФ)**: операторы обязаны записывать/систематизировать ПДн граждан РФ в базах на территории РФ (ст. 18 ч. 5 152-ФЗ) — при сборе через интернет.
|
||||
|
||||
## Чек-лист для продукта
|
||||
|
||||
1. Какие ПДн собираются и зачем (цели)?
|
||||
2. Есть ли правовое основание (согласие/договор/законный интерес)?
|
||||
3. Составлена ли политика конфиденциальности и получено ли согласие (форма)?
|
||||
4. Уведомлён ли Роскомнадзор (если требуется)?
|
||||
5. Соблюдена ли локализация баз данных (РФ)?
|
||||
6. Что происходит при запросе субъекта (доступ/удаление)?
|
||||
7. Урегулирована ли передача данных за границу (ЕС — SCC/adequacy; РФ — перечень РКН)?
|
||||
8. Есть ли DPA с подрядчиками/хостингом?
|
||||
9. Как реагируем на утечки (72 часа GDPR, уведомление РКН)?
|
||||
Reference in New Issue
Block a user