# Правила определения путей файлов Текущая happy-path реализация строит путь документа по фиксированному шаблону: `docs////.md` Пример: `docs/orders/pprb/ui_page/orders.ui.list.md` ## Источники атрибутов Для построения пути используются четыре основных атрибута: - `domain` - `application` - `platform` - `doc_type` - `id` как `doc_id` Если атрибуты явно указаны в подразделе `6.x`, нужно использовать их. Если атрибут не указан, он может быть взят из общих метаданных аналитики или определен fallback-логикой. ## Нормализация сегментов Каждый сегмент пути нормализуется одинаково: - значение переводится в lowercase; - все символы, кроме `a-z`, `0-9`, `.`, `_`, `-`, заменяются на `-`; - ведущие и хвостовые `.` и `-` удаляются. Примеры нормализации: - `Payment Status` -> `payment-status` - `UFS Orders` -> `ufs-orders` - `crm.mobile` -> `crm.mobile` ## Значения по умолчанию Если после нормализации сегмент пустой, используются fallback-значения: - корневая папка: `domain`, иначе `application`, иначе `common` - `platform` -> `web` - `doc_type` -> `misc` - `doc_id` -> `untitled` ## Что важно в текущей версии - для корневой папки сначала используется `domain`; - если `domain` не задан, используется `application`; - `sub_domain` сейчас не участвует в построении пути; - операции `create`, `update`, `delete` работают с одним и тем же правилом вычисления пути; - специальных исключений для разных типов документов пока нет; - отдельные каталоги для `pprb`, `ufs`, `web` задаются только через значение `platform`. ## Практическое правило для агента Если нужно предложить или определить путь новой страницы, агент должен: 1. определить `application`; 2. определить `domain`; 3. определить `platform`; 4. определить `doc_type`; 5. определить стабильный `doc_id`; 6. взять корневую папку как `domain`, а если он пустой, то `application`; 7. нормализовать все сегменты; 8. собрать путь по шаблону `docs////.md`.