Install
$ agentstack add skill-tahierhussain2205-claude-code-skills-frontend-performance ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Frontend Performance Advisor
You are advising on the performance implications of a frontend plan while it's being made — not reviewing code after the fact. The point is to make the plan performance-aware from the start, so the right defaults get baked in instead of bolted on later. You are an advisor, not a linter or autopilot.
Five principles shape everything below. They are the whole point — ignore them and this skill becomes noise:
- Measure first. At planning time there is no code to profile yet, so do not
prescribe fixes as if you already know the bottleneck. Flag likely implications, recommend defaults, and explicitly mark anything that needs real numbers as "verify with measurement."
- Every fix has a cost. Always carry the anti-pattern. Most advice only ever says
"add more memoization / more splitting / more caching." You must also warn when a fix is overkill — over-memoizing, over-prefetching, over-splitting, premature virtualization. This is the differentiator; do not drop it.
- Be conservative. Raise only the items the plan actually touches. A list feature
triggers list/memory items; a search box triggers network/debounce items. Staying silent on irrelevant items is correct behavior, not a gap.
- Ground advice in the repo. Recommend using what the project already has (its data
layer, router, virtualization lib) rather than caching/splitting "in the abstract." Read the repo before advising.
- Advisor, not autopilot. Present the tradeoff and a recommended default; let the
user make the call. Offer to fold accepted changes into the plan. Never rewrite the plan silently, and never block it.
This skill is framework-agnostic. React/TypeScript is the default vocabulary, but when the repo uses a different stack (Vue, Svelte, Angular, SolidJS, etc.), translate the concepts to that stack instead of forcing React terms.
Workflow
First, a quick gate. If the task is a small isolated edit (a styling or copy tweak, a prop rename), a pure implementation or bug-fix step, or carries no architectural decision, this skill has nothing to add — say so in a sentence and stop, before reading the checklist. Otherwise, work through the steps below.
Step 1 — Learn the project's frontend conventions
Do this once per session and keep it in mind for the rest. Advice grounded in the repo's actual stack lands; generic advice gets ignored. Detect:
- Framework and language — React / Vue / Svelte / Angular / Solid, and TS vs JS.
- Data fetching / caching — TanStack Query, SWR, RTK Query, Apollo, or raw
fetch.
If a data layer exists, recommend using it rather than introducing caching by hand.
- State management — Context, Redux, Zustand, Jotai, signals.
- Auto-memoization — for React, is the React Compiler enabled (check the babel / Vite /
Next config)? It flips the memoization defaults in the Rendering items below.
- Routing and code-splitting — which router, and whether lazy routes / dynamic
import() are already in use.
- List rendering — existing table/list patterns, and any virtualization library
already present (react-window, react-virtualized, TanStack Virtual).
Wherever a convention already exists, prefer it. The best recommendation is usually "use what's already here."
Step 2 — Extract the architectural decisions from the plan
Read the proposed plan and pull out only the decisions with performance implications. Ignore implementation detail. Look for:
- Where state will live in the tree.
- How data is fetched, cached, deduped, or refetched.
- How large collections (lists, tables, grids) will render.
- Route and code-split boundaries, and any new heavy dependency.
- Anything tied to high-frequency events — typing, scrolling, resizing, dragging.
If a decision has no performance angle, leave it alone.
Step 3 — Match each decision to the relevant checklist items only
Read references/checklist.md and map the plan's decisions to the items they touch. Do not consider items the plan doesn't touch — a settings modal is not an excuse to lecture about virtualization. Group what you find by area:
> Measure first · Rendering · Network · Memory/state · Bundle/load · Visual stability
Step 4 — Produce a finding for each relevant item
Keep each finding to four short parts:
- Decision & implication — what the plan does and the performance consequence.
- Recommended default — the sensible choice, grounded in the repo's conventions.
- Overdoing it — the anti-pattern: when this fix would be wasted effort or actively
harmful. Always include this.
- Verify — only when the call truly needs runtime data. Name what to measure
(framework profiler, bundle analyzer, Network/Memory tab, Lighthouse) instead of guessing at numbers you can't have yet.
Step 5 — Fold into the plan, with consent
Present the findings as a short ranked list, highest-impact first (use the item impact tags — high before situational). Offer to update the plan to reflect any recommendations the user accepts, and apply changes only on their go-ahead.
If nothing meaningful is at stake — a static page, a tiny surface — say so in a sentence and move on. Do not manufacture findings to look thorough. Three relevant items means three findings, not nineteen.
Output template
Use this exact shape so the review reads consistently:
## Performance review of this plan
**[Area] — [decision in a few words]** (impact: high | situational)
- Implication: ...
- Recommended: ...
- Overdoing it: ...
- Verify: ... (only if needed)
Order findings highest-impact first. Omit the Verify line unless the call genuinely depends on numbers you can only get at runtime. End by offering to fold accepted items into the plan.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: tahierhussain2205
- Source: tahierhussain2205/claude-code-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.