CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cdn-caching

Debug Vercel CDN caching — cache hit rate, stale content, revalidation behavior, ISR + PPR, per-request cache reasons (cacheReason) and PPR state (ppr_state), and costs.

62

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/cdn-caching/SKILL.md
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 highly actionable, well-sequenced debugging runbook with executable CLI commands and expected-outcome checkpoints for every step. The main costs are repetition (tag-granularity and PPR guidance restated in multiple sections) and small structural blemishes — a dangling "curl above" reference and a misplaced inspection section.

Suggestions

Consolidate the tag-granularity/blast-radius guidance (currently in Key concepts, Time-based vs. tag-based revalidation, and Reducing ISR cost) into one section and cross-reference it elsewhere.

Fix the "per-path header inspection (`curl` above)" reference — the curl command actually appears later in the document — and move "Inspect one path" into the "Investigating cache issues" section where it is used.

Consider moving the cacheReason and ppr_state lookup tables into a references/ file so the main body stays a lean overview, keeping the inline examples that drive the workflow.

DimensionReasoningScore

Conciseness

The body is dense with Vercel-specific operational knowledge Claude won't reliably know (cacheReason semantics, 8 KB ISR billing units, "--limit is per time bucket", internal-only headers), but it repeats itself: tag-granularity advice ("prefer granular tags (product-${id})") appears in Key concepts, Time-based vs. tag-based revalidation, and Reducing ISR cost; the "no holes = plain ISR" point appears in both Key concepts and the FAQ; and "needs Observability Plus or a Priority project" is stated twice. Mostly efficient but could be tightened — no generic-concept padding, so not a 2.

3 / 5

Actionability

Fully copy-paste ready commands throughout: concrete `vercel metrics` invocations with real filter/group-by flags (e.g. `-f "cache_result:MISS AND path_type:prerender" --group-by request_path`), a zero-dependency `curl -sSI ... | grep` inspection one-liner, jq examples for `vercel logs --json`, and interpretation thresholds ("near or below ~1 means you regenerate about as fast as the page is read"). Specific examples cover the common debugging cases.

5 / 5

Workflow Clarity

The diagnostic flow is explicitly sequenced with transitions ("Start here for an overall picture" → "Once you know hit rate" → "Before tuning headers..."), Step 1/Step 2 structure, and "What to expect" checkpoints that act as validation against expected outcomes. Two minor gaps keep it from a 5: the Cache hit rate section references "per-path header inspection (`curl` above)" but the curl section appears later in the document (a dangling forward reference), and the "Inspect one path" section is oddly placed under "Reducing ISR cost" rather than in the investigation flow. Operations are read-only diagnostics, so the destructive/batch validation cap does not apply.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so everything lives in a single ~215-line SKILL.md. Structure is good: clear section headers, well-formed lookup tables, a Related skills section, and a one-level References list of external Vercel doc links. The large reference tables (eleven cacheReason values, three ppr_state values) could arguably be split into a references/ file to keep the main body lean, and "Inspect one path" is misplaced under "Reducing ISR cost" — minor organization gaps consistent with a 4.

4 / 5

Total

16

/

20

Passed

Description

75%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 specific, well-scoped description that clearly states what the skill debugs with concrete sub-capabilities. Its main weakness is the missing "Use when..." trigger clause, which caps completeness, and a few natural trigger terms that could broaden retrieval.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user reports stale pages, low cache hit rate, high ISR read/write units, or unexpected x-vercel-cache values (MISS, BYPASS, REVALIDATED)."

Add natural trigger phrases users would actually type — "x-vercel-cache", "cache miss", "purge", "invalidate" — to the description text (they exist in frontmatter metadata but not in the description itself).

DimensionReasoningScore

Specificity

The description lists multiple specific concrete debugging targets — "cache hit rate, stale content, revalidation behavior, ISR + PPR, per-request cache reasons (cacheReason) and PPR state (ppr_state), and costs" — comprehensively covering the domain's debugging surface rather than a generic action, matching the comprehensive-coverage anchor.

5 / 5

Completeness

The "what" is clear and specific ("Debug Vercel CDN caching" with enumerated sub-capabilities), but there is no "Use when..." clause or equivalent explicit trigger guidance in the description, which caps completeness at 3 per the rubric guidelines.

3 / 5

Trigger Term Quality

It includes natural phrases users would say ("cache hit rate", "stale content", "revalidation", "costs") alongside technical terms, but common trigger phrasings such as "x-vercel-cache", "cache miss", or "purge/invalidate" are absent from the description text — good coverage with a few natural terms missing.

4 / 5

Distinctiveness Conflict Risk

"Vercel CDN caching" with ISR, PPR, cacheReason, and ppr_state carves out a clear niche that is distinguishable from adjacent concerns (runtime/data caching, firewall/WAF), with minimal risk of triggering for the wrong skill.

5 / 5

Total

17

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository

vercel/vercel-plugin

Path

skills/cdn-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.