CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

72

Quality

89%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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 high-density, highly actionable reference: every mechanism has executable code and precise limits/footguns, and the Cache-Status debugging section supplies a real verification loop. The main weaknesses are the absence of any progressive disclosure (all reference material inline in one long file) and a duplicated trailing house-rules section that pads the token budget.

Suggestions

Split reference-heavy sections (the Cache API method surface, the @netlify/cache module docs, and the purge REST API details) into files under references/ and keep SKILL.md as a concise overview with clearly signaled one-level-deep pointers.

Remove the duplicated 'house rules' footer (or the equivalent Footguns bullets it repeats) so each fact appears once, cutting ~20 lines of redundant tokens.

Add a short post-purge verification step to the invalidation workflow (e.g. re-request the URL and confirm Cache-Status shows fwd=miss) to close the feedback loop for this batch operation.

DimensionReasoningScore

Conciseness

The body is dense and fact-only ('Only GET is cached', 'Limits per invocation: 100 lookups, 20 insertions/deletions') with no explanations of concepts Claude already knows — mostly efficient. However, the appended 'house rules' section duplicates the Footguns bullets verbatim (query-string cache key, netlify dev, purge credentials), and merge-artifact comments add trailing padding. Fits 4 (minor trimming possible), not 5 (the duplication is a real, if bounded, inefficiency).

4 / 5

Actionability

Every operation ships copy-paste-ready code: a complete Function response with the header, purgeCache for both the default and Lambda-compatible signatures with token handling, an executable curl for the purge API, and working cacheHeaders/fetchWithCache/getCacheStatus/needsRevalidation examples covering the common cases. Not 4: the examples are complete and cover common cases, including edge paths like the local-dev 'caches' import workaround.

5 / 5

Workflow Clarity

'Footguns (read first)' provides pre-flight checkpoints and the Cache-Status section gives an explicit verification loop ('Check it on a deployed URL' with hit/miss/stale values to look for). Not 5: purge — a site-wide batch/destructive operation — lacks an explicit post-purge verification step. Not 3: verification guidance for caching behavior is present and explicit, not missing.

4 / 5

Progressive Disclosure

There are no bundle files at all — the full caches API surface, the @netlify/cache module reference, and the purge REST API details are all inlined in one ~310-line SKILL.md. Section headers are clear (better than 2), but API-reference material that clearly belongs in separate reference files is inline, matching the 3 anchor ('content that should be separate is inline') rather than 4.

3 / 5

Total

16

/

20

Passed

Description

100%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.

An exemplary description: a crisp third-person 'what' statement followed by an explicit 'Use when...' clause enumerating concrete, naturally-phrased triggers spanning the skill's full surface (headers, TTL tuning, cache-key variation, purge, Cache API, debugging). No vagueness, over-claims, or padding.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions with comprehensive coverage: 'Cache dynamic and static responses on Netlify's CDN', 'vary a cache key by query/header/cookie/country/language', 'purge or invalidate the cache by site or cache tag', and named APIs like 'caches.open/match/put' and '@netlify/cache helpers (fetchWithCache/cacheHeaders/getCacheStatus)'. Matches the 5 anchor (multiple specific actions, comprehensive coverage), not 4, which requires minor gaps.

5 / 5

Completeness

Explicitly answers both what ('Cache dynamic and static responses on Netlify's CDN from Functions, Edge Functions, and proxies') and when ('Use when you add caching or cache-control headers... or debug why a response is or isn't cached') with concrete trigger phrases — the exact structure of the 5 anchor example.

5 / 5

Trigger Term Quality

Covers the natural phrases users would say when they need this skill: 'add caching or cache-control headers', 'tune cache TTL or stale-while-revalidate', 'purge or invalidate the cache', 'debug why a response is or isn't cached', plus synonyms (purge/invalidation, ISR/on-demand revalidation). Comprehensive natural-term coverage fits the 5 anchor rather than 4 ('a few natural terms missing').

5 / 5

Distinctiveness Conflict Risk

Clear niche (Netlify platform CDN caching) with distinct platform-specific triggers ('Netlify's CDN', '@netlify/cache', 'durable cache', 'Cache-Status header'), minimizing conflict risk with generic HTTP-caching or other deployment-platform skills.

5 / 5

Total

20

/

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
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.