Iteration 1: Redesign project and group naming flow
See [parent epic](https://gitlab.com/groups/gitlab-org/-/epics/12504#modernize-gitlab-project-and-group-naming-restrictions) for full context. ## Problem GitLab's current naming flow creates unnecessary friction for users: - **Hidden complexity**: UI treats name and slug as a single field, but backend separates them. This causes confusion when characters are silently transformed. - **Blanket restrictions**: Container registry and SAML/SCIM rules apply to ALL users, even when these features aren't enabled. - **Poor error communication**: Messages don't explain which field has the issue, why restrictions exist, or how to fix them. - **Inconsistent patterns**: Projects and groups have different validation rules and error messages despite being conceptually identical. ## Solution Redesign the naming flow to **separate name from slug at the UI level** while keeping backend unchanged: 1. **Visual separation**: Make name and slug two distinct input fields with clear purposes 2. **Conditional validation**: Only show warnings relevant to user's configuration (registry enabled, SAML configured, etc.) 3. **Better error messages**: Explain what's wrong, why it matters, and how to fix it 4. **Unified experience**: Identical components and messaging for projects and groups **Key insight**: Most restrictions are feature-specific (Container Registry OCI spec, SAML provider quirks), not fundamental GitLab requirements. By detecting which features are enabled, we can drastically reduce unnecessary validation errors. ## Value **User Impact:** - 60-70% reduction in validation errors - 40-50% reduction in naming-related support tickets - 30% faster project/group creation - Clear understanding of why restrictions exist **Technical:** - Zero backend changes required - Works within existing constraints - Reduces technical debt from workarounds ## Design Proposal ![Screenshot_2026-01-30_at_15.36.24](/uploads/354b39a380cc0893db447fd377482ba8/Screenshot_2026-01-30_at_15.36.24.png){width=818 height=560} ![Screenshot_2026-01-30_at_15.39.12](/uploads/fd43d3d2611c7713ee56dee3adfbe2a9/Screenshot_2026-01-30_at_15.39.12.png){width=706 height=600} ![Screenshot_2026-01-30_at_15.39.26](/uploads/cc835c6272e3fa44a5e2a8db3652bbbf/Screenshot_2026-01-30_at_15.39.26.png){width=817 height=518} ![Screenshot_2026-01-30_at_15.40.08](/uploads/e8873456b9dac25b494afba1eb311fd7/Screenshot_2026-01-30_at_15.40.08.png){width=804 height=600} **Visual Separation** - Split into two visible fields with helper text - Show real-time slug auto-generation - Add visual indicators (blue background for auto-mode) **Conditional Validation** - Detect enabled features (registry, SCIM) - Show warnings only when applicable - Provide "disable feature" action **Better Error Messages** - Rewrite errors with explanations and suggestions - Add "why is this restricted?" documentation links **Unify Groups and Projects** - Identical components and validation logic - Same error messages and helper text ## Reference [Full design specification](https://docs.google.com/document/d/19tTZBpbf2woYluOv1P0eA2pfAwA7qB0QMC-j3SKF4Rs/edit?tab=t.0)
epic