Block Authoring Service Spec

1. Назначение и границы

  • Ответственность функции: управление библиотекой блоков на уровне просмотра, поиска, версий, редактирования, публикации, снятия с использования и удаления.

  • Потребители: BlocksPage.qml, BlocksModel, BlockEditorViewModel.

  • Не входит: пакетная декомпозиция промпта, изменение композиций, удалённый API.

2. Потребители и зависимости

  • Потребители:

  • BlocksModel

  • BlockEditorViewModel

  • Зависимости:

  • Engine.LoadBlock(…​)

  • Engine.ListBlocks(…​)

  • Engine.ListBlockVersions(…​)

  • Engine.PublishBlock(…​)

  • Engine.UpdateBlock(…​)

  • Engine.DeprecateBlock(…​)

  • Engine.DeleteBlock(…​)

  • Engine.GenerateBlockData(…​)

3. Основные методы и действия

На уровне движка:

  • LoadBlock

  • ListBlocks

  • ListBlockVersions

  • PublishBlock

  • UpdateBlock

  • DeprecateBlock

  • DeleteBlock

  • GenerateBlockData

На уровне интерфейса:

  • openCreateEditor

  • openEditor

  • save

  • generate

  • revise

  • deprecateSelected

  • deleteSelected

4. Входные данные

Поля формы блока:

  • идентификатор блока

  • тип блока

  • язык

  • описание

  • комментарий к ревизии

  • теги

  • значения по умолчанию

  • текст шаблона

  • режим увеличения версии (Minor / Major)

AI-входы:

  • инструкция пользователя для генерации

  • инструкция пользователя для ревизии

  • при ревизии — текущие свойства блока как контекст

5. Выходные данные

Видимые пользователю результаты:

  • дерево блоков

  • список версий

  • подробности блока

  • состояние вкладок редактора

  • текст статуса

Результаты движка:

  • PublishedBlock

  • ошибки публикации, удаления и снятия версии с использования

  • GeneratedBlockData

6. Правила контракта данных

  • новая публикация создаёт новую версию блока

  • редактирование существующего блока требует, чтобы блок уже существовал

  • удаление запрещено, если блок используется в композиции

  • значения по умолчанию должны задаваться в формате ключ=значение, по одной паре на строку

  • AI-результат должен быть проверен пользователем до публикации

7. Иерархия источников данных

  • источник истины по опубликованным версиям — хранилище через engine

  • источник истины по текущему редактированию — вкладка редактора

  • источник истины по AI-подсказке — только временное заполнение формы

8. Обработка ошибок и повторы

  • ошибка чтения блока — показывается пользователю без открытия некорректной вкладки

  • ошибка публикации — не очищает форму

  • ошибка удаления — не меняет дерево как будто удаление произошло

  • ошибка AI-генерации — не изменяет опубликованные данные

  • повторы выполняются пользователем вручную

9. Правила выбора пути

  • если AI не настроен, функция работает в полностью ручном режиме

  • если пользователь создаёт новый блок, используется путь публикации нового блока

  • если пользователь редактирует существующий блок, используется путь выпуска новой версии

10. Граничные случаи и поведение по умолчанию

  • пустой идентификатор блока — сохранение запрещено

  • неверный формат значений по умолчанию — сохранение запрещено

  • попытка AI-ревизии для нового блока — запрещена

  • попытка удалить используемый блок — отклоняется с явной ошибкой

  • отсутствие выбранного блока при открытии редактора — операция не выполняется

Связи вверх и вниз

Связи вверх:

Связи вниз: