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-ревизии для нового блока — запрещена
-
попытка удалить используемый блок — отклоняется с явной ошибкой
-
отсутствие выбранного блока при открытии редактора — операция не выполняется