Task: Add forced and automatic URI transliteration update for Concept

Add forced and automatic URI transliteration update for Concept

27.08.2026fi1osof.ru

Add a manual Concept transliteration update button and automatically maintain human-readable URLs (ChPU) upon content creation/update.

Context

Architectural source of truth: Human-readable URI system in haih-agent maintains address stability and SEO signals.

On fi1osof.ru, Concepts are becoming the primary public SEO/GEO pages. Human-readable URLs (ChPU) must systematically correspond to the current name/content of the Concept and not depend on whether the user remembered to manually update the URI.

What needs to be done

1. Forced transliteration update button

In the Concept editing interface, add an explicit action, such as "Update URI / transliteration".

It should:

  • recalculate the human-readable URI using the current slugify/transliteration rule;
  • display/apply the new URI;
  • use the shared URI change mechanism so the old address is preserved via a 301 redirect;
  • correctly handle collisions of the new URI.

This is necessary for already existing Concepts and cases where it is required to explicitly rebuild an old or poor slug.

2. Automatic transliteration on create/update

When creating a Concept, the URI should be automatically generated from the current name using the general ChPU logic.

When updating a Concept, it is necessary to automatically update the transliteration/slug in cases where the name or another field on which the URI depends has changed.

Do not duplicate the slugify algorithm on the frontend: use the shared haih-agent server function.

When changing the URI, the existing old URI → 301 → new URI mechanism must be used.

It is important not to create endless churn mechanics: if the calculated URI matches the current one, change nothing.

SEO meaning

The Concept name is one of the main semantic signals of the page. The URI must reflect the current topic so that:

  • keywords are present in the URL;
  • new Concepts are created immediately with human-readable URLs instead of CUIDs;
  • a renamed Concept does not remain forever with an old meaningless slug;
  • canonical URLs and internal links remain consistent;
  • old addresses retain accumulated signals via 301 redirects.

Acceptance criteria

  • The Concept editor has a button for forced recalculation of the URI/transliteration.
  • When creating a Concept, the human-readable URL is generated automatically.
  • When changing the name, the URI is automatically brought to the current slug according to the agreed rule.
  • The shared server-side slugify/transliteration logic of haih-agent is used.
  • When changing the URI, a 301 redirect from the old address is automatically created/used.
  • Re-saving without changing the target slug does not change the URI.
  • A new URI collision is handled safely and explicitly.
  • Regression tests have been added for create, rename, forced refresh, unchanged slug, and collision.