Reference: IA Naming Normalization (Next.js App Router)
# App Router routes
rg --files -g" app/**/page.{ts,tsx,js,jsx}"
# Layouts and titles
rg --files -g" app/**/layout.{ts,tsx,js,jsx}"
rg " metadata|title:" app
# Nav and IA labels
rg " Nav|Navbar|Navigation|Menu|Sidebar|Breadcrumb|Tabs" app components src
# Component names
rg " function [A-Z]|const [A-Z]" app components src
# API endpoints
rg --files -g" app/api/**/route.{ts,tsx,js,jsx}"
Naming principles (balanced)
Preserve brand terms, normalize structure.
Prefer plain English over internal abbreviations.
Use domain nouns and outcomes (e.g., BillingOverview).
Keep route segments in kebab-case; component names in PascalCase.
Avoid New*, *V2, Temp*, and legacy prefixes.
Create a canonical glossary of approved terms.
Allow synonyms only if required by the business.
Match nav labels to route titles where possible.
Present a naming map.
Confirm rename/deprecate decisions with PM/Design/Eng.
Apply changes only after approval.
Keep legacy aliases during transition.
Add redirects for renamed routes.
Avoid breaking deep links during rollout.
Role-based variants often represent the same view; consolidate to one
canonical name with role gates.
Nav labels and page titles drift over time; align both to the glossary.
Bad-English labels spread quickly once they appear in nav or breadcrumbs.