dab3f35079
Phase 0 of the handoff plan, as a marketplace rather than a flat skills/ directory. Content moved out of the LyraResearch archive and depersonalised: addresses stay in the archive, recipes ship. - plugins/ue-design-skills: 17 skills, 232 failure-mode entries, each with the six required fields; catalog.json as the harness-neutral source of truth and .claude-plugin/ as one adapter over it. - _gate: 16 rules, one poisoned fixture per rule, plus surface coverage so a declared file cannot silently miss the line rules. - ADR-0002 (harness-neutral bundle behind a marketplace) and ADR-0003 (split licensing: CC BY-ND 4.0 prose, Apache-2.0 code and metadata). - LICENSE files at both levels, CONTRIBUTING.md, docs/licensing-options.md as the material the licence decision grew from. Verified: gate.py 0 violations; test_gate.py 16/16 rules redden on their fixtures with a clean baseline and 2 root files reaching the line rules. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
237 lines
19 KiB
Markdown
237 lines
19 KiB
Markdown
# Выбор лицензии: варианты и что они означают
|
||
|
||
**Статус:** ~~решение не принято~~ — **решено 2026-09-03**,
|
||
[ADR-0003](architecture/decisions/0003-split-licensing-prose-and-code.md): проза
|
||
бандла CC BY-ND 4.0, код и метаданные Apache-2.0, правообладатель — MagentaDolphin.
|
||
Документ сохраняется как материал, из которого решение выросло: §§1–6 ниже описывают
|
||
состояние **до** выбора, включая отсутствовавший тогда `LICENSE`. Читать как разбор
|
||
вариантов, не как состояние репозитория.
|
||
**Открытый вопрос:** №2 из `handoff.md` — закрыт.
|
||
**Это не юридическое заключение.** Автор документа не имеет квалификации его дать.
|
||
|
||
---
|
||
|
||
## 0. Состояние на сейчас
|
||
|
||
| Что | Значение |
|
||
|---|---|
|
||
| Файл `LICENSE` в репозитории | отсутствует **[изм]** |
|
||
| `README.md:25` | «TBD (планируется MIT)» **[изм]** |
|
||
| `plugin.json` → `author.name` | `"ue-design-skills"` — заглушка, автором значится сам бандл **[изм]** |
|
||
| Поле `license` в манифестах | отсутствует; удалено намеренно (ADR-0002) **[изм]** |
|
||
| Правообладатель | **не определён** |
|
||
|
||
Лицензируемый объект сегодня — бандл `plugins/ue-design-skills`: ~19 000 строк
|
||
авторской прозы, 232 записи с рецептами обнаружения, 335 блоков кода (в
|
||
подавляющем большинстве — команды поиска и публичный API движка), плюс скрипт
|
||
гейта `_gate/` на Python.
|
||
|
||
Через фазу 1 к этому добавится **C++-модуль UE и MCP-сервер**. Это меняет расчёт
|
||
и разобрано в §6.
|
||
|
||
---
|
||
|
||
## 1. Требования владельца, переведённые в лицензионные термины
|
||
|
||
Сформулировано владельцем:
|
||
|
||
> Свободное использование студиями · упоминание имени, в том числе в титрах ·
|
||
> никакого форка в чужие продукты без разрешения, тем более коммерческие ·
|
||
> никаких претензий на игры и код, созданные с помощью инструмента.
|
||
|
||
В терминах, которыми оперируют лицензии:
|
||
|
||
| № | Требование | Лицензионный термин |
|
||
|---|---|---|
|
||
| **R1** | студии, включая коммерческие, пользуются свободно | грант на **use**, без ограничения по коммерческому характеру |
|
||
| **R2** | имя указано, в том числе в титрах игры | **attribution**, причём с триггером на *использование*, а не на распространение |
|
||
| **R3** | нельзя форкать в свой продукт без разрешения | запрет на **Share Adapted Material** / **redistribution** |
|
||
| **R4** | претензий на созданное с помощью инструмента нет | явная **output clause** |
|
||
|
||
---
|
||
|
||
## 2. Главное различие, вокруг которого всё вращается
|
||
|
||
**Использование — не распространение.** Почти все лицензионные обязанности
|
||
привязаны ко второму.
|
||
|
||
- Студия читает скилы, проектирует по ним систему, выпускает игру. **Ничего
|
||
вашего наружу не ушло.** Ни одна лицензия здесь ничего не требует.
|
||
- Студия берёт бандл, переписывает под себя и публикует как свой продукт. **Вот
|
||
здесь** лицензия работает, и здесь живёт R3.
|
||
|
||
Отсюда следствие, которое важно принять до выбора строки в таблице:
|
||
|
||
> **R1 и R3 совместимы** — они про разные действия. Свободно пользоваться и не
|
||
> иметь права перевыпускать — нормальная, часто встречающаяся конструкция.
|
||
>
|
||
> **R2 в лицензионной форме недостижим.** Ни одна из существующих лицензий не
|
||
> обязывает упоминать автора в титрах игры, при создании которой инструмент
|
||
> просто использовали. Обязанность атрибуции срабатывает при распространении
|
||
> копии, а копия здесь не распространяется. **[выв]**
|
||
|
||
Это не придирка к формулировке. Это разница между «в лицензии написано» и «есть
|
||
механизм, который заставит».
|
||
|
||
---
|
||
|
||
## 3. Требование R2: чем его закрывают на практике
|
||
|
||
Раз лицензия не даёт, перечислю то, что даёт — по убыванию силы.
|
||
|
||
| Механизм | Как работает | Чего стоит |
|
||
|---|---|---|
|
||
| **Договор** | студия подписывает условия использования, где атрибуция в титрах — обязательство | требует переговоров с каждой студией; убивает «скачал и работай» |
|
||
| **Двойное лицензирование** | бесплатная лицензия с ограничением + платная/свободная по запросу, в обмен на атрибуцию | рабочая схема, но это уже бизнес-процесс, а не файл в репозитории |
|
||
| **Пункт-рекомендация в README** | «если это помогло — упомяните в титрах» | ноль принуждения, ненулевой эффект; студии этим пользуются добровольно чаще, чем кажется |
|
||
| **Историческая advertising clause** (BSD-4-Clause) | требовала упоминания «во всех рекламных материалах» | пункт признан вредным и отозван Беркли; вызывает несовместимость и отказ юротделов |
|
||
| **Атрибуция при распространении** (CC BY / Apache NOTICE) | обязательна, но только когда копию передают дальше | закрывает форки и маркетплейсы, **не** закрывает титры игры |
|
||
|
||
Практический вывод: атрибуция в титрах достижима как **норма сообщества плюс
|
||
условие для тех, кто просит расширенных прав**, а не как строка лицензии. **[выв]**
|
||
|
||
---
|
||
|
||
## 4. Кандидаты против четырёх требований
|
||
|
||
Легенда: ✅ даёт · ⚠️ даёт частично · ❌ не даёт или противоречит.
|
||
|
||
| Лицензия | R1 свободное использование | R2 титры | R3 запрет форка | R4 выход свободен | Что это на самом деле означает |
|
||
|---|---|---|---|---|---|
|
||
| **MIT** | ✅ | ❌ | ❌ | ✅ | Форк в коммерческий продукт разрешён явно. Прямо противоречит R3 |
|
||
| **Apache-2.0** | ✅ | ⚠️ `NOTICE` при распространении | ❌ | ✅ | То же, что MIT, плюс патентный грант и пометки об изменениях. R3 не закрывает |
|
||
| **CC BY 4.0** | ✅ | ⚠️ при распространении | ❌ | ✅ | Сделана для текста, атрибуция реальна — но производные разрешены, включая коммерческие |
|
||
| **CC BY-SA 4.0** | ✅ | ⚠️ | ⚠️ форк разрешён, но обязан остаться открытым под SA | ✅ | Не запрещает форк, а заражает его. Для внутренних вики студий — стоп-сигнал юротдела |
|
||
| **CC BY-ND 4.0** | ✅ | ⚠️ при распространении | ✅ | ✅ | **Ближайшее совпадение по смыслу.** В версии 4.0 адаптации создавать *можно*, нельзя **Share** их. Студия правит под себя внутри — законно; публикует свою версию — нет |
|
||
| **CC BY-NC 4.0** | ❌ | ⚠️ | ⚠️ | ✅ | Запрещает коммерческое использование — отсекает ровно ту аудиторию, которая нужна по R1 |
|
||
| **PolyForm Noncommercial** | ❌ | ❌ | ✅ | ✅ | Та же ошибка, что у NC: блокирует коммерческие студии |
|
||
| **PolyForm Internal Use** | ✅ | ❌ | ✅ | ✅ | «Пользуйтесь для своих нужд, но не поставляйте другим». Точно ложится на R1+R3 |
|
||
| **PolyForm Shield** | ✅ | ❌ | ⚠️ запрещает только конкуренцию с автором | ✅ | Широкое принятие, блокируются лишь прямые конкуренты. Мягче, чем R3 |
|
||
| **CC0 / public domain** | ✅ | ❌ | ❌ | ✅ | Отказ от всего, включая имя |
|
||
| **Проприетарная / своя** | по вашему усмотрению | можно вписать | можно вписать | можно вписать | Единственный способ получить ровно R1–R4. Цена — в §5 |
|
||
|
||
Замечания к таблице:
|
||
|
||
- **CC для кода использовать не следует** — это позиция самой Creative Commons.
|
||
Если выбор уходит в CC-семейство, гейт и будущий C++-модуль всё равно требуют
|
||
отдельной строки.
|
||
- **PolyForm-лицензии не одобрены OSI** — все накладывают ограничение по области
|
||
использования. То же верно для всех CC, кроме CC0/BY/BY-SA.
|
||
- **CC BY-ND 4.0 — не то же самое, что ND 3.0.** В 3.0 создание адаптации было
|
||
за пределами гранта; в 4.0 адаптации явно разрешены, пока их не публикуют.
|
||
Общая страница CC об этом до сих пор пишет по-старому, авторитетен здесь текст
|
||
legal code, а не сводка.
|
||
|
||
---
|
||
|
||
## 5. Три реалистичные комбинации
|
||
|
||
### Вариант A — CC BY-ND 4.0 на тексты, Apache-2.0 на код
|
||
|
||
Что получает пользователь: читает, применяет, правит под себя внутри студии;
|
||
опубликовать свою версию бандла не может; код гейта и будущего плагина берёт
|
||
свободно.
|
||
|
||
- **R1** ✅ · **R3** ✅ · **R4** ✅ · **R2** — только атрибуция при
|
||
распространении, титры остаются просьбой в README.
|
||
- Готовые тексты, ничего сочинять не нужно.
|
||
- Минус: нужно объяснять границу «текст/код» в каждом обсуждении. Минус второй:
|
||
ND-лицензия закрывает и *дружественный* вклад — исправление в вашем тексте
|
||
нельзя опубликовать даже как pull request-форк.
|
||
|
||
### Вариант B — PolyForm Internal Use на бандл, Apache-2.0 на код
|
||
|
||
Формулировка «пользуйтесь для внутренних операций своей компании, но не
|
||
поставляйте другим» ближе к вашей интонации, чем язык авторского права CC.
|
||
|
||
- **R1** ✅ · **R3** ✅ · **R4** ✅ · **R2** ❌ полностью.
|
||
- Минус: лицензия малоизвестна, юротдел студии её читает целиком, а незнакомая
|
||
лицензия чаще приводит к отказу, чем к вопросу. **[гип]**
|
||
|
||
### Вариант C — своя лицензия из четырёх пунктов
|
||
|
||
Ровно R1–R4, включая пункт про титры и пункт «на созданное с помощью инструмента
|
||
претензий нет».
|
||
|
||
- **R1–R4** ✅ на бумаге.
|
||
- Минус, который перевешивает: **каждая студия обязана провести юридическую
|
||
проверку**, а нестандартная лицензия — типовая причина автоматического отказа
|
||
во внутренних политиках. Свободное распространение по R1 упирается ровно в это.
|
||
Плюс текст должен написать юрист, иначе неоднозначность будет толковаться не в
|
||
вашу пользу.
|
||
|
||
---
|
||
|
||
## 6. Что изменится в фазе 1 и почему это важно решить сейчас
|
||
|
||
Сегодня продукт — текст. После фазы 1 в том же репозитории появится **C++-модуль
|
||
UE и MCP-сервер**, то есть код, который студия компилирует внутрь своего
|
||
редактора.
|
||
|
||
Отсюда два следствия **[выв]**:
|
||
|
||
1. **Ограничительная лицензия на исполняемый код бьёт по принятию сильнее, чем
|
||
на текст.** Юротдел, спокойно пропускающий документ с ограничениями, обычно
|
||
гораздо строже к коду, попадающему в сборку.
|
||
2. **Менять лицензию задним числом нельзя** — те, кто уже взял по прежним
|
||
условиям, остаются на них. Поэтому раздельная схема «код свободный, тексты
|
||
ограничены» выгоднее выбрать сразу, чем переигрывать после первого релиза.
|
||
|
||
---
|
||
|
||
## 7. Правообладатель
|
||
|
||
Любой из вариантов начинается со строки `Copyright (c) 2026 <ПРАВООБЛАДАТЕЛЬ>`.
|
||
|
||
| Форма | Когда уместна |
|
||
|---|---|
|
||
| Настоящее имя физлица | автор один; самая простая и внятная форма |
|
||
| Псевдоним / handle | если публичность имени нежелательна; авторство труднее доказывать при споре |
|
||
| Юрлицо | если работа сделана в рамках компании — тогда выбор может быть и не ваш |
|
||
| `<project> contributors` | принято при нескольких авторах; сейчас это описание будущего, а не факт |
|
||
|
||
Имя правообладателя не выводится из содержимого репозитория и не может быть
|
||
подставлено по умолчанию. Требование R2 — про **это** имя, поэтому пока оно не
|
||
названо, R2 не реализуемо ни одним из механизмов §3.
|
||
|
||
---
|
||
|
||
## 8. Слой, который выбором из таблицы не закрывается
|
||
|
||
Содержание бандла выведено из разбора Epic Lyra, распространяемого по UE EULA.
|
||
|
||
Измерено: в поставке нет кода Epic, нет адресов вида `Файл.ext:строка`, нет имён
|
||
с префиксом донора вне блоков `Provenance` (правило гейта P03, ноль нарушений).
|
||
Присутствуют публичные имена API движка — `UPROPERTY`, `TArray`, `FGameplayTag` и
|
||
подобные — и собственные наблюдения об архитектуре. **[изм]**
|
||
|
||
Это существенно снижает риск, но **не является юридическим заключением** и не
|
||
заменяет его. Если релиз публичный — вопрос адресуется человеку с квалификацией.
|
||
Обезличивание, уже сделанное, принималось ради качества продукта; то, что оно
|
||
попутно уменьшает этот риск, — побочный эффект, а не доказательство. **[гип]**
|
||
|
||
---
|
||
|
||
## 9. Что требуется от владельца, чтобы закрыть вопрос
|
||
|
||
1. **Правообладатель** — имя в строку copyright (§7).
|
||
2. **Комбинация** — A, B, C или иная (§5).
|
||
3. **Форма требования о титрах** — просьба в README, условие двойного
|
||
лицензирования, или снятие требования (§3).
|
||
|
||
После этого механическая часть — `LICENSE`, поле `license` в `catalog.json` и
|
||
`plugin.json`, раздел в `README.md`, правило гейта на присутствие файла — делается
|
||
за один заход.
|
||
|
||
---
|
||
|
||
## Источники
|
||
|
||
- [PolyForm Project — исходные тексты лицензий](https://github.com/polyformproject/polyform-licenses)
|
||
- [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0)
|
||
- [License Round-Up — разбор семейства PolyForm](https://writing.kemitchell.com/2021/06/20/License-Round-Up)
|
||
- [CC BY-ND 4.0 — deed](https://creativecommons.org/licenses/by-nd/4.0/deed.en)
|
||
- [CC 4.0 — обращение с адаптациями (wiki)](https://wiki.creativecommons.org/wiki/4.0/Treatment_of_adaptations)
|
||
- [CC — о лицензиях](https://creativecommons.org/share-your-work/cclicenses/)
|
||
- [CC FAQ](https://creativecommons.org/faq/)
|