Где взять спецификацию
Руководство объясняет, как пользоваться макетами. Точные правила лежат в нормативных комплектах Framework:
- Recipe (стандарт
simai.composition-recipe) — описание алгоритма, схемы Recipe, входов и перечня зависимостей, лимиты, контрольные примеры с ожидаемым результатом и lock-файл с отпечатками всех нормативных файлов. - Composition Regions, Composition Routing, поля редактора — отдельные комплекты для областей, маршрутов и полей свойств. Комплект Composition Routing — редакция 1.1.0: тип значения в нём называется без версии, а прежняя метка с версией читается до 2026-12-01 (Имя типа).
Комплекты лежат в поставке ui (distr/core/contracts/composition-*) и в каталоге
документации для ИИ (/ai/standards/composition-recipe/<версия>/); корневой
индекс находит их по идентификатору
urn:simai:framework:composition-recipe:specification. Каталог — это знание,
а не разрешение менять сайт: доступ к данным и публикацию контролирует
проект.
Комплект Recipe на сайте документации:
| Файл | Что проверяет |
|---|---|
| описание алгоритма | полный алгоритм сборки; его читают первым |
| схема Recipe | сам план сборки |
| схема входов | снимок разрешённых данных и настроек проекта |
| файл фиксации | точные отпечатки всех нормативных файлов |
| пример шапки | ожидаемые Document и перечень зависимостей для обоих вариантов шапки |
| имена форматов | обе формы имён форматов и профиля канонизации, digest формы без версии |
Редакция 1.1.0 принимает имена форматов без версии. Схемы Recipe, манифеста шаблона, входов и перечня зависимостей принимают обе формы:
- прежнюю метку
simai.composition.<имя>.v1— безschema_versionили с"schema_version": 1; - имя без версии
simai.composition.<имя>— только вместе с"schema_version": 1.
Профиль канонизации называется simai.recipe.canonical-json.v1 или
simai.recipe.canonical-json: это одно имя алгоритма, байты и digest от
выбора имени не зависят. Сборщик принимает в
executionContract.canonicalization любое из двух имён и повторяет его в
перечне зависимостей; без имени пишет прежнее, другое имя даёт ошибку
incompatible_profile.
Форма рецепта решает форму результата. Рецепт в прежней форме даёт те же
байты Document и те же digest, что фиксирует редакция 1.0.1, — пример шапки не
изменился и записан в прежней форме. Рецепт без версии в имени даёт Document
(simai.composition.document) и перечень зависимостей
(simai.composition.dependencies) без версии в имени; их digest отличается
только потому, что отличается поле schema, и записан в примере имён
форматов. Поэтому sf-upgrade не переписывает сохранённые рецепты, манифесты
шаблонов и входы: их переводит владелец, когда готов к новым digest.
Алгоритм, ограничения и схемы значений в 1.1.0 те же, что в 1.0.1.
По контрольному примеру можно проверить собственный сборщик или убедиться,
что ИИ не придумал поле, тип узла или способ получения данных. В примере шапки
настройка headerMode выбирает шаблон; источник второго варианта не
читается:
Значение headerMode |
Используемый шаблон | Неиспользуемый источник |
|---|---|---|
compact |
header.compact |
header.expanded |
expanded |
header.expanded |
header.compact |
Сравните свой результат с ожидаемыми Document и перечнем зависимостей, прежде чем подключать сборку к сайту. Комплект открывают, когда создают Recipe в своём проекте, пишут адаптер продукта или передают задачу ИИ (Работа с ИИ).
Место Recipe среди стандартов Framework и требования, которые на него
опираются, описаны в Recipe (simai.composition-recipe).