Design Doc
Сгенерировано из
docs/matrices/fm/design-doc.yaml.
| FM | Элемент | Действие | Поведение | Роли (доступ) | Статус |
|---|---|---|---|---|---|
| FM-024 | Markdown рендер (свой проект) | Просмотр | Документ по разделам | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-025 | Markdown рендер (чужой проект) | Просмотр | Read-only через спейс или share_link | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-026 | Фильтр по специальностям | Toolbar | Только артефакты выбранных специальностей | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-027 | Экспорт .md | Клик «Скачать» | GET /export/design-doc?format=file | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-028 | Редактировать блок | Клик → textarea Markdown с live preview | Per-block editing. Save per-block (debounce 1s). Предыдущая версия → history | guest, employee, spaceman, org_admin | done |
| FM-029 | Сгенерировать блок | Кнопка «Сгенерировать» на блоке | SSE streaming. Контекст: мета проекта, description блока, content_items, полный текст блоков-пререквизитов. По завершении блок в edit-mode | guest, employee, spaceman, org_admin | done |
| FM-030 | Остановить генерацию блока | Кнопка «Стоп» | AbortController. Partial text сохраняется | guest, employee, spaceman, org_admin | done |
| FM-031 | Canvas: выделить текст → корректировка AI | Выделить фрагмент → floating button → промпт | LLM получает: весь текст блока + выделенный фрагмент + инструкция + контекст пререквизитов. Возвращает полный обновлённый блок. Замена целиком, старая версия → history (edit_type=llm_inline) | guest, employee, spaceman, org_admin | done |
| FM-032 | Undo после AI-коррекции | Ctrl+Z или кнопка «Отменить» | Revert к pre-correction версии из history | guest, employee, spaceman, org_admin | done |
| FM-033 | Красная кнопка: сгенерировать весь документ | Кнопка «Сгенерировать весь документ» | Confirm → топологическая сортировка блоков по графу зависимостей → последовательная генерация каждого блока с SSE. Каждый следующий получает контекст пререквизитов. Progress bar: блок X из Y. Старые тексты → history (edit_type=llm_full). Snapshot перед запуском | spaceman, org_admin | done |
| FM-034 | Остановить полную генерацию | Кнопка «Остановить» | Уже сгенерированные блоки сохранены. Текущий — partial save. Статус doc_generating_paused | spaceman, org_admin | done |
| FM-035 | Продолжить полную генерацию | Кнопка «Продолжить» | Начинает с первого несгенерированного блока в topological order. Уже сгенерированные не перегенерируются | spaceman, org_admin | done |
| FM-036 | История версий блока | Навигация ← v3 → на блоке | Inline навигация по версиям. Кнопка «Восстановить» | employee, spaceman, supervisor, org_admin | done |
| FM-037 | Восстановить версию блока | Кнопка «Восстановить» в VersionNav | Создаёт новую запись в history (edit_type=restore). Текущий content заменяется | employee, spaceman, org_admin | done |
| FM-038 | Скачать сгенерированный документ | Кнопка «Скачать .md» | Markdown с реальным контентом из block_doc_content (вместо template checklist). Fallback на checklist если content пуст | guest, employee, spaceman, supervisor, org_admin, site_admin | partial |
| FM-115 | Артефакт — подсекция блока | Просмотр | Каждый артефакт блока отображается как подраздел (####) в документе | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-116 | Сгенерировать оглавление артефакта | Кнопка «Оглавление» на артефакте | POST /:nodeId/artifacts/:contentItemId/generate?mode=outline. LLM генерирует оглавление per-artifact | guest, employee, spaceman, org_admin | done |
| FM-117 | Сгенерировать полный текст артефакта | Кнопка «Полный текст» на артефакте | POST /:nodeId/artifacts/:contentItemId/generate?mode=full. LLM генерирует полный текст per-artifact | guest, employee, spaceman, org_admin | done |
| FM-118 | Редактировать текст артефакта | Клик на ручку → textarea per-artifact | PATCH /:nodeId/artifacts/:contentItemId. Сохранение per-artifact контента | guest, employee, spaceman, org_admin | done |
| FM-119 | Скачать блок .md | Кнопка «Скачать блок .md» в toolbar блока | Экспорт одного блока с artifact content как подразделами | guest, employee, spaceman | done |
| FM-120 | Скачать документ .md | Кнопка «Скачать документ .md» в toolbar | Экспорт всего документа с artifact content как подразделами (####). Расширение FM-027/FM-038 | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-173 | Чипы ролей в DocBlock / Artifact цветом role.color | Просмотр | Полное имя роли + индивидуальный цвет (а не fallback). | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-174 | Основной блок раскрыт по умолчанию, артефакты свёрнуты | UX | Снижает шум при первом открытии документа. | guest, employee, spaceman, supervisor, org_admin, site_admin | done |
Обзор экрана
«Design Doc» — это пояснительный документ проекта. Граф показывает структуру задачи в виде блоков и связей; этот экран превращает каждый блок графа в текстовый раздел и собирает из них полноценный дизайн-документ. Открывается с вкладки «Doc» (▧) в левой панели уже открытого проекта.
Что здесь делают:
- Читают. Документ рендерится блок за блоком; артефакты блока показываются подразделами. Основной блок раскрыт, артефакты по умолчанию свёрнуты — меньше шума при первом открытии. Содержимое подгружается методами весь документ и один блок. Чужой проект (через спейс или share-ссылку) доступен только для чтения.
- Генерируют. Кнопка «Сгенерировать» на блоке пишет его текст потоком (генерация блока); кнопка «Сгенерировать весь документ» в панели проходит по всем блокам в порядке зависимостей (генерация всего документа) с прогрессом, паузой и продолжением. Текст всегда течёт по мере написания.
- Правят. Карандаш (✎) на блоке открывает Markdown-редактор с живым предпросмотром и автосохранением (изменить блок). Выделение фрагмента вызывает точечную правку по инструкции (точечная правка). Любая правка и генерация складывают прежнюю версию в историю — можно откатить.
- Фильтруют и выгружают. Фильтр по специальностям в панели сужает документ до задач выбранных ролей. Кнопка «Скачать документ .md» собирает весь документ в файл (экспорт); можно скачать и один блок.
Кто и что может — определяется ролью и доступом к проекту: владелец генерирует и правит, наблюдатель только смотрит, гость работает в своём проекте. Источник истины по разрешениям — матрица RP.