What problem does it solve? Setting up Clerk authentication in React Router v7/v8 involves a middleware plus loader pipeline that differs from other frameworks, and misconfiguration causes cryptic SSR errors like "useNavigate() may be used only in the context of a Router". This Skill provides the correct wiring for rootAuthLoader, clerkMiddleware, getAuth, and protected routes so auth works on both server and client. ## Core Features & Use Cases - Root Setup: Configures clerkMiddleware, rootAuthLoader, and ClerkProvider in root.tsx, including the required ssr.noExternal workaround for React Router v8 in vite.config.ts. - Server-Side Auth: Uses getAuth in loaders and actions to protect routes, redirect unauthenticated users, and scope data by userId or orgId. - Client & Org Features: Covers useAuth/useUser hooks, OrganizationSwitcher, SSR user data via clerkClient, and session claims checks. - Use Case: You are building a React Router v8 dashboard and need only signed-in users in an active organization to access /dashboard. The Skill shows the loader that calls getAuth, redirects to /sign-in or /select-org, and fetches org-scoped data. ## Quick Start Set up Clerk authentication in my React Router app with rootAuthLoader, clerkMiddleware, and a protected dashboard route that redirects unauthenticated users to /sign-in.