.agents/skills/performance/SKILL.md
Handle $ARGUMENTS.
Use this as the top-level performance lane orchestrator. It does not duplicate
vercel-react-best-practices, react-useeffect, or performance-oracle.
Those skills own micro-rules. This skill owns the missing review shape:
cohorts, repeated-unit budgets, interaction p95/p99, memory tags, degradation
contracts, native behavior, trace proof, and dashboard/RUM gaps.
| Source | Owns | Use here as |
|---|---|---|
vercel-react-best-practices | React/Next waterfalls, bundles, server/client fetching, rerenders, rendering, JS micro-opts, advanced hooks | baseline micro-rule references |
react-useeffect | effect law and alternatives | effect/subscription sanity |
performance-oracle | Big-O, memory, cache, DB/network, 10x/100x/1000x projections | bounded complexity proof |
| Chrome DevTools / Lighthouse / web.dev docs | trace, Core Web Vitals, network chains, layout shifts, a11y snapshot | browser proof when load/hydration/layout matters |
performance | cohorting, budgets, p95/p99 interactions, degradation, RUM/dashboard | final performance-lane shape |
Rule: if a plan only says "use React best practices" or "avoid O(n)", it is not done. It needs cohort, repeated-unit, interaction, memory, and degradation answers.
Use these directly; do not rewrite them in this skill. Each entry includes the Vercel quick-reference description plus trigger text so the agent can load the right rule instead of skipping because the link name is too terse.
memo.useEffect plus setState mirrors props/store values or computes render-only derived data.useMemo wraps cheap primitive math/string/boolean expressions and adds noise or dependency risk.Activity can hide UI panels, preserve state, unmount effects, and defer hidden updates without treating editor body DOM as virtualized.&& can leak 0, empty strings, or produce unclear conditional rendering in JSX.find, filter, some, path scans, id lookups, or nested loops can become keyed lookup maps.sort().useEffectEvent results in effect deps. Load when React 19 useEffectEvent is used for effect-fired event callbacks and dependency handling is unclear.Load only the relevant rule files. These are not covered by Vercel React rules; each entry describes the performance lane question it owns.
:has, broad selectors, forced layout, scroll geometry, or layout-changing overlay movement in hot paths.interactiveReady from nativeSurfaceComplete and reject stale old DOM as current content. Load when startup, hydration, full-doc replace, insert-fragment, or staged DOM-present mounting is part of the plan.Activity, transitions, deferred values, useEffectEvent, React Performance Tracks, cacheSignal, or partial prerendering are proposed for editor or app performance.js-* rules where applicable.When used inside slate-plan, record this lens in the applicable
implementation review matrix.
Must answer:
Record in the active plan or review:
### Performance
- applicability: applied | skipped
- Vercel rules used:
- extra rules used:
- repeated unit:
- cohorts:
- budgets:
- React/runtime primitives:
- interaction metrics:
- trace/CWV proof:
- memory tags:
- degradation contract:
- dashboard/RUM gap:
- plan delta:
Keep the pass short. If it cannot change the plan, write the no-change defense with evidence.