smithery.ai

react_perf_perfection

A "No-Compromise" React performance checklist enforcing strict re-render discipline and bundle auditing.

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Edit

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,427 B
  • docs SUMMARY.md 133 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

React Performance Perfection Protocol

1. Re-render Police

  • Strict Rule: Every useEffect, useCallback, and useMemo must have a justified dependency array.
  • Check:

- Are object/array props creating new references on every render? -> Use useMemo. - Are function props defined inline? -> Move to useCallback or outside component.

  • Tool: If available, use React DevTools Profiler mental model (Why did this render?).

2. Bundle Diet

  • Strict Rule: No "Barrel File" imports for massive libraries (e.g., import { X } from 'lodash'). Use direct paths (import X from 'lodash/X') unless tree-shaking is verified.
  • Images: No import img from './large.png'. Use lazy loading or external hosting.
  • Lazy Loading: Route-level components MUST be lazy loaded (React.lazy).

3. The "Interaction to Next Paint" (INP) Rule

  • Heavy computations (>50ms) must strictly be wrapped in useTransition or moved to a Web Worker.
  • Blocking the main thread for UI updates is Forbidden.

4. Checklist Before Edit

  • Will this change cause a parent re-render?
  • Am I importing a huge library for a small utility?
  • Is this state strictly local, or am I polluting the global store?