Next.js Auth View Discovery + Clean Platform Scaffold
Quick start
- Identify router type and entry points.
- Inventory routes, auth boundaries, and roles.
- Run a route naming audit (librarian pass).
- Confirm the view list and new names with the user.
- Derive the platform name and route segment from existing copy.
- Scaffold
app/<platform-segment>public/app layouts. - Add the landing header dropdown link.
- Smoke-test public and auth routes.
Scope
Does:
- Inventory public vs authenticated routes and role gates.
- Confirm view naming and scope before scaffold.
- Create a clean App Router subtree for the new platform.
- Keep legacy routes intact and isolated.
Does not:
- Migrate every legacy screen.
- Change auth logic or delete old code.
Required inputs
Derive before scaffolding (do not ask the user):
platformNameplatformRouteSegmentplatformFolderName(default:platformRouteSegment)landingDropdownLabel(default:platformName)landingDropdownItemLabel(default:platformName)
Rule categories by priority
| Priority | Category | Rules |
|---|---|---|
| 1 | Discovery & confirmation | rules/discovery-auth-views, rules/route-naming-audit, rules/confirm-view-names, rules/platform-naming-derive |
| 2 | Platform scaffold & boilerplate | rules/routing-platform-scaffold, rules/boilerplate-first |
| 3 | Coexistence & entry | rules/coexistence-legacy, rules/landing-header-dropdown |
| 4 | Naming & testing | rules/naming-clean, rules/test-auth-flows |
Output: view inventory template
UserRole: <role name>
Public views (unauthenticated):
- <View Title> -> <route> (source: <file>)
Authenticated views:
- <View Title> -> <route> (source: <file>)
Role-specific views:
- <View Title> -> <route> (role gate: <where>)
Status:
- Recreate in new platform: YES / NO
- Rename required: YES / NO
- New name (if renamed): <confirmed title>
- Active in UI navigation: YES / NO
- Evidence of activity: <nav link | redirect | deep link | comment>
Rules (must follow)
- Boilerplate-first: only scaffold confirmed views.
- Confirmation-first: do not scaffold before view list + naming is confirmed.
- Clean naming: no
New*,*V2,Temp*, legacy prefixes. - Legacy isolation: do not import legacy CSS into new platform layouts.
- Shadcn-first: use shadcn components via CLI or MCP.
- Shadcn install: use MCP to add all components upfront, then reuse.
- Shadcn blocks: prefer
sidebar-16/sidebar-01,dashboard-01,login-04,signup-02. - Global CSS baseline: use shadcn create preset (nova/zinc/orange).
- No legacy UI kits: do not use Ant/Chakra/etc in new routes.
- Auth parity: align new auth routes with historical provider and users.
- No legacy CSS: enforce new baseline styles only.
- Keep new routes under
app/<platform-segment>.
Platform structure
app/
<platform-segment>/
layout.tsx
(public)/
layout.tsx
page.tsx
<public-views>/
(app)/
layout.tsx
<auth-views>/
Verification
- Public routes load unauthenticated.
- Authenticated routes redirect when unauthenticated.
- Role-gated routes block unauthorized roles.
- Landing dropdown navigates to
/<platform-segment>. - No console errors on load.
Version policy
Use the latest stable versions of next, react, tailwindcss, and shadcn/ui.
Additional resources
- Scans, mapping tips, and gotchas:
reference.md - Example inventories and scaffolds:
examples.md - Rule index:
- Priority 1:
rules/discovery-auth-views,rules/route-naming-audit,rules/confirm-view-names,rules/platform-naming-derive - Priority 2:
rules/routing-platform-scaffold,rules/boilerplate-first - Priority 3:
rules/coexistence-legacy,rules/landing-header-dropdown - Priority 4:
rules/naming-clean,rules/test-auth-flows
- Priority 1: