Задача: Добавить принудительное и автоматическое обновление транслитерации URI Concept
Добавить принудительное и автоматическое обновление транслитерации URI Concept
Добавить кнопку ручного обновления транслитерации Concept и автоматически поддерживать ЧПУ при создании/обновлении контента.
Контекст
Архитектурный источник истины: Система человекопонятных URI в haih-agent сохраняет стабильность адресов и SEO-сигналы.
На fi1osof.ru Concepts становятся основными публичными SEO/GEO-страницами. ЧПУ должны системно соответствовать актуальному названию/содержанию Concept и не зависеть от того, вспомнил ли пользователь вручную обновить URI.
Что нужно сделать
1. Кнопка принудительного обновления транслитерации
В интерфейсе редактирования Concept добавить явное действие, например «Обновить URI / транслитерацию».
Оно должно:
- пересчитать человекопонятный URI по актуальному правилу slugify/transliteration;
- показать/применить новый URI;
- использовать общую механику смены URI, чтобы старый адрес сохранился через 301;
- корректно обработать collision нового URI.
Это нужно для уже существующих Concepts и случаев, когда требуется явно пересобрать старый или неудачный slug.
2. Автоматическая транслитерация при create/update
При создании Concept URI должен автоматически формироваться из актуального name по общей логике ЧПУ.
При обновлении Concept нужно автоматически выполнять актуализацию транслитерации/slug в тех случаях, когда изменилось название или другое поле, от которого зависит URI.
Не дублировать алгоритм slugify на frontend: использовать общую серверную функцию haih-agent.
При изменении URI обязательно должна использоваться существующая механика old URI → 301 → new URI.
Важно не создавать бесконечную churn-механику: если рассчитанный URI совпадает с текущим, ничего не менять.
SEO-смысл
Название Concept — один из главных семантических сигналов страницы. URI должен отражать актуальную тему, чтобы:
- ключевые слова присутствовали в URL;
- новые Concepts сразу создавались с ЧПУ вместо CUID;
- переименованный Concept не оставался навсегда со старым бессмысленным slug;
- canonical URL и внутренние ссылки оставались согласованными;
- старые адреса сохраняли накопленные сигналы через 301.
Критерии приемки
- В редакторе Concept есть кнопка принудительного пересчета URI/транслитерации.
- При создании Concept ЧПУ формируется автоматически.
- При изменении name URI автоматически приводится к актуальному slug по согласованному правилу.
- Используется серверная общая slugify/transliteration логика haih-agent.
- При смене URI автоматически создается/используется 301 со старого адреса.
- Повторное сохранение без изменения целевого slug не меняет URI.
- Collision нового URI обрабатывается безопасно и явно.
- Добавлены regression-тесты на create, rename, forced refresh, unchanged slug и collision.