# Проверка дублей и служебных маршрутов

Обновлено: 10 июля 2026 года.

## Назначение

На портале ТОС БГО есть публичные, рабочие, редакционные и технические страницы. Некоторые маршруты близки по смыслу, но закрывают разные аудитории или этапы процесса.

Главное правило: ничего не удалять, не объединять и не перенаправлять автоматически. Сначала фиксируется роль каждого URL, затем — безопасное изменение навигации, запреты и предварительные условия.

## Реестр и служебная карта

- `/route-cleanup/` — служебная HTML-карта;
- `data/route_review_summary.json` — основной структурированный реестр ролей и предложений;
- `data/route_cleanup_candidates.csv` — первоначальный список кандидатов и рекомендаций;
- `scripts/audit_route_governance.js` — автоматическая проверка схемы, маршрутов, ролей и выполненных изменений.

HTML-страница имеет `noindex,nofollow` и не добавляется в публичную навигацию.

## Статусы групп

- `keep` — страницы решают разные задачи или дают разные форматы представления;
- `review` — смысл близкий, требуется ясная роль и взаимные ссылки;
- `merge_candidate` — возможное объединение только после проверки функций и входящих ссылок;
- `archive_candidate` — возможный архив только после решения владельца и безопасного плана переноса.

Статус группы не означает автоматическое удаление или редирект.

## Статусы предложений по консолидации

- `ready_for_link_cleanup` — роли определены, можно уточнять ссылки, подписи и возврат к главному входу;
- `link_cleanup_done` — роли и ссылки обновлены, результат имеет дату, доказательство и защищён автоматическим аудитом;
- `keep_separate` — страницы должны остаться раздельными, допустимы только взаимные ссылки и пояснения;
- `blocked_by_manual_review` — до изменения требуется ручная проверка входящих ссылок, фактического использования или владельца процесса.

На 10 июля 2026 года:

- 5 групп имеют завершённую очистку ссылок;
- 0 групп ожидают безопасную очистку ссылок;
- 3 группы должны остаться раздельными;
- кандидатов на автоматическое объединение или архив нет.

## Что содержит предложение для каждой группы

В `data/route_review_summary.json` для каждой группы обязательны:

- `recommendation` — итоговая архитектурная рекомендация;
- `navigation_change` — допустимое изменение ссылок и подписей;
- `do_not_do` — что нельзя объединять или скрывать;
- `preconditions` — проверки до любого изменения;
- `status` — текущая готовность предложения;
- `completed_at` и `evidence` — обязательны для `link_cleanup_done`.

## Группы реестра

### Рабочий процесс редактора

Главный вход: `/workbench/`.

- `/workbench-routes/` — короткие сценарии;
- `/collection-board/` — локальные статусы сбора материалов;
- `/editorial-workflow/` — подробная инструкция.

Состояние: `link_cleanup_done`. `/workbench/` закреплён как единственный главный вход, на связанных страницах добавлены возвратные ссылки и разные роли.

### Актуализация сведений

Главный публичный вход: `/update-tos/`.

- `/data-update/` — публичная сводка состояния актуализации;
- `/data-requests/` — внутреннее формирование исходящих запросов;
- `/reply-review/` — внутренний разбор полученного ответа.

Состояние: `link_cleanup_done`. Публичная передача сведений отделена от редакционной обработки. `/data-requests/` и `/reply-review/` имеют `noindex,nofollow`, метку «для редактора», последовательность этапов и возврат в `/workbench/`.

### Проверка достоверности

Главная методика: `/verification-guide/`.

- `/verification-tasks/` — внутренняя очередь задач редактора;
- `/verification-control/` — внутренний контроль перехода статуса;
- `/chairperson/verify-card/` — публичная памятка председателю;
- `/verification-levels/` — публичное объяснение уровней достоверности.

Состояние: `link_cleanup_done`. Главная методика стала картой процесса, внутренние страницы сохранили `noindex`, публичные страницы не ведут во внутренние очереди, а кнопки «Разобрать ответ» ведут на `/reply-review/`.

### Аудит и технический контроль

Главная управленческая сводка: `/site-health/`.

- `/audit/` — детальный реестр карточек и локальных статусов;
- `/data-quality/` — публичное качество карточек и данных;
- `/open-data/` — каталог JSON, CSV, RSS и sitemap;
- `/github-tasks/` — ручные GitHub-задачи и блокировки;
- `/actions-check/` — диагностика GitHub Actions и деплоя.

