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.
npx skills add Zhang-Henry/CoEvoSkills --skill evo-nextjs-perf-optimizergit clone --depth 1 https://github.com/Zhang-Henry/CoEvoSkillsWrote 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.
[](https://agentmods.dev/skills/zhang-henry/coevoskills/evo-nextjs-perf-optimizer)<a href="https://agentmods.dev/skills/zhang-henry/coevoskills/evo-nextjs-perf-optimizer"><img src="https://agentmods.dev/badge/skills/zhang-henry/coevoskills/evo-nextjs-perf-optimizer/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.
<a href="https://agentmods.dev/skills/zhang-henry/coevoskills/evo-nextjs-perf-optimizer"><img src="https://agentmods.dev/badge/skills/zhang-henry/coevoskills/evo-nextjs-perf-optimizer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.00669 |
| Opus 5 | $0.00028 | $0.00334 |
| Sonnet 5 | $0.00011 | $0.00134 |
| Haiku 4.5 | $0.00006 | $0.00067 |
Grade A, and why
evo-nextjs-perf-optimizer 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 9d 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.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Next.js Performance Optimizer
This skill fixes three categories of performance problems in Next.js applications:
- Sequential API fetches → Parallel with
Promise.all+ fire-and-forget for non-critical ops - Excessive React re-rendering →
memo,useCallback,useMemo - Bundle bloat → Direct imports instead of barrel imports +
next/dynamicfor code splitting
Quick Start
import sys
sys.path.insert(0, '/app/environment/skills/evo-nextjs-perf-optimizer/scripts')
from optimizer import run_optimization, validate_optimization
run_optimization('/app')
validate_optimization('/app')
Optimizations Applied
1. Server-Side Fetch Parallelization (page.tsx, API routes)
Problem: Sequential await calls for independent data sources.
Fix: Use Promise.all for independent fetches.
// BEFORE: 400 + 500 + 300 = 1200ms
const user = await fetchUser();
const products = await fetchProducts();
const reviews = await fetchReviews();
// AFTER: max(400, 500, 300) = 500ms
const [user, products, reviews] = await Promise.all([
fetchUser(), fetchProducts(), fetchReviews()
]);
2. Dependent Fetch Chaining (checkout route)
When one fetch depends on another, chain the dependent off the prerequisite while running independent fetches in parallel:
const userPromise = fetchUser();
const configPromise = fetchConfig();
const profilePromise = userPromise.then(user => fetchProfile(user.id));
const [user, config, profile] = await Promise.all([userPromise, configPromise, profilePromise]);
3. Fire-and-Forget for Non-Critical Operations
// Don't await analytics - it's not needed for the response
logAnalytics(data);
4. React.memo + useCallback + useMemo
- Wrap list item components in
memo()to prevent unnecessary re-renders - Stabilize callbacks with
useCallback(empty deps + functional updater) - Pre-compute expensive derived data with
useMemo(lookup maps, filter/sort chains)
What ships with it
1 file 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.
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.
- 9d ago First seen · 92 lines · 56 tokens per session scan A c0739e18bc3d
evo-nextjs-perf-optimizer is a skill published in the GitHub repository Zhang-Henry/CoEvoSkills (66 stars, last pushed 22d ago), licensed Apache-2.0. It adds 56 tokens to every session and 669 once invoked, about $0.0003 per session on Opus 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.
Other skills, from other repositories
material-ui-nextjs
Integrates Material UI with Next.js App and Pages routers using @mui/material-nextjs, Emotion cache providers, next/font, CSS layers with Tailwind/CSS Modules, Link component prop patterns, CSS theme variables SSR notes, and App Router useSearchParams + Suspense. Use when setting up or debugging MUI in a Next.js app.
migrate-oxlint
Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint.
api-not-found
Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.
inspector-workbench
Runs Inspector UI work on the standalone Threads state lab so the agent can see the overlay. Use when a CopilotKit employee asks an agent to fix, polish, add, or debug Inspector UI, chrome, panes, overlay actions, launcher, Home, Threads, Playground, Memory, or any visual behavior in @copilotkit/web-inspector. Don't…
react-doctor
Use when finishing a feature, fixing a bug, before committing React code, or when the user types /doctor, asks to scan, triage, or clean up React diagnostics. Covers lint, accessibility, bundle size, architecture. Includes a regression check and a full local-triage workflow that fetches the canonical playbook.
react-doctor
Diagnose and fix React codebase health issues. Use when reviewing React code, fixing performance problems, auditing security, or improving code quality.