CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cdn-cache-purge-tests

Use when CDN or browser caching needs tests: purges and invalidations on Cloudflare, Fastly (surrogate keys) and CloudFront, end-to-end write, purge and fresh-read checks, propagation delay and cache-status headers, plus browser Cache-Control, ETag and service-worker caching with Playwright.

Quality

83%

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 testland/cdn-cache-purge-tests

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 strong, vendor-specific testing skill: executable curl/pytest/CI examples, per-vendor purge recipes, explicit assert-per-step test sequences, and honest Limitations and Anti-patterns sections. It is held back from the top band by a bundle inconsistency (CI steps call scripts that are not shipped), an undefined purge_url helper in the multi-region example, and a sleep-vs-poll inconsistency between the canonical test and the anti-patterns table.

Suggestions

Ship scripts/write-test-fixture.sh and scripts/purge-test-paths.sh in the bundle, or replace the CI invocations with the inline curl/pytest commands already shown, so the CI block is runnable as written.

Define or inline the purge_url() helper used in test_purge_propagates_globally so the multi-region example is self-contained.

Replace the time.sleep(10) in the canonical test with the polling loop the anti-patterns table prescribes (poll cf-cache-status until MISS with a 30s timeout) so the example and the guidance agree, and merge the duplicated cf-cache-status tables into one.

DimensionReasoningScore

Conciseness

The body is dominated by executable commands, code, and tables ('curl -X POST "https://api.cloudflare.com/..."', the cache-status table, the anti-patterns table) and assumes Claude's competence, but has trimmable redundancy: cf-cache-status values are listed in both 'Cache-Status header verification' and 'Parsing results', and the Cloudflare purge-doc link appears both in the Overview and again in References.

4 / 5

Actionability

Mostly executable guidance with concrete per-vendor curl commands, a runnable pytest example, and a CI YAML snippet, but two gaps keep it from copy-paste ready: the CI block invokes './scripts/write-test-fixture.sh' and './scripts/purge-test-paths.sh' which do not exist in the bundle, and the multi-region test calls an undefined 'purge_url(API, "/api/users/1")' helper.

4 / 5

Workflow Clarity

The canonical test lays out a clear numbered 1-5 sequence (origin write -> verify old -> purge -> wait -> verify fresh) with an assertion at each stage, and the anti-patterns table adds body-comparison and polling guidance. Minor validation gap: the anti-patterns prescribe 'Poll cf-cache-status until MISS (timeout 30s)' yet the canonical code itself uses 'time.sleep(10)', and no polling/retry loop is actually shown.

4 / 5

Progressive Disclosure

The two references files (references/browser-cache-control.md, references/playwright-cache-recipes.md) exist, are one level deep, and are well signaled with descriptions of what lives in them; browser-tier detail is appropriately split out of SKILL.md. However, the CI section references ./scripts/write-test-fixture.sh and ./scripts/purge-test-paths.sh, and no scripts/ directory exists in the bundle - a dangling referenced path.

4 / 5

Total

16

/

20

Passed

Description

83%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 that is specific, third-person, and explicitly scoped to CDN edge purges plus browser-tier cache behavior across named vendors. Its only weakness is a terse, generic trigger clause - broadening the 'when' with the natural phrases users actually say would round it out.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage across both cache tiers: 'purges and invalidations on Cloudflare, Fastly (surrogate keys) and CloudFront', 'end-to-end write, purge and fresh-read checks', 'propagation delay and cache-status headers', and 'browser Cache-Control, ETag and service-worker caching with Playwright'.

5 / 5

Completeness

Both what and when are explicit - it opens with 'Use when CDN or browser caching needs tests' followed by a detailed capability list - but the when-clause is a single generic condition without concrete trigger phrases (nothing like 'when users report stale content after a write'), so it fits the 4 anchor rather than 5.

4 / 5

Trigger Term Quality

Good natural keyword coverage ('CDN', 'purge', 'invalidation', 'Cloudflare', 'Fastly', 'CloudFront', 'Cache-Control', 'ETag', 'service-worker', 'Playwright'), but a few natural user phrasings are missing, e.g. 'stale content', 'clear cache', or 'cache busting'.

4 / 5

Distinctiveness Conflict Risk

A clear niche with minimal conflict risk: naming the three CDN vendors and Playwright plus 'surrogate keys' distinguishes it from adjacent skills (e.g. application/redis cache testing or generic Playwright testing), and the third-person 'Use when...' form is used correctly.

5 / 5

Total

18

/

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

testland/qa

Path

plugins/qa-cache-testing/skills/cdn-cache-purge-tests/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.