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

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.

This is a high-quality reference body: nearly every claim is a non-obvious Netlify-specific fact, code examples are executable and cover the common cases, and risky operations carry explicit warnings plus a Cache-Status verification path. Its weaknesses are structural: ~330 lines of inlined API-reference material with no progressive disclosure into reference files, plus leaked build comments and unpinned-inline version numbers that add noise.

Suggestions

Split the API-reference material into one-level-deep reference files (e.g., references/purge-api.md for the direct API/lambda-compatible purge details and references/cache-helpers.md for the @netlify/cache module), leaving concise usage summaries and clear pointers in SKILL.md.

Remove the leaked build metadata — the "<!-- Gaps: ... -->" and "<!-- system: agent-context/caching/system.md ... -->" comments and the "merged by ctx-gen / edit system.md" preamble — from the rendered skill body.

Move time-sensitive version requirements ("Netlify CLI 20.0.3+", "Next Runtime 5.5.0+") into a dedicated compatibility or legacy-patterns section so they can be maintained without penalizing the main guidance, and add an explicit post-purge verification step (re-request the URL and confirm the Cache-Status header shows a miss).

DimensionReasoningScore

Conciseness

The body is dense with non-obvious platform facts Claude cannot know ("Static assets are fresh for up to a year", "basic-auth on ANY page disables caching for the ENTIRE site", "100 lookups, 20 insertions/deletions") with essentially no padding. Minor deductions: inline version pins ("Netlify CLI 20.0.3+", "Next Runtime 5.5.0+") are time-sensitive and not in a deprecated/old-patterns section, and leaked build metadata ("<!-- Gaps: ... -->", "<!-- system: agent-context/caching/system.md ... merged by ctx-gen ...>", and the "These are org conventions, not docs facts" preamble) is token noise for the skill's consumer.

4 / 5

Actionability

Nearly every section gives copy-paste-ready, complete examples: full TypeScript function snippets for header caching and the Cache API, three purgeCache variants, a complete curl command with headers and JSON body, and executable cacheHeaders/fetchWithCache/needsRevalidation usage. Common cases (opt in via header, purge by tag, cache an expensive fetch, debug via Cache-Status) are each covered with specific code; score 4 would require notable gaps like pseudocode or missing key details, which are absent.

5 / 5

Workflow Clarity

Organization leads the reader well: "Cache-control header to reach for", "Footguns (read first)", directive reference, then task-specific sections, with a Cache-Status debugging section acting as an explicit verification path ("Check it on a deployed URL") and warnings like "an empty cache_tags list purges NOTHING" guarding risky purge operations. It falls short of 5 because there is no explicit validate-and-recover loop (e.g., verify the purge took effect, or confirm headers before/after) and purge — a semi-destructive site-wide operation — has no post-action verification step.

4 / 5

Progressive Disclosure

The ~330-line body has no bundle files at all (no references/, scripts/, or assets/ exist), so all content is inlined in SKILL.md. Sections are well-labeled, but the @netlify/cache helper API reference (cacheHeaders/fetchWithCache/getCacheStatus/needsRevalidation sub-sections) and the direct purge-API details are API-reference material living inline — matching the score-3 anchor of "200 lines of API reference that could be in a separate file". Score 4 would require the bulk detail to be moved out with clear in-body pointers.

3 / 5

Total

16

/

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 strong description: concrete and comprehensive on capabilities, explicitly scoping both what it does and when to use it, with a rich set of natural trigger terms for a clearly distinct Netlify niche. The only blemish is the second-person "Use when you..." phrasing, which costs it a point on specificity under the rubric's voice rule.

DimensionReasoningScore

Specificity

Quotes like "vary a cache key by query/header/cookie/country/language", "purge or invalidate the cache by site or cache tag", and "use the programmatic Cache API (caches.open/match/put) or @netlify/cache helpers" list multiple concrete, comprehensive actions. This sits at the score-5 anchor but the trigger clause uses second person ("Use when you add caching..."), and the rubric's voice rule penalizes second-person phrasing on this dimension by 1.

4 / 5

Completeness

Explicitly answers both: what — "Cache dynamic and static responses on Netlify's CDN from Functions, Edge Functions, and proxies"; when — a long "Use when you add caching or cache-control headers to a function response, tune cache TTL... or debug why a response is or isn't cached" clause with concrete trigger phrases. This is the score-5 anchor exactly; score 4 would require a less explicit 'when', which does not apply.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage with synonyms and API-specific vocabulary: "caching", "cache-control headers", "cache TTL", "stale-while-revalidate", "purge or invalidate the cache", "cache tag", "speed up an expensive API call", "add ISR or on-demand revalidation", and "debug why a response is or isn't cached via the Cache-Status header". Matches the score-5 anchor (analogous to "PDF files, PDFs, forms, document extraction, .pdf"); nothing common is missing.

5 / 5

Distinctiveness Conflict Risk

A clear niche (Netlify CDN caching) with distinct triggers (Netlify-CDN-Cache-Control, durable cache, purgeCache, @netlify/cache, Cache-Status). Only trivial overlap risk with a generic web-caching skill; not the score-4 anchor because the trigger phrases are platform-specific enough to avoid firing for non-Netlify work.

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

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.