CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

netlify-caching

Cache dynamic and static responses on Netlify's CDN from Functions, Edge Functions, and proxies. Use when you add caching or cache-control headers to a function response, tune cache TTL or stale-while-revalidate, set up the durable cache, vary a cache key by query/header/cookie/country/language, purge or invalidate the cache by site or cache tag, use the programmatic Cache API (caches.open/match/put) or @netlify/cache helpers (fetchWithCache/cacheHeaders/getCacheStatus), speed up an expensive API call, add ISR or on-demand revalidation, or debug why a response is or isn't cached via the Cache-Status header.

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is netlify-caching in netlify/context-and-tools

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A dense, factual, well-sectioned reference that is almost entirely Netlify-specific knowledge Claude cannot infer, with copy-paste-ready code for every common case and genuine footguns surfaced up front. The main improvement levers are trimming the meta-commentary (ctx-gen preamble, HTML gap comments) and moving the exhaustive @netlify/cache API detail to a reference file.

DimensionReasoningScore

Conciseness

Phrases like "Cache API silently drops responses over 10 MB", "Deletes are eventually consistent", and the exact Cache-Status values are non-obvious, high-value facts with essentially no explanation of concepts Claude already knows — but trimmable tokens remain: the ctx-gen house-rules preamble ("merged into the rendered skill by ctx-gen and never generated"), the trailing HTML gap comments, and a second full vary illustration inside the cacheHeaders example. These are minor instances of over-explanation/padding rather than the 'every token earns its place' ideal, so 4 not 5; it is well above the 'mostly efficient but includes some unnecessary explanation' anchor 3.

4 / 5

Actionability

Nearly every section gives copy-paste-ready code or commands — the full `Netlify-CDN-Cache-Control` function example, three complete `purgeCache` variants including the token-based Lambda form, an executable curl for the purge API, the `caches.open/match/put` handler with `config`, and `cacheHeaders`/`fetchWithCache` snippets — plus exact limits ("100 lookups, 20 insertions/deletions", "twice per 5s", "≤1024 chars/tag"). Only two contextual fragments (the `needsRevalidation` block, the `getCacheStatus` one-liner) lack imports/context, which keeps it at anchor 5's 'fully executable, covers common cases' rather than dropping to anchor 4's 'minor gaps' since the fragments are advanced edge cases, not the common path.

5 / 5

Workflow Clarity

The skill is reference-style rather than a multi-step procedure, and it sequences its single task well: 'read footguns first' → pick the header ('Reach for this') → set directives → verify on a deployed URL via Cache-Status ('repeat requests to warm one' gives an explicit feedback loop for the empty-cache case). Validation for the destructive purge operation is only implicit (the 202 status in examples) rather than an explicit 'verify the purge succeeded' checkpoint, which is the minor gap that keeps this at anchor 4 ('most checkpoints present') instead of 5; it is clearly above anchor 3's missing-checkpoints level.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so everything is inline in a well-organized single file: clearly signaled sections (Footguns, Directives, Netlify-Vary, purge, Cache API, @netlify/cache, Durable, Debugging) with the most-urgent content first and an external pointer only where appropriate (docs.netlify.com for the purge API identifier mapping). At ~330 lines, the full `@netlify/cache` API details could arguably live in a reference file, which is the 'minor organization gap' of anchor 4 — better than anchor 3's 'content that should be separate is inline' since the structure is tight and navigable, but not the clean overview-plus-references split of anchor 5.

4 / 5

Total

17

/

20

Passed

Description

95%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, comprehensive description that explicitly answers both what the skill does and when to use it, with natural trigger phrases and a clearly staked-out Netlify caching niche. Its only deduction is the second-person 'Use when you...' phrasing, which the rubric penalizes on specificity.

DimensionReasoningScore

Specificity

It lists many concrete actions — "Cache dynamic and static responses on Netlify's CDN", "tune cache TTL or stale-while-revalidate", "vary a cache key by query/header/cookie/country/language", "purge or invalidate the cache by site or cache tag", "use the programmatic Cache API (caches.open/match/put)" — which is anchor-5 comprehensiveness. However, the second-person phrasing ("Use when you add caching...") triggers the rubric's one-point voice penalty, reducing it to 4.

4 / 5

Completeness

The 'what' is explicit up front ("Cache dynamic and static responses on Netlify's CDN from Functions, Edge Functions, and proxies") and the 'when' is a long, concrete 'Use when...' clause enumerating a dozen specific trigger scenarios ending with debugging via the Cache-Status header. Both are explicitly and concretely answered, matching anchor 5 exactly; it is not anchor 4, where the 'when' would be less specific.

5 / 5

Trigger Term Quality

Natural user phrasings are covered comprehensively with synonyms: "add caching or cache-control headers", "purge or invalidate the cache", "speed up an expensive API call", "debug why a response is or isn't cached", plus jargon users actually say (TTL, stale-while-revalidate, ISR, on-demand revalidation, Cache-Status). This matches anchor 5's comprehensive synonym coverage and is clearly above anchor 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche — Netlify's CDN caching specifically — with distinct triggers (Netlify-CDN-Cache-Control, durable cache, Netlify-Vary, purgeCache, @netlify/cache helpers) that no generic performance or HTTP-caching skill would claim, so conflict risk is minimal per anchor 5. It is well above anchor 4's overlap with 'closely related skills' because the platform scoping is unambiguous.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

netlify/context-and-tools

Path

codex/skills/netlify-caching/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.