Единый корень документации: docs/ становится documentation/ в 2.49.0
У фреймворка было две папки, означавшие разное и не имевшие общего имени. Версия 2.49.0 сводит их в единый корень documentation/, раскладывает документы по четырём категориям Diátaxis и приносит self-heal через /dr-doctor — ваш репозиторий мигрирует сам, без ручной правки.
Datarim 2.49.0 делает одно структурное изменение — и проводит его последовательно везде: корень документации переименован из docs/ в documentation/. Это ломающее изменение канона, поэтому стоит объяснить, почему переименование папки заслужило bump минорной версии и правило жёсткого перехода.
Проблема: две папки, два смысла, отложенное столкновение
У проекта Datarim фактически было две поверхности документации, которые жили под разными именами и никогда не сводились вместе:
docs/— собственная продуктовая документация фреймворка: getting-started, справочник команд и скилов, разъяснительные материалы.documentation/— база знаний потребителя: архив задач, мандаты, инфраструктурные заметки — закоммиченная история проекта, который использует Datarim.
Два корня, два контракта, нет общего словаря. Каждый новый проект должен был усвоить, что «docs» означает одно внутри фреймворка, а его собственная долгосрочная документация уходит совсем в другое место. Drift-детектор видел, что у проекта есть папка docs/, но не имел мнения о её отношении к documentation/. Этот раскол был маленьким налогом, который платил каждый репозиторий — постоянно.
Решение: переименовать и слить под одним корнем
Вместо двух имён 2.49.0 делает documentation/ единым каноническим корнем документации для всей экосистемы. Продуктовые документы фреймворка переезжают внутрь него, разложенные по четырём категориям Diátaxis:
documentation/tutorials/— обучающие пошаговые материалы (getting-started, use-cases)documentation/how-to/— рецепты под задачу (процесс релиза, верификация, журнал эволюции)documentation/reference/— справочники (команды, скилы, CLI, контракт валидатора)documentation/explanation/— фоновые разъяснения (pipeline, consilium, spec-traceability)
Существующая база знаний потребителя не двигается — её архив задач остаётся в documentation/archive/. Переименованные продуктовые документы просто становятся соседями рядом с ним. Чтобы два контракта снова не столкнулись, теперь зарезервированы четыре имени: категорией Diátaxis нельзя назвать archive, evolution, release-audit или ephemeral. Один корень, чёткое разделение, без пересечений.
История git сохраняется целиком — каждый файл переезжает через git mv, так что git log --follow по-прежнему видит коммиты до переименования.
Жёсткий переход — но никогда упрёк без решения
Стратегия совместимости — чистый разрыв: drift-детектор теперь считает репозиторий, всё ещё сидящий на старом docs/, дрейфом. Жёсткий переход честен только тогда, когда то, что он помечает, реально можно починить — помечать проблему без пути починки значит просто ворчать. Поэтому 2.49.0 приносит лекарство в том же релизе.
/dr-doctor получает opt-in проход самопочинки для миграции документации. Наведите его на репозиторий потребителя, всё ещё на docs/ — и он выполнит ту же миграцию, что фреймворк сделал сам себе:
- Определит раскладку — старый
docs/, частично мигрированное состояние или уже мигрированный репозиторий (тогда это чистый no-op). - Мигрирует через
git mv+ раскладку Diátaxis (известные файлы попадают в свою категорию; неизвестные — вhow-to/с пометкой на ревью) + якорную перезапись ссылок. - Проверит результат линтером ссылок — и если хоть одна проверка падает, откатит к точному дореформенному дереву из бэкап-тарбола.
Он идемпотентен (запустите дважды — второй запуск ничего не делает) и безопасен при откате (упавшая проверка никогда не оставит вас наполовину мигрированным). Намеренно это отдельный сосед-инструмент, а не новый режим, прикрученный к доктору операционных файлов — продуктовые документы физически лежат вне служебного каталога состояния фреймворка, и смешение миграции контента с миграцией схемы размыло бы границу, которую фреймворк держит сознательно.
Как мигрировать ваш репозиторий
Если ваш проект всё ещё использует docs/, обновление — это одна opt-in команда:
- Запустите
/dr-doctor; он сообщит о старомdocs/как о доступной миграции. - Примите миграцию; доктор перенесёт документы в
documentation/с раскладкой Diátaxis и перепишет ссылки. - Если проверка после миграции падает, дерево восстанавливается автоматически — ничего не остаётся наполовину сделанным.
Новые проекты, развёрнутые через /dr-init, уже стартуют с documentation/. Там делать нечего.
Почему это важно
Изменение маленькое в диффе и большое в ясности. Единый корень документации означает, что есть ровно один ответ на вопрос «куда положить этот документ?» — продуктовые документы по категории Diátaxis, история проекта под archive/, и то и другое под documentation/. Drift-детектор, скаффолд, мандаты и доктор теперь указывают в одно и то же место. Полную запись смотрите в changelog.