Состояние: `link_cleanup_done`. `/site-health/` закреплён как единственная управленческая сводка и содержит четыре входа: данные, технический аудит, GitHub/деплой и открытые файлы. Все связанные страницы получили явную роль и возврат к общей сводке.

### Сопровождение CSS

Главный вход: `/css-maintenance/`.

- `/docs/CSS-MAINTENANCE.md` — инструкция;
- `/data/css_maintenance_inventory.csv` — инвентарь.

Состояние: `keep_separate`. HTML, Markdown и CSV сохраняются как разные представления одной системы. CSS-изменения заблокированы до заполнения visual regression evidence.

### Практические маршруты

Общая карта: `/action-routes/`.

Связанные маршруты разделены по аудиториям и процессам: жители, председатели, партнёры, проекты, потребности, результаты, события и создание ТОС.

Состояние: `keep_separate`. Адресные маршруты сохраняются, допустимо сокращать только повторяющиеся вводные блоки и конкурирующие ссылки.

### Проекты и заявки

Главный онлайн-вход: `/project-passport/`.

- `/grant-application-kit/` — онлайн-инструкция по конкурсной заявке;
- `/meeting-kit/` — онлайн-инструкция для собрания жителей;
- `/documents/templates/project-passport/` — заполняемая и печатная форма паспорта;
- `/documents/templates/project-kit/` — библиотека заполняемых форм проекта.

Состояние: `link_cleanup_done`. Онлайн-инструкции получили понятные ссылки на формы, а печатные шаблоны — возврат к пошаговым страницам. Форма паспорта сохранила печать, копирование и все поля; библиотека сохранила девять документов проекта.

### Фото и публикации

Главная инструкция: `/media-guide/`.

- `/privacy/` — конфиденциальность;
- `/content-standards/` — редакционные стандарты;
- `/publication-templates/` — форматы публикаций.

Состояние: `keep_separate`. Правила, стандарты и шаблоны остаются раздельными и связаны порядком проверки перед публикацией.

## Автоматическая защита

Аудит блокирует CI, если:

- группа не имеет уникального идентификатора;
- используется неизвестный статус группы или предложения;
- у маршрута нет понятной роли;
- главный или связанный URL не существует;
- один URL случайно назначен в несколько групп;
- отсутствует рекомендация, изменение навигации, запрет или предварительные условия;
- группа `keep` не имеет предложения `keep_separate`;
- `ready_for_link_cleanup` или `link_cleanup_done` назначены группе вне `review`;
- завершённая очистка не имеет даты или доказательства;
- `/data-requests/`, `/reply-review/`, `/verification-tasks/` или `/verification-control/` потеряли `noindex`;
- внутренние редакторские ссылки появились в публичной форме `/update-tos/`, на странице уровней или в памятке председателю;
- главная методика проверки потеряла четыре подписанных входа и ссылку на `/reply-review/`;
- `/site-health/` потерял четыре направления контроля или динамические контейнеры отчёта;
- `/audit/`, `/github-tasks/` или `/actions-check/` потеряли служебную роль и возврат к `/site-health/`;
- `/data-quality/` или `/open-data/` стали индексироваться как служебные страницы либо потеряли публичную роль;
- онлайн-страницы проектов потеряли ссылки на заполняемые формы;
- форма паспорта потеряла печать, копирование, поля или возврат к онлайн-инструкции;
- библиотека проекта потеряла одну из девяти форм;
- `/route-cleanup/` потерял `noindex`, связь с JSON или описание статусов.

## Безопасный порядок будущих изменений

1. Новую близкую страницу сначала добавить в реестр.
2. Определить аудиторию, формат и единственный главный вход группы.
3. Проверить входящие ссылки и `noindex`.
4. Не удалять URL и не ставить редиректы без отдельного решения.
5. Запустить ссылки, SEO, accessibility и полный project-mode audit.
6. Для завершённого изменения сохранить дату и доказательство.

## Что можно делать автономно

- уточнять роли страниц;
- улучшать перекрёстные ссылки;
- обновлять JSON и CSV;
- добавлять новые группы после проверки;
- поддерживать завершённые link cleanup через CI;
- фиксировать кандидатов на объединение или архив без выполнения удаления.

## Что требует отдельного решения

- удаление страницы;
- установка редиректа;
- удаление из навигации;
- изменение смысла публичного раздела;
- объединение страниц разных аудиторий;
- перенос URL с существующими входящими ссылками.
