Редактор коллекции
Сгенерировано из
docs/matrices/fm/collections.yaml.
| FM | Элемент | Действие | Поведение | Роли (доступ) | Статус |
|---|---|---|---|---|---|
| FM-102 | Tab «Общее»: name, description, doc_title | Inline-edit, autosave (debounce 500ms) | description подставляется в промпт как {{domainDescription}}. Подсказка: «Опишите предметную область максимально подробно». Max 5000 chars | org_admin, site_admin | partial |
| FM-103 | Tab «Слои»: CRUD | Inline-форма, drag-to-reorder | id (auto-gen UPPER_SNAKE из display_name), display_name, color picker, sort_order, doc_title (заголовок раздела документа, необязательное; если пусто — используется display_name). Удаление: если есть блоки → ошибка LAYER_IN_USE с предложением перенести | org_admin, site_admin | done |
| FM-104 | Tab «Специальности»: CRUD | Форма: id, name, color, description. Drag-to-reorder | Удаление: модалка с вариантами — осиротить блоки / переназначить на выбранную / авто LLM | org_admin, site_admin | partial |
| FM-105 | Tab «Блоки»: CRUD | Форма: id, name, description, layer_id (dropdown), default_specialties (multi-select), sort_order | Два режима: таблица (группировка по слоям) или визуальный граф (mini-graph preview). При смене layer_id — warning если есть cross-layer связи | org_admin, site_admin | partial |
| FM-106 | Tab «Зависимости»: визуальный редактор | Граф: click source → click target. Или матрица смежности: checkbox | Self-edge блокируется. Cycle detection → визуальная подсветка (warning, не блокирует). Фильтрация по слою при >50 блоков | org_admin, site_admin | partial |
| FM-108 | Tab «Промпты»: 3 стадии + doc_generate | Accordion: decompose, describe, dependencies, doc_generate. Textarea с подсветкой {{placeholders}} | Справочник плейсхолдеров в sidebar. Кнопка «Preview»: промпт с подставленными значениями из текущей коллекции. Save per-stage | org_admin, site_admin | partial |
| FM-109 | Экспорт коллекции | Кнопка «Экспорт JSON» / «Экспорт YAML» | Скачать файл с полной структурой: specialties, layers, blocks, edges, prompts, doc_sections | org_admin, site_admin | todo |
| FM-110 | Удалить коллекцию | Кнопка + confirm | Блокируется если есть привязанные спейсы (COLLECTION_IN_USE). Показать кол-во спейсов в warning | org_admin, site_admin | done |
| FM-125 | SVG граф блоков | Просмотр | Блоки как solid-fill rectangles, цвет по слою. Layer bands с labels. Specialty dots на блоках. Edges между блоками. Zoom/pan, auto-fit | org_admin, site_admin | done |
| FM-126 | Левая панель — специальности | Клик на специальность | Выбор → правая панель: name, description, color. Добавление через inline-форму (name + color picker) | org_admin, site_admin | done |
| FM-127 | Левая панель — слои | Клик на слой | Выбор → правая панель: display_name, color. Badge: количество блоков. Добавление через inline-форму | org_admin, site_admin | done |
| FM-128 | Правая панель — блок | Клик на блок в графе | Editing: name, description, layer (dropdown), default_specialties (multi-select chips), ID (readonly). Save + Delete | org_admin, site_admin | done |
| FM-129 | Правая панель — коллекция (без выделения) | Просмотр | Name, описание домена, doc_title. Статистика: блоков/специальностей/слоёв/связей. Save | org_admin, site_admin | done |
| FM-133 | Описание слоя | Текстовое поле | collection_layer.description — контекст для LLM при перегенерации блоков | org_admin, site_admin | done |
| FM-134 | Кнопка «Перегенерировать блоки» | Клик → SSE | LLM перераскидывает блоки по слоям с учётом descriptions. Сохраняет специальности и слои. prepareForBlockRegen очищает старые блоки/edges перед стримом. | org_admin, site_admin | done |
| FM-163 | prepareForBlockRegen — старые блоки/edges очищаются перед SSE регенерации | (внутреннее) | Гарантирует чистое состояние перед стримом новых блоков. | org_admin, site_admin | done |
| FM-183 | Форма параметров (пере)генерации коллекции | Заполнить промпт + параметры → «Сгенерировать» / «Перегенерировать» | Унифицированная форма параметризации генерации (#170). Поля: промпт/сообщения, диапазоны min/max по осям слоёв / блоков / специальностей, переключатель режима (initial | blocks-only | with-keep), Pro-тоггл (quality pro|fast). Кнопка «Предложить значения» вызывает mode=propose (POST /:id/regenerate) — JSON-предпросмотр без записи в БД. Кнопка «Сгенерировать»/«Перегенерировать» — applied-режим по SSE. При открытии форма hydrate-ится из последней applied-попытки (GET /:id/last-applied-attempt). Валидация min<=max. | org_admin, site_admin | done |
Обзор экрана
Что это. Редактор коллекции — место, где администратор организации правит шаблон декомпозиции: его слои, специальности, блоки и связи между блоками. Открывается кликом по карточке на экране коллекций. Доступен администратору организации и site-admin.
Как устроено. Три панели. Слева — списки специальностей и слоёв коллекции. В центре — SVG-граф блоков: блоки залиты цветом своего слоя, разложены по горизонтальным полосам-слоям, на блоках — точки специальностей, между блоками — стрелки связей; есть зум, панорамирование и авто-вписывание. Справа — панель деталей выбранного элемента (блок, специальность, слой) или, когда ничего не выбрано, — сводка по самой коллекции: имя, описание домена, заголовок документа и статистика по слоям/специальностям/блокам/связям.
Что тут делают.
- Редактируют структуру. Специальности, слои и блоки создают, меняют и удаляют через левую панель и панель деталей. Слой несёт цвет, порядок и необязательный заголовок раздела документа; специальность — имя, цвет, описание; блок — имя, описание, слой и набор специальностей по умолчанию (идентификаторы read-only). Создание — методы create-specialty, create-layer, create-block. Удаление с зависимостями подсказывает варианты: слой с блоками не удалить «вслепую», блоки удаляемой специальности можно осиротить или переназначить.
- Связывают блоки. Связь рисуют кликом «откуда → куда» прямо на графе (create-edge). Петли на себя блокируются, циклы подсвечиваются как предупреждение, но не запрещаются.
- Настраивают промпты. Тексты, по которым LLM разбирает задачу, правятся по этапам (decompose / describe / dependencies / генерация документа): текущие промпты — get-prompts, сохранение этапа — save-prompt, запрос предложенного варианта — suggest-prompt.
- Перегенерируют. Форма параметров (пере)генерации задаёт промпт, диапазоны по слоям/блокам/специальностям, режим (с нуля / только блоки / с сохранением) и Pro-тоггл. Кнопка «Предложить значения» даёт предпросмотр без записи в БД, «Сгенерировать»/«Перегенерировать» запускает потоковую перегенерацию; перед стримом блоков старые блоки и связи очищаются, а специальности и слои сохраняются.