# Композиция моделей для нового Измерения компании WM-XCT-040 Model Composition Resolution, 0.1.0. Общий контракт и эталонная реализация. Модель отвечает на вопрос: какие точные версии моделей выбраны для этого Измерения, кто разрешил их использование, какие зависимости обязательны, какие байты проверены и какие данные уже можно записывать. Это один контракт композиции. Он не заменяет ядро Vercy, модели Компании, Юрлица, Подразделения или Сотрудника. Публикация доступна для использования и дальнейшего рецензирования. Уровень исследования: `reviewable-draft`. Полная корпоративная архитектура и универсальная совместимость не заявляются. Состояние независимых проверок и оставшиеся ограничения находятся в исследовательском досье. ## Состав - `model-spec.md`: граница, типы, связи, состояния, права, время, мастерство данных, миграции. - `field-catalog.json`: поля с типами, обязательностью, источниками и владельцами. - `whole-object-coverage.json`: пять аспектов для каждого из девяти типов контракта. - `composition-plan.schema.json`, `policy.schema.json`: исполняемые схемы JSON Schema 2020-12. - `composition.py`: проверка точного состава и создание пакета проверенных файлов. - `bootstrap_dimension.py`: создание только нового Измерения через доверенную локальную копию Vercy skill. - `crosswalk.json`, `kernel-boundary-decision.json`: сопоставления с существующими моделями и решение о границе. - `examples/`: вымышленные сценарии, политики, точные версии и копии опубликованных пакетов. - `test-results.json`, `acceptance-results.json`: фактические результаты испытаний. ## Быстрый воспроизводимый пример Распакуйте полный пакет. Нужны Python 3.12+ и `jsonschema[format-nongpl] >=4,<5`. Путь к Vercy skill задаётся явно: используйте доверенную локальную копию из официального Vercy. Composer сам не скачивает и не исполняет код из пакетов. ```text python -m pip install "jsonschema[format-nongpl]>=4,<5" python test_composition.py python acceptance.py --skill /trusted/vercy/skills/vercy --report acceptance-local.json ``` `acceptance.py` создаёт временные тестовые Измерения и удаляет только свои временные данные после проверки. В нём явно запускается проверенный пример валидатора вложенных данных. Обычный Composer такой код автоматически не запускает. Чтобы оставить отдельное учебное Измерение: ```text python composition.py validate examples/startup/plan.json --assets examples/assets --policy examples/startup/policy.json --lock examples/startup/current.lock python composition.py stage examples/startup/plan.json --assets examples/assets --policy examples/startup/policy.json --lock examples/startup/current.lock --target /existing-parent/startup-stage python bootstrap_dimension.py --stage /existing-parent/startup-stage --policy examples/startup/policy.json --lock examples/startup/current.lock --skill /trusted/vercy/skills/vercy --target /existing-parent/startup-dimension --name "Synthetic startup" --namespace urn:dimension:synthetic:startup ``` Замените пути на свои. Родительский каталог должен существовать, конечные каталоги должны быть новыми. `--namespace` должен точно совпадать с `dimensionId` плана и независимой политики. Bootstrap создаёт структуру и реестры; данные организации вы добавляете отдельно. Проверка `acceptance.py` показывает такой пример. ## Использование для своей компании Вымышленные политики из примеров не дают полномочий работать с вашей компанией. Владелец Измерения отдельно задаёт идентификатор, исполнителей, цель, разрешённые модели, источники и срок действия политики. План ссылается на SHA-256 этой политики и исходного lock-файла. Обновление этих документов требует пересчёта соответствующих контрольных сумм. Для каждой выбранной модели укажите точную версию, SHA-256 и размер спецификации и AGENTS.md. Разделите обязательные зависимости `requires` и необязательные ссылки `references`. Замкнутый состав включает все обязательные зависимости, объявленные в плане, и исключает лишние относительно этого графа пакеты. Зависимости не извлекаются автоматически из текста спецификаций. Циклы, неоднозначные версии и конфликты пространств имён отклоняются. Режим `semantic-only` позволяет хранить и использовать семантическую спецификацию. Он не объявляет схему фактов готовой. Для `native-binding` отдельно укажите runtime-схему, привязанную к точным байтам спецификации. Для вложенного снимка также нужны закрытая схема данных и отдельный предметный валидатор. Успешная проверка V3 не заменяет проверку содержимого вложенного объекта. Учебные планы имеют ограниченный срок: до конца 2026 года. После истечения можно проверить исторический состав через `validate --at` с датой действия плана. Для нового создания нужна новая действующая политика и новый план; историческая дата не разрешает запись. ## Что подтверждают сценарии | Сценарий | Проверено | Граница | |---|---|---| | Startup | Новый Dimension, Organization, объект и факт имени, V3 | Только имя; не вся схема организации | | Group | Organization с данными и Organizational Unit как семантический пакет | Подразделение не получает выдуманную runtime-схему | | AI team | Organization и опубликованный пример Performance Case, V3 и отдельный вложенный валидатор | Синтетический пример, не система реальной оценки людей | Во всех сценариях повторное создание поверх существующего Измерения отклоняется с сохранением данных. ## Миграция и восстановление Реализация создаёт только новые Измерения. Для существующего Измерения нужен отдельный план миграции с резервной копией, анализом потерь и преобразованием данных. Автоматическое обновление и понижение версий не поддерживаются. Обычная ошибка убирает только временный каталог операции и её блокировку. При аварийном завершении процесса сначала проверьте владельца оставшейся блокировки, отсутствие активного процесса и квитанцию. Не удаляйте блокировки вслепую. Переименование каталога служит точкой активации на проверенной локальной файловой системе; распределённая транзакция и устойчивость к потере питания не заявляются. Контракт не реализует корпоративную IAM, проверку цифровых подписей издателей, ELMM minimum-version selection, исполнение всех правил предметных моделей или изменение действующих Измерений. Эти ограничения не скрываются за отметкой `published`. Спецификации принимаются только в формате JSON либо JSON с одной начальной строкой `#`, то есть в используемой Vercy JSON-совместимой форме YAML. Произвольный YAML отклоняется. Три пакета из примеров проверены по байтам с опубликованными версиями ver.cy. Поддерживаемый preset этого адаптера: `commercial-company`. Примеры воспроизводимы с текущими планами до 31 декабря 2026 года; далее нужны новые политика и план. Копии семантических спецификаций и AGENTS.md сохраняют источник. Минимальная схема имени Organization создана для этого выпуска; пример Performance использует уже опубликованную эталонную привязку. Наличие вложенной схемы и валидатора обязательно, но их исполнение остаётся отдельным шагом и не выполняется автоматически при создании Измерения. Подтверждение активации относится к Windows и процессам, соблюдающим блокировку. Испытания запускаются обычным Python, без `-O`: оптимизированный режим явно отклоняется. Вложенный валидатор в испытании загружается из установленной копии, а его SHA-256 записывается в отчёт.