React performance
Portable equal-primary Claude and Codex agent harness for a governed agentic SDLC
npx -y skills add mblauberg/provenant --skill react-performanceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use for measuring or improving React rendering, hydration, bundles, waterfalls, Server Components, or Core Web Vitals. Not for general UI design, TanStack cache semantics, or Vite config; use the matching specialist.
SKILL.md
3.1 KB, 635 tokens by cl100k_base, as published. Nobody here has run it
React performance
Improve measured user or server outcomes without trading away correctness, security, accessibility or maintainability. It covers shared React behaviour, Next.js server/rendering boundaries and Vite build/runtime performance. Confirm installed versions, router, runtime and React Compiler status before using version-sensitive APIs.
Priority order
- Measure the real path. Reproduce in a production build. Use field Core Web Vitals where available, then browser traces, React DevTools Profiler, bundle analysis and server timings. Do not optimise from render counts alone.
- Remove waits and bytes. Start independent work together, move fetches to route/server boundaries, stream deliberate Suspense regions, shrink client boundaries, and lazy-load code that is not needed for the initial path.
- Fix ownership. Keep request data isolated, authenticate server actions, minimise serialised props, and distinguish request-local deduplication from persistent or cross-request caching.
- Reduce rendering work. Remove state derived through Effects, narrow
subscriptions, keep transient values out of state, and profile expensive
subtrees. With React Compiler enabled, prefer its automatic memoisation;
retain or add manual
memo,useMemoanduseCallbackonly with evidence. - Tune hot code last. Only retain a micro-optimisation when a trace or benchmark proves that exact path is material.
Workflow
- Record baseline, device/network profile, route or interaction, and target metric. Identify whether the bottleneck is network, server, JavaScript, render, layout/paint, memory or development-only tooling.
- Read current-platform.md, then select only relevant detailed rules through rule-index.md.
- For Vite, use vite.md; for version-specific Vite 8
configuration, load
web-stack-conventionsrather than duplicating it here. - When edits are authorised, use
implementand applytddto behaviour changes. Usetanstack-queryfor React Query server state,web-stack-conventionsfor Lighthouse/WCAG version deltas, andui-ux-designwhen measured performance work affects UX/accessibility. - Re-measure under the same conditions. Reject improvements that merely move work, weaken freshness/authentication, or improve synthetic data while field behaviour regresses.
- Review with review-checklist.md. Report the before/after evidence, trade-offs and any unmeasured residual risk.
The detailed rules are adapted material; provenance and licence terms are in the repository THIRD_PARTY_NOTICES.md and the Vercel React best-practices licence. Current primary sources are indexed in sources.md.
What ships with it: 53 files
83.4 KB alongside SKILL.md
evals/
- trigger_cases.yaml2.0 KB
references/
- current-platform.md2.3 KB
- review-checklist.md1.6 KB
- rule-index.md1.3 KB
- sources.md1.7 KB
- vite.md1.9 KB
rules/
- advanced-effect-events.md1.5 KB
- advanced-init-once.md958 B
- async-api-routes.md1.1 KB
- async-defer-await.md2.2 KB
- async-dependencies.md1.3 KB
- async-parallel.md654 B
- async-suspense-boundaries.md2.5 KB
- bundle-analyzable-paths.md2.3 KB
- bundle-barrel-imports.md2.8 KB
- bundle-conditional.md949 B
- bundle-defer-third-party.md920 B
- bundle-dynamic-imports.md791 B
- bundle-preload.md1.1 KB
- client-event-listeners.md2.0 KB
- client-localstorage-schema.md1.9 KB
- client-passive-event-listeners.md1.6 KB
- client-request-dedup.md1.3 KB
- rendering-activity.md564 B
- rendering-animate-svg-wrapper.md1.2 KB
- rendering-content-visibility.md815 B
- rendering-hoist-jsx.md1.0 KB
- rendering-hydration-no-flicker.md2.3 KB
- rendering-hydration-suppress-warning.md872 B
- rendering-resource-hints.md2.5 KB
- rendering-svg-precision.md588 B
- rendering-usetransition-loading.md2.5 KB
- rerender-defer-reads.md973 B
- rerender-dependencies.md824 B
- rerender-derived-state-no-effect.md1.2 KB
- rerender-memo.md1.1 KB
- rerender-memo-with-default-value.md1.3 KB
- rerender-move-effect-to-event.md1.2 KB
- rerender-no-inline-components.md2.1 KB
- rerender-split-combined-hooks.md1.8 KB
13 more files not listed here. See all 53 in the repository.