12 KiB
Концепция документации (Strong MVP, без связи с кодом)
1. Область применения
Документ описывает систему работы с документацией как самостоятельный слой.
Включает:
- текущее состояние (as-is)
- целевые сценарии использования
- целевую модель документации
- расширенный frontmatter
- базовую структуру документа
frontmatter + Summary + Details - RAG-слои (без связи с кодом)
2. Текущее состояние (As-Is)
2.1 Источник истины
- Документация хранится в Confluence
- Основная модель — иерархия страниц
- Навигация через дерево страниц
2.2 Структура и связи
- Документы не атомарны
- Одна страница содержит несколько тем
- Используются перекрестные ссылки между страницами
2.3 Ограничения
- Нет типизации документов
- Нет структурированного metadata-слоя
- Связи не формализованы
3. Целевые сценарии использования
3.1 Поиск документации
Пользователь формулирует запрос, например: "как работает создание заказа".
Система должна:
- найти релевантные документы
- отобрать наиболее точные фрагменты
- учитывать тип документа, модуль и сущности
Результат:
- короткий список релевантных документов
- возможность перейти в детали
3.2 Объяснение (Explain)
Пользователь хочет понять:
- как работает компонент
- что делает API
- как устроен процесс
Система должна:
- взять summary документа
- дополнить его деталями из Details
- дать краткое и точное объяснение без лишнего текста
3.3 Поиск по сущности (Entity Lookup)
Пользователь ищет:
- где используется сущность
- какие документы с ней связаны
Система должна:
- найти все документы, где упоминается сущность
- показать связи между ними
3.4 Навигация по документации
Пользователь начинает с одного документа и хочет:
- понять контекст
- перейти к связанным частям
Система должна:
- использовать parent/children
- использовать links
- строить осмысленный путь по документации
3.5 Генерация документации
Система создает новый документ:
- по шаблону
- с корректным frontmatter
- с заполненными разделами
SummaryиDetails
Результат:
- документ сразу пригоден для использования
- соответствует структуре системы
3.6 Актуализация документации
При изменениях документа:
- система должна обновить только нужные части
- сохранить структуру
- обновить frontmatter и Details
Результат:
- документ остается консистентным
- не происходит деградации структуры
3.7 Связывание документации
При создании или обновлении:
- система добавляет связи между документами
- формирует граф знаний
Результат:
- документы не изолированы
- появляется навигация и reasoning
4. Frontmatter (расширенный контракт)
id: api.create_order
type: api_method
name: create_order
title: Create order API
module: orders
layer: application
status: draft
updated_at: 2026-03-20
tags:
- orders
- api
entities:
- Order
- Cart
parent: orders_api
children: []
links:
- type: related_api
target: api.get_order
Назначение ключевых полей
id— стабильный идентификатор документаtype— тип документаtitle— человекочитаемое имяmodule— модуль или bounded contextlayer— слой системыstatus— состояние документаupdated_at— дата последнего обновленияtags— фильтрация и поискentities— база для entity lookupparent/children— иерархияlinks— граф связей
Все сведения о связях, сущностях и навигации должны храниться во frontmatter. В теле документа отдельные разделы для связей, сущностей и навигации не создаются.
5. Структура документа (целевая)
Каждый документ состоит из двух смысловых слоев:
- frontmatter
- контент
Контент документа всегда состоит из двух обязательных разделов:
# Summary# Details
5.1 Общие правила структуры
SummaryиDetailsвсегда имеют заголовок уровня#- других заголовков первого уровня в документе быть не должно
Summaryостается кратким и пригодным для explainDetailsзаменяет прежние разделыContextиОсновное описание- внутренняя структура
Detailsзависит от типа документа
5.2 Summary
Краткое описание на 3-6 строк. Используется для explain, краткого ответа и быстрого понимания сути документа.
5.3 Details
Раздел содержит полное содержательное описание документа. Состав подразделов определяется типом документа.
6. Типовая структура Details для API
Для документов типа api_method раздел # Details должен содержать следующие подразделы:
## Описание## Сценарий## Функциональные требования## Нефункциональные требования## Контракт
6.1 Описание
Короткое описание сути метода:
- какую работу он выполняет
- для чего предназначен
6.2 Сценарий
Сценарий описывается в формате технического use case и включает:
- название
- предусловия
- триггер
- основной сценарий
- альтернативный сценарий
- обработку ошибок
- постусловие
Правила для сценария:
- сценарий должен быть лаконичным
- сценарий должен быть читаемым человеком
- в сценарии фиксируется суть шага, а не полная техническая реализация
- если условие можно выразить одним предложением, его допустимо оставить в сценарии
- если шаг требует детального описания формирования запроса, обработки ответа или внутренней логики, детали выносятся в функциональные требования
6.3 Функциональные требования
Функциональные требования описываются как последовательность требований внутри одного документа.
Формат:
FR-1FR-2FR-3
Правила:
- идентификаторы локальны для документа
- на них нельзя ссылаться извне как на сквозные идентификаторы
- каждое требование описывает отдельный обязательный аспект реализации
6.4 Нефункциональные требования
Нефункциональные требования описываются аналогично функциональным.
Формат:
NFR-1NFR-2NFR-3
Детальный формат записи может быть уточнен правилами конкретного проекта.
6.5 Контракт
Контракт должен быть пригоден для последующей сборки OpenAPI-спецификации.
Контракт описывает:
- входные параметры метода API
- выходные параметры
- структуру сообщения, как правило JSON
- обязательность полей
- типы полей
- ограничения на размер и формат
- назначение полей
- правила заполнения полей
- примеры данных
7. Базовая структура Details для остальных типов документов
Для всех типов документов, кроме api_method, на текущем этапе обязателен минимум:
# Summary# Details
Дополнительные рекомендации по внутренней структуре Details для logic_block, architecture_overview, domain_entity и других типов будут заданы отдельно.
8. RAG слои (только документация)
D0 — Чанки документов
Полный текст + разбиение.
D1 — Каталог документов
idtypetitlemoduletags
D2 — Индекс фактов
Факты, извлеченные из документов.
D3 — Каталог сущностей
- сущности
- документы, где они используются
D4 — Индекс сценариев (Workflow)
- последовательности действий
- пользовательские сценарии
D5 — Граф связей
- связи между документами
9. Итог
Система документации:
- атомарные документы
- строгий frontmatter
- единая структура
Summary + Details - типовые правила для API-документов
- разделенные RAG-слои
Это позволяет:
- точно искать
- объяснять
- строить навигацию
- генерировать и обновлять документацию