What problem does it solve? Dynamic responses from Netlify Functions and Edge Functions are not cached by default, so every request re-invokes your function. This Skill shows how to opt into Netlify's CDN cache with the right headers, vary cache keys correctly, tag and purge content, and debug cache behavior. ## Core Features & Use Cases - Header-based caching: Set Netlify-CDN-Cache-Control with max-age, s-maxage, stale-while-revalidate, and durable directives to cache dynamic responses on Netlify's CDN. - Cache key variation and tags: Use Netlify-Vary to vary by query, header, cookie, country, or language, and Netlify-Cache-Tag to tag responses for targeted purging via purgeCache or the purge API. - Programmatic Cache API: Use the caches global or the @netlify/cache helpers (fetchWithCache, cacheHeaders, getCacheStatus) to cache arbitrary fetches and components inside functions. - Use Case: You have an expensive third-party API call in a serverless function. Add Netlify-CDN-Cache-Control: public, durable, max-age=60, stale-while-revalidate=120, tag it, and purge by tag whenever the underlying data changes. ## Quick Start Ask the agent to add CDN caching with a 60-second TTL and stale-while-revalidate to my Netlify Function response and show me how to verify it with the Cache-Status header.