CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

core-web-vitals

Optimize Core Web Vitals (LCP, INP, CLS) for better page experience and search ranking. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts". Focuses specifically on the three Core Web Vitals metrics. Do NOT use for general web performance (use perf-web-optimization), Lighthouse audits (use perf-lighthouse), or Astro-specific optimization (use perf-astro).

64

Quality

80%

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 ./packages/skills-catalog/skills/(performance)/core-web-vitals/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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, highly actionable reference with strong ❌/✅ code examples and useful per-metric checklists, but it functions as three parallel reference documents rather than a guided workflow, and its one bundle file (references/LCP.md) is orphaned — never linked from the body — while its content is duplicated inline. Tightening the workflow framing and wiring up the reference would lift the weaker dimensions.

Suggestions

Replace the inline LCP detail (preload/critical-CSS/SSR patterns, framework tips, and the LCP debugging observer, all of which duplicate references/LCP.md) with a short summary plus an explicit pointer like "**LCP deep dive**: See [references/LCP.md](references/LCP.md)", and consider adding INP.md/CLS.md references for symmetry.

Add an explicit ordered workflow at the top — 1. Get field data (Search Console / web-vitals), 2. Identify the failing metric with the debugging observers, 3. Apply the metric's fixes, 4. Re-measure to confirm the 75th percentile passes — so the reference sections hang off a sequence with validation checkpoints.

Fix the non-executable examples: use defineAsyncComponent for the Vue async component, note that importing a remote script URL needs a script-tag facade rather than dynamic import(), and show the React preload inside a head-management context (e.g. next/head or react-helmet).

DimensionReasoningScore

Conciseness

The body is mostly lean — ❌/✅ code pairs with minimal prose — but the entire LCP section (~80 lines: preload patterns, critical CSS, SSR example, framework tips, the PerformanceObserver debugging snippet) substantially duplicates references/LCP.md, so those tokens are spent twice. Matches anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened'); not 4 because the duplication is a real, removable inefficiency, not a minor trim.

3 / 5

Actionability

Nearly all guidance is executable: preload links with fetchpriority, chunked main-thread yielding, font-display/size-adjustment, aspect-ratio reserves, memoization, and copy-paste debugging observers. Falls short of anchor 5 on a few fragmentary or broken examples — the Vue async component `<component :is="() => import('./Heavy.vue')" />` is not a valid async-component pattern (defineAsyncComponent is), `import('https://heavy-widget.com/widget.js')` of a remote URL won't execute as written, and the React `<link>` snippet sits outside any head-management context.

4 / 5

Workflow Clarity

The body is organized as reference material by metric (issues → fixes → checklist → debugging) but never sequences a diagnostic workflow — 'measure field/lab data → identify the failing metric → apply fixes → re-measure' is only implicit, and Measurement tools appear at the end rather than as a first step. Matches anchor 3 ('sequence present but checkpoints missing or implicit'); the per-metric checklists keep it above anchor 2, and no explicit ordered process keeps it below anchor 4.

3 / 5

Progressive Disclosure

The bundle has one reference file, references/LCP.md, but the body never links to it — the References section lists only external web.dev URLs and a sibling skill — so the one bundled reference is orphaned while its content is simultaneously inlined in the body. Matches anchor 3 ('references present but not clearly signaled; content that should be separate is inline'); not 2 because the body itself is well-sectioned with clear headers and no nesting, but the unsignaled, duplicated reference prevents a 4.

3 / 5

Total

13

/

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.

An excellent description that clearly and explicitly states what the skill does and when to use it, with natural per-metric trigger phrases and explicit disambiguation from three neighboring skills. The only minor gap is that it summarizes the optimization action without naming the diagnostic/measurement capabilities the body actually delivers.

DimensionReasoningScore

Specificity

"Optimize Core Web Vitals (LCP, INP, CLS) for better page experience and search ranking" names the domain, the three exact metrics, and two concrete purposes, with per-metric action verbs in the triggers ("fix LCP", "reduce CLS", "optimize INP"). It stops short of anchor 5 because it never states the concrete operations the skill actually performs (measure, diagnose, apply fixes), and exceeds anchor 3 because several specific capabilities and explicit scope boundaries are stated.

4 / 5

Completeness

Both questions are answered explicitly: the "what" ("Optimize Core Web Vitals (LCP, INP, CLS) for better page experience and search ranking") and the "when" ("Use when asked to \"improve Core Web Vitals\", \"fix LCP\"..."). This is a direct match for the anchor 5 example structure — concrete action statement followed by explicit trigger phrases — and clearly above anchor 4, whose 'when' is less specific.

5 / 5

Trigger Term Quality

Six natural trigger phrases are quoted verbatim — "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", "fix layout shifts" — covering the umbrella term plus per-metric synonyms users would actually say. This matches the anchor 5 pattern of comprehensive natural-term coverage with synonyms; no common variant is conspicuously missing.

5 / 5

Distinctiveness Conflict Risk

The description defines a clear niche ("Focuses specifically on the three Core Web Vitals metrics") and proactively disambiguates three adjacent skills ("Do NOT use for general web performance (use perf-web-optimization), Lighthouse audits (use perf-lighthouse), or Astro-specific optimization (use perf-astro)"). Minimal conflict risk, matching anchor 5; anchor 4's 'minor overlap risk' doesn't apply given the explicit exclusions.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 suspicious

Warning

Total

15

/

16

Passed

Repository

tech-leads-club/agent-skills

Path

packages/skills-catalog/skills/(performance)/core-web-vitals/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.