Modern Web Performance + Core Web Vitals

Modern Web Performance + Core Web Vitals is a skill for Claude Code from s977043/river-review. It costs 48 tokens per session (1,889 once invoked), scanned A, original, MIT.

A review rule for front-end changes that considers how images, scripts, styles, and interactions may affect loading speed and Core Web Vitals—the browser metrics for loading, responsiveness, and layout stability.

In plain words
What is it for?
It reviews hero images, lazy loading, resource request chains, web fonts, heavy event handlers, and scroll or resize code for follow-up measurement or profiling.
Why use it?
It highlights common patterns that can delay the main content, make interactions feel slow, or cause the page to shift, without claiming that a change has a measured impact.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the river-review plugin — 139 skills, 18 commands, 5 agents, 3 hooks shipped together

Good fit It reviews hero images, lazy loading, resource request chains, web fonts, heavy event handlers, and scroll or resize code for follow-up measurement or profiling.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/s977043/river-review/modern-web-performance
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add s977043/river-review --skill modern-web-performance
Clone the repo
git clone --depth 1 https://github.com/s977043/river-review

Made for: Claude Code.

Or install river-review, the plugin that ships this one along with the rest of its 139 skills, 18 commands, 5 agents, 3 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for Modern Web Performance + Core Web Vitals

README.md
[![agentmods](https://agentmods.dev/badge/skills/s977043/river-review/modern-web-performance/github.svg)](https://agentmods.dev/skills/s977043/river-review/modern-web-performance)
Your own site
<a href="https://agentmods.dev/skills/s977043/river-review/modern-web-performance"><img src="https://agentmods.dev/badge/skills/s977043/river-review/modern-web-performance/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for Modern Web Performance + Core Web Vitals

Your own site · 80×15
<a href="https://agentmods.dev/skills/s977043/river-review/modern-web-performance"><img src="https://agentmods.dev/badge/skills/s977043/river-review/modern-web-performance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,889 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00048 $0.01889
Opus 5.5 $0.00019 $0.00756
Sonnet 5.5 $0.00010 $0.00378
Haiku 4.5 $0.00005 $0.00189

Measured 1mo ago against content hash 938d56927b0d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

Modern Web Performance + Core Web Vitals scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/midstream/modern-web-performance/SKILL.md · 113 lines

How it starts

The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Goal / 目的

  • フロントエンド差分が LCP / INP / CLS や読み込みコストへ与える影響を、診断可能な形で示す。
  • 「測ってない最適化」を促すのではなく、今書かれているコードが既知の遅延・ジャンクパターンかを suggestion として返す。
  • 出力は強制ではなく、計測 / プロファイリングの起点を提示する材料にとどめる。

Non-goals / 扱わないこと

  • 実測値(Lighthouse / Real-User Metrics)の数値検証。
  • bundler 設定や依存ライブラリ選定の議論。
  • backend / DB / network 帯域起因のパフォーマンス問題(別エピックの対象)。
  • マイクロベンチマーク的な「より速い書き方」の最適化合戦。

False-positive guards / 抑制条件

  • すでに loading="lazy" / fetchpriority / decoding 属性などが指定されている画像は指摘しない。
  • 既存コードのリファクタを跨ぐ変更(命名変更・型注釈追加)で副作用のない差分は指摘しない。
  • A/B テスト・実験コード・dev-only コードと明示されている領域は対象外。
  • パフォーマンスポリシーが .river/rules.md や README で明示されている場合はその方針に従う(過剰指摘の抑制)。

Rule / ルール

LCP (Largest Contentful Paint)

  • ヒーロー画像 / 主要 visual には fetchpriority="high" と decoding="async" の検討を促す。
  • above-the-fold の画像に loading="lazy" が誤って付いていないか確認する。
  • リクエスト連鎖(CSS → JS → font → image)が増える変更では preconnect / preload の検討を提案する。
  • web font の差し替えでは font-display: swap / 適切な fallback の有無を確認する。

INP (Interaction to Next Paint)

  • click / input ハンドラに同期的な重い処理(JSON.parse の大規模ループ、document.querySelectorAll 全 traversal)を追加していないか確認する。
  • raf / scroll / resize ハンドラに直接 DOM 操作を入れる差分は throttle / requestIdleCallback / passive listener の検討を提案する。
  • React の場合は useMemo / useCallback ではなく、そもそも該当ハンドラが render path に乗らない構造を優先的に検討する。

CLS (Cumulative Layout Shift)

  • 画像 / iframe / video / placeholder に明示的な width / height または aspect-ratio を指定する変更を促す。
  • 後から injection される広告 / バナー / banner / Toast UI でレイアウトが跳ねないよう min-height や reserved space の確保を検討する。
  • web font 切り替えで text reflow が起きる可能性を指摘し、size-adjust / 適切な fallback metrics の検討を提案する。

リソースコスト

  • 大きな <img> を縮小表示している場合、レスポンシブ画像 (srcset / sizes) や AVIF / WebP の検討を提案する。
  • 新規 npm パッケージを import している差分は、tree-shaking 可否 / バンドルサイズの確認を suggestion で示す(実測値は別レビュー)。
  • import … で大きなライブラリを top-level に持ち込む変更には dynamic import の検討余地を伝える。

Evidence / 根拠の取り方

  • 差分のコードを引用し、どの行がどの Core Web Vital に影響しうるかを示す。
  • 該当する仕様 / MDN ドキュメントを 1 つ挙げる(例: "img loading attribute", "Performance Observer", "View Transitions API")。
  • 既に対策属性が付与されている場合の抑制条件を満たさないことを明示する。

Read the full file on GitHub · 113 lines

Files

What ships with it

8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 113 lines · 48 tokens per session scan A 938d56927b0d

Subscribe to this mod's changes

Modern Web Performance + Core Web Vitals is a skill published in the GitHub repository s977043/river-review (7 stars, last pushed yesterday), licensed MIT. It adds 48 tokens to every session and 1,889 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

logic-review

Find logic bugs in a single file or function via semi-formal execution tracing (Premises → Trace → Divergence → Trigger → Remedy). Trigger when a user shares code and suspects something is wrong without naming a concrete failure — phrases like "review this", "does this look right", "check this function", "audit this…

hyhmrright/logic-lens · 161 tokens

logic-fix-all

Autonomous repository-wide audit-and-fix pipeline: health → review → locate/explain → fix → diff-verify → iterate until clean. Starts with a mandatory consent prompt (token-intensive); after consent runs hands-free. Trigger when the user wants ALL logic issues found and fixed — "fix everything", "fix all logic…

hyhmrright/logic-lens · 211 tokens

logic-health

Sweep a directory, module, or full codebase for logic correctness and produce a scored health dashboard with systemic patterns. Trigger when the user requests a health view — "audit the whole codebase", "health check", "health overview", "logic health overview", "audit src/", "audit auth and payments modules", "where…

hyhmrright/logic-lens · 180 tokens

run-iteration-eval

Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first. Use when the user wants to "run the…

hyhmrright/logic-lens · 108 tokens

sync-skill-cache

Sync the Logic-Lens working-copy skills/ into the installed plugin cache so content-evals test the EDITED skill, not the last published one. ALWAYS run this after editing any skills//SKILL.md or guide/shared file and BEFORE running content-evals — otherwise the eval silently grades stale content and every token is…

hyhmrright/logic-lens · 103 tokens

bump-version

Bump the Logic-Lens version across all six metadata locations at once (package.json, the four plugin manifests, and the README badge), then validate. Use when cutting a release or when npm run validate reports a version mismatch.

hyhmrright/logic-lens · 52 tokens