{
  "updated_at": "2026-07-10",
  "purpose": "Служебная карта ролей близких рабочих страниц портала ТОС БГО.",
  "source_csv": "/data/route_cleanup_candidates.csv",
  "source_doc": "/docs/ROUTE-CLEANUP.md",
  "principle": "Ничего не удалять и не объединять автоматически. Сначала фиксируется роль страницы, затем улучшаются пояснения и перекрёстные ссылки.",
  "allowed_statuses": ["keep", "review", "merge_candidate", "archive_candidate"],
  "allowed_consolidation_statuses": ["ready_for_link_cleanup", "link_cleanup_done", "keep_separate", "blocked_by_manual_review"],
  "groups": [
    {
      "id": "editor-workflow",
      "title": "Рабочий процесс редактора",
      "main": {"route": "/workbench/", "role": "Главный вход в рабочую панель"},
      "related": [
        {"route": "/workbench-routes/", "role": "Короткие сценарии действий"},
        {"route": "/collection-board/", "role": "Локальные статусы сбора материалов"},
        {"route": "/editorial-workflow/", "role": "Подробная инструкция редакционного процесса"}
      ],
      "status": "review",
      "decision": "Сохранить отдельные уровни и улучшать взаимные ссылки.",
      "consolidation": {
        "status": "link_cleanup_done",
        "recommendation": "Оставить /workbench/ единственным главным входом, а три связанные страницы обозначить как сценарии, статусы и подробную методику.",
        "navigation_change": "На связанных страницах добавлена заметная ссылка «Вернуться в рабочую панель» и убраны конкурирующие формулировки главного рабочего входа.",
        "do_not_do": "Не объединять локальную доску статусов с инструкцией и не переносить статусы из браузера в публичную страницу.",
        "preconditions": ["Проверить входящие ссылки", "Сохранить noindex служебных страниц", "Не менять локальное хранение статусов"],
        "completed_at": "2026-07-10",
        "evidence": "Возврат к /workbench/ и отдельные роли защищены audit_route_governance.js."
      }
    },
    {
      "id": "data-update",
      "title": "Актуализация сведений",
      "main": {"route": "/update-tos/", "role": "Публичная передача сведений и материалов"},
      "related": [
        {"route": "/data-update/", "role": "Объяснение состояния актуализации"},
        {"route": "/data-requests/", "role": "Подготовка исходящих запросов"},
        {"route": "/reply-review/", "role": "Разбор полученного ответа"}
      ],
      "status": "review",
      "decision": "Не объединять публичный путь и внутреннюю редакционную обработку.",
      "consolidation": {
        "status": "link_cleanup_done",
        "recommendation": "Сохранить /update-tos/ публичным входом, а /data-requests/ и /reply-review/ явно обозначить внутренними этапами редакции.",
        "navigation_change": "На внутренних страницах добавлены метка «для редактора», возврат в workbench и последовательность: подготовить запрос → получить ответ → проверить → обновить карточку.",
        "do_not_do": "Не выводить внутренние журналы, черновики и непубличные контакты в пользовательскую навигацию /update-tos/.",
        "preconditions": ["Проверить robots/noindex", "Сохранить разделение аудиторий", "Проверить ссылки на конструктор сообщения"],
        "completed_at": "2026-07-10",
        "evidence": "Роли /data-update/, /data-requests/ и /reply-review/ проверяются audit_route_governance.js."
      }
    },
    {
      "id": "verification",
      "title": "Проверка достоверности",
      "main": {"route": "/verification-guide/", "role": "Главная методика проверки данных"},
      "related": [
        {"route": "/verification-tasks/", "role": "Рабочий список задач"},
        {"route": "/verification-control/", "role": "Контроль процесса проверки"},
        {"route": "/chairperson/verify-card/", "role": "Памятка для председателя"},
        {"route": "/verification-levels/", "role": "Объяснение уровней достоверности"}
      ],
      "status": "review",
      "decision": "Сохранить разделение методики, задач, контроля и памятки.",
      "consolidation": {
        "status": "link_cleanup_done",
        "recommendation": "Использовать /verification-guide/ как главную карту процесса, сохранив отдельные рабочие страницы редактора и публичные объяснения для председателя и жителей.",
        "navigation_change": "На главной методике добавлены четыре явно подписанных входа, дочерние страницы получили роли и возврат к методике, а ошибочные ссылки «разобрать ответ» заменены на /reply-review/.",
        "do_not_do": "Не объединять рабочие задачи редактора с публичной памяткой председателю и не упрощать критерии verified.",
        "preconditions": ["Сохранить текущие проверки статусов", "Не менять факты карточек", "Проверить аудит источников"],
        "completed_at": "2026-07-10",
        "evidence": "Роли пяти verification-страниц, noindex внутренних инструментов и отсутствие внутренних ссылок на публичных страницах защищены audit_route_governance.js."
      }
    },
    {
      "id": "technical-control",
      "title": "Аудит и технический контроль",
      "main": {"route": "/site-health/", "role": "Главная управленческая сводка"},
      "related": [
        {"route": "/audit/", "role": "Детальный реестр карточек и локальных статусов"},
        {"route": "/data-quality/", "role": "Публичное качество карточек и данных"},
        {"route": "/open-data/", "role": "Каталог JSON, CSV, RSS и sitemap"},
        {"route": "/github-tasks/", "role": "Ручные GitHub-задачи и блокировки"},
        {"route": "/actions-check/", "role": "Диагностика GitHub Actions и деплоя"}
      ],
      "status": "review",
      "decision": "Оставить site-health главным входом и не смешивать данные, задачи и деплой.",
      "consolidation": {
        "status": "link_cleanup_done",
        "recommendation": "Использовать /site-health/ как единственный обзор состояния, а остальные страницы — как подробные инструменты по конкретной причине отклонения.",
        "navigation_change": "На /site-health/ добавлены четыре блока: данные, технический аудит, GitHub и деплой, открытые файлы. Связанные страницы получили явную роль и возврат к общей сводке.",
        "do_not_do": "Не переносить все таблицы и журналы на одну страницу и не делать /audit/ вторым конкурирующим дашбордом.",
        "preconditions": ["Сохранить нулевой accessibility baseline", "Проверить noindex служебных страниц", "Не менять генерацию site_health"],
        "completed_at": "2026-07-10",
        "evidence": "Единственная роль /site-health/ и возвратные ссылки пяти подробных инструментов защищены audit_route_governance.js."
      }
    },
    {
      "id": "css-maintenance",
      "title": "Сопровождение CSS",
      "main": {"route": "/css-maintenance/", "role": "HTML-карта сопровождения CSS"},
      "related": [
        {"route": "/docs/CSS-MAINTENANCE.md", "role": "Инструкция внутри репозитория"},
        {"route": "/data/css_maintenance_inventory.csv", "role": "Структурированный инвентарь"}
      ],
      "status": "keep",
      "decision": "Сохранить HTML, Markdown и CSV как разные представления одной системы.",
      "consolidation": {
        "status": "keep_separate",
        "recommendation": "Сохранить три формата: HTML для просмотра, Markdown для правил сопровождения и CSV для автоматического контроля.",
        "navigation_change": "Поддерживать взаимные ссылки и одинаковую дату актуализации после реального CSS-этапа.",
        "do_not_do": "Не заменять структурированный CSV текстовой страницей и не публиковать Markdown как основной пользовательский маршрут.",
        "preconditions": ["Зафиксировать visual baseline", "Не менять CSS до evidence_ref", "Синхронизировать статусы после проверки"]
      }
    },
    {
      "id": "action-routes",
      "title": "Практические маршруты действий",
      "main": {"route": "/action-routes/", "role": "Общая карта маршрутов"},
      "related": [
        {"route": "/residents/action-routes/", "role": "Маршруты жителей"},
        {"route": "/chairperson/action-routes/", "role": "Маршруты председателя"},
        {"route": "/partners/action-routes/", "role": "Маршруты партнёров"},
        {"route": "/projects/action-routes/", "role": "Маршруты проекта"},
        {"route": "/needs/action-routes/", "role": "Маршруты потребности"},
        {"route": "/done/action-routes/", "role": "Маршруты результата"},
        {"route": "/calendar/action-routes/", "role": "Маршруты события"},
        {"route": "/create-tos/action-routes/", "role": "Маршруты создания ТОС"}
      ],
      "status": "review",
      "decision": "Не объединять аудитории; общая страница должна оставаться картой входов.",
      "consolidation": {
        "status": "keep_separate",
        "recommendation": "Сохранить общую карту и отдельные маршруты по аудиториям и типам задач; сократить только повторяющиеся вводные блоки и конкурирующие ссылки.",
        "navigation_change": "На /action-routes/ показывать выбор по роли и задаче, а на дочерних страницах — возврат к общей карте и максимум три связанных продолжения.",
        "do_not_do": "Не объединять жителей, председателей и партнёров в один длинный сценарий и не удалять адресные маршруты.",
        "preconditions": ["Проверить все входящие ссылки", "Сохранить уникальную аудиторию каждой страницы", "Не менять URL"]
      }
    },
    {
      "id": "project-kits",
      "title": "Проекты, заявки и шаблоны",
      "main": {"route": "/project-passport/", "role": "Главная онлайн-инструкция по паспорту проекта"},
      "related": [
        {"route": "/grant-application-kit/", "role": "Онлайн-инструкция по конкурсной заявке"},
        {"route": "/meeting-kit/", "role": "Онлайн-инструкция для собрания жителей"},
        {"route": "/documents/templates/project-passport/", "role": "Заполняемая и печатная форма паспорта"},
        {"route": "/documents/templates/project-kit/", "role": "Библиотека заполняемых форм проекта"}
      ],
      "status": "review",
      "decision": "Сохранить рабочие инструкции отдельно от документов для заполнения.",
      "consolidation": {
        "status": "link_cleanup_done",
        "recommendation": "Разделить онлайн-инструкции и документы для заполнения через явные подписи, сохранив /project-passport/ главным рабочим входом.",
        "navigation_change": "Онлайн-страницы получили блоки с заполняемыми формами, а печатные шаблоны — возврат к пошаговым инструкциям. Названия кнопок теперь объясняют формат результата.",
        "do_not_do": "Не объединять HTML-инструкцию с печатным шаблоном и не удалять библиотеку документов.",
        "preconditions": ["Проверить печатные версии", "Сохранить ссылки из grants и projects", "Не менять структуру шаблонов"],
        "completed_at": "2026-07-10",
        "evidence": "Роли пяти проектных страниц, взаимные ссылки и печатные инструменты защищены audit_route_governance.js."
      }
    },
    {
      "id": "media-publication",
      "title": "Фото, публикации и конфиденциальность",
      "main": {"route": "/media-guide/", "role": "Главная инструкция по фото и материалам"},
      "related": [
        {"route": "/privacy/", "role": "Правила персональных данных и публикации"},
        {"route": "/content-standards/", "role": "Редакционные стандарты"},
        {"route": "/publication-templates/", "role": "Готовые форматы публикаций"}
      ],
      "status": "keep",
      "decision": "Не объединять правила, стандарты и шаблоны; поддерживать взаимные ссылки.",
      "consolidation": {
        "status": "keep_separate",
        "recommendation": "Сохранить отдельные страницы для медиа, конфиденциальности, стандартов и шаблонов, связав их единым порядком проверки перед публикацией.",
        "navigation_change": "На каждой странице добавить короткую последовательность: подготовить медиа → проверить права и данные → применить стандарт → выбрать шаблон.",
        "do_not_do": "Не сокращать правила персональных данных до примечания внутри медиа-гайда и не смешивать шаблоны с обязательными правилами.",
        "preconditions": ["Сохранить safety FAQ", "Не ослаблять согласие на публикацию", "Проверить ссылки в submit-materials"]
      }
    }
  ]
}
