What problem does it solve? Sharing loaders, middleware, caching, and error handling across many route files in a Rango application leads to copy-pasted configuration that drifts out of sync. This Skill documents how to extract repeated route setup into typed, composable factories using globally importable helpers from @rangojs/router. ## Core Features & Use Cases - Globally Importable Helpers: Import cache, middleware, revalidate, loader, loading, parallel, intercept, errorBoundary, and notFoundBoundary directly from @rangojs/router and call them inside factories, while path() and include() stay in the urls() callback to keep route structure visible. - Composition Factories: Define intention-named factories like withAuth() or withCaching() that return arrays of use items, flattened automatically up to 3 levels inside path() or layout() use callbacks. - Async Code-Splitting with include(): Split route groups behind () => import() thunks with measured first-hit latency guidance, naming behavior (shop.index namespacing vs flattening), and full type generation retained. - Typed Factories: Use RouteUseItem[], LayoutUseItem[], and UseItems<T> to type factory return values. - Use Case: An app with blog, shop, and admin sections shares auth middleware, cache TTLs, and loading skeletons through factories defined in a central route-config.ts module instead of repeating them per route. ## Quick Start Show me how to create a reusable withAuth and withCaching factory and apply them to my Rango route definitions.