What problem does it solve? Caching individual data-fetching functions or RSC components in a React Server Components router requires manual memoization logic, cache key management, and stale-while-revalidate handling. This Skill provides the "use cache" directive so a single function or component memoizes its own output with TTL and SWR semantics, without caching an entire route subtree or HTTP response. ## Core Features & Use Cases - Directive-based caching: Add "use cache" at file level or "use cache: <profile>" per function to cache return values, with named profiles (ttl, swr, tags, foregroundOnAction) defined in createRouter({ cacheProfiles }). - Request safety guards: cookies() and headers() throw inside cached functions to prevent cross-user data leaks, while tainted ctx objects are excluded from cache keys and route-identifying fields are folded in automatically. - Handle replay and inline server actions: ctx.use(Handle) side effects are captured on cache miss and replayed on hit, and inline "use server" actions embedded in cached components stay invocable with frozen closure values. - Use Case: Cache a database query like getProducts() with a short profile so repeated requests across routes reuse the result, while a mutation calls updateTag() to hard-purge the entry for read-your-own-writes consistency. ## Quick Start Add the "use cache" directive to my async data function and configure a named cache profile with ttl and swr in createRouter.