Agent skill

React Modern

by WrongStack in WrongStack/WrongStack

A skill your agent uses when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project…

MITAuto-check passedFrontend & Design

Install React Modern

skills CLI
$ npx skills add WrongStack/WrongStack --skill react-modern -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install WrongStack/WrongStack react-modern --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/WrongStack/WrongStack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/core/skills/react-modern .claude/skills/react-modern && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
react-modern
GitHub stars
370
Token cost
~1.7k tokens
SKILL.md length
574 words
Files
2
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project…

  • Works in 9 steps: Match the setup. Server Components, 'use… → Derive, don't sync. If a value can be… → Effects are for synchronizing with… → …
  • Debugging React components and hooks — state
  • SKILL.md covers Overview, Rules, Patterns and React 19 notes, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

React Modern is an agent skill from WrongStack/WrongStack. Use this skill when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project uses. Triggers: user mentions "React", "component", "hook", "useState", "useEffect", "re-render", "Server Component", "use client", "Suspense", "useTransition", "useActionState", "Next.js", "JSX", "TSX".

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `SKILL.save.md`).

It sits in Frontend & Design, covering React components. It works with React and Next.js. The repository describes itself as: An AI coding agent that reads your code, edits files, runs commands, and reasons through bugs — across a terminal REPL, a full-screen TUI, and a browser UI, while you keep your… The licence is MIT.

When your agent uses it

  • Debugging React components and hooks — state
  • Server and Client Components — in whatever React setup the project uses

Example prompts

  • “component”
  • “useState”
  • “useEffect”
  • “/react-modern”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Match the setup. Server Components, 'use client', and server actions exist
  2. Derive, don't sync. If a value can be computed from props or state during
  3. Effects are for synchronizing with external systems (subscriptions, DOM
  4. Every effect that subscribes or starts work returns a cleanup, and every
  5. Never mutate state or props; update with new objects and arrays.
  6. Keys are stable identities from the data — never array indexes for lists
  7. Memoize after measuring, or not at all when the React Compiler is enabled.
  8. Follow the framework's file conventions over style preferences — Next.js
  9. Accessible by default: semantic elements, labels on inputs, keyboard

What it can do on your machine

Read from SKILL.md and the folder at commit 57f6018. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

React Modern loads about 1.7k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 574 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from WrongStack/WrongStack at commit 57f6018, republished under its MIT licence (© WrongStack). 574 words, ~1,655 tokens.

Download SKILL.mdSave it as .claude/skills/react-modern/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
react-modern
description
Use this skill when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project uses. Triggers: user mentions "React", "component", "hook", "useState", "useEffect", "re-render", "Server Component", "use client", "Suspense", "useTransition", "useActionState", "Next.js", "JSX", "TSX".
version
2.0.0
required-capabilities
filesystem.read, filesystem.write
optional-capabilities
verification.run, browser.interact

Modern React

Overview

Most React bugs come from the same few places: state that should have been derived, effects used as event handlers, and data fetching that races. Before applying any pattern, establish the setup — the React version in package.json, and whether a framework with Server Components (Next.js App Router, React Router framework mode) is in play or it is a client-only app (Vite, CRA, Expo). Several "modern" rules only apply to one of the two.

Rules

  1. Match the setup. Server Components, 'use client', and server actions exist only in RSC frameworks. In a client-only app, fetch through the project's data layer (TanStack Query, SWR, a loader) instead.
  2. Derive, don't sync. If a value can be computed from props or state during render, compute it; don't mirror it into state with an effect.
  3. Effects are for synchronizing with external systems (subscriptions, DOM APIs, timers, non-React widgets). User-caused changes belong in event handlers.
  4. Every effect that subscribes or starts work returns a cleanup, and every async effect guards against stale responses (abort or ignore flag).
  5. Never mutate state or props; update with new objects and arrays.
  6. Keys are stable identities from the data — never array indexes for lists that reorder, insert, or delete.
  7. Memoize after measuring, or not at all when the React Compiler is enabled. useMemo/useCallback exist for expensive work and referential stability a child or effect actually depends on.
  8. Follow the framework's file conventions over style preferences — Next.js page.tsx, layout.tsx, and route files require a default export even when the codebase otherwise prefers named exports.
  9. Accessible by default: semantic elements, labels on inputs, keyboard operability, focus management for dialogs.

Patterns

tsx
// Derived value — no state, no effect.
function Cart({ items }: { items: CartItem[] }) {
  const total = items.reduce((sum, item) => sum + item.price * item.qty, 0);
  return <p>Total: {formatMoney(total)}</p>;
}

// Effect that syncs with an external system, with cleanup.
function useOnlineStatus(): boolean {
  const [online, setOnline] = useState(() => navigator.onLine);
  useEffect(() => {
    const update = () => setOnline(navigator.onLine);
    window.addEventListener('online', update);
    window.addEventListener('offline', update);
    return () => {
      window.removeEventListener('online', update);
      window.removeEventListener('offline', update);
    };
  }, []);
  return online;
}

// Client-only fetch without a data library: abort stale requests.
function useUser(id: string) {
  const [state, setState] = useState<{ user?: User; error?: Error }>({});
  useEffect(() => {
    const controller = new AbortController();
    fetchUser(id, controller.signal)
      .then((user) => setState({ user }))
      .catch((error: Error) => {
        if (error.name !== 'AbortError') setState({ error });
      });
    return () => controller.abort();
  }, [id]);
  return state;
}
tsx
// RSC frameworks only: server data in a Server Component, interactivity in a leaf.
export default async function ProfilePage({ params }: { params: Promise<{ id: string }> }) {
  const { id } = await params;
  const user = await getUser(id); // runs on the server
  return <ProfileHeader user={user} />;
}

// React 19 form action with pending and error state.
'use client';
function RenameForm({ rename }: { rename: (prev: State, data: FormData) => Promise<State> }) {
  const [state, action, pending] = useActionState(rename, { error: null });
  return (
    <form action={action}>
      <label htmlFor="name">Name</label>
      <input id="name" name="name" required />
      <button type="submit" disabled={pending}>Save</button>
      {state.error ? <p role="alert">{state.error}</p> : null}
    </form>
  );
}

React 19 notes

  • ref is a regular prop for function components; new code doesn't need forwardRef.
  • use(promise) suspends on a promise, which must be created outside render (passed from a Server Component, or cached) — a promise created during render is recreated on every render.
  • Actions (useActionState, useFormStatus, useOptimistic) replace most hand-rolled pending and error state for forms.
Show full SKILL.md (237 more words)Show less

Debugging re-renders and stale values

SymptomUsual causeFix
Effect runs in a loopObject or function dependency recreated each renderMove it inside the effect, or derive a primitive dependency
Handler sees an old valueClosure captured stale stateFunctional update setX((prev) => …), or read the latest value inside the effect
Input loses focus while typingComponent defined inside another component, or unstable keyHoist the component; stable keys
List items swap stateIndex keys on a reordering listKeys from item identity
Hydration mismatchRendering time, randomness, or browser-only values on the serverRender those after mount, or pass them from the server

Anti-patterns

  • An effect that sets state from props — derive it, or reset with a key.
  • Fetching in an effect without abort or ignore — responses arrive out of order.
  • 'use client' at the top of a whole route tree in an RSC app — it ships everything to the browser.
  • Memoizing everything by default — cost without a measured benefit.
  • Class components or forwardRef in new code on React 19.

Before returning

  • Setup identified: React version, and RSC framework or client-only
  • No state mirrored from props; effects only sync external systems, with cleanup
  • Async work guarded against stale responses
  • Stable keys; no state or prop mutation
  • Framework file conventions respected
  • Inputs labelled, keyboard path works

Skills in scope

  • typescript-strict — for component and hook typing
  • design-system — for styling against the project's tokens
  • testing — for behaviour-level component tests

© WrongStack, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in packages/core/skills/react-modern of WrongStack/WrongStack.

  • SKILL.md
  • SKILL.save.md

Open the folder on GitHubat commit 57f6018

Compare with similar skills

React Modern next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

React Modern compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
React Modern this skillWrongStack/WrongStack370—~1.7kAutomated safety check: PassMIT
Chakra UI v3 Builderchakra-ui/chakra-ui41k—~3.1kAutomated safety check: PassMIT
React View Transitions Guidevercel-labs/next-beats16710 repos~3.1kAutomated safety check: PassMIT
Vercel React Best Practicessanity-io/sanity6.4k130 repos~1.6kAutomated safety check: PassMIT
GSAP for Reactgreensock/gsap-skills16k4 repos~1.6kAutomated safety check: PassMIT
Chakra UI v2 to v3 Migrationchakra-ui/chakra-ui41k—~3.4kAutomated safety check: PassMIT

Similar skills

  • Chakra UI v3 Builder

    chakra-ui/chakra-ui

    Builds responsive, accessible Chakra UI v3 components and layouts, sets up Chakra in new or existing projects, and designs themes with tokens, semantic tokens and recipes.

    41k GitHub stars~3.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • React View Transitions Guide

    vercel-labs/next-beats

    Official

    Guides implementing animated page and state transitions in React with the native View Transition API, covering shared elements, list reorders and directional navigation.

    167 GitHub starsUsed in 10 repos~3.1k tokens
    Frontend & DesignAuto-check passed
  • Official

    React and Next.js performance optimization guidelines from Vercel Engineering.

    6.4k GitHub starsUsed in 130 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • GSAP for React

    greensock/gsap-skills

    Shows how to run GSAP animations in React and Next.js with the useGSAP hook, refs, scoped selectors and automatic cleanup on unmount.

    16k GitHub starsUsed in 4 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • Chakra UI v2 to v3 Migration

    chakra-ui/chakra-ui

    Guides an upgrade from Chakra UI v2 to v3: inspect the project, swap packages, run the official codemod, then fix provider, color mode, props, theming and Next.js code.

    41k GitHub stars~3.4k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Creative Tim UI Blocks

    creativetimofficial/ui

    Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.

    12k GitHub stars~2.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check: notes

More from WrongStack/WrongStack

All 38 skills in this repo
  • Design Craft

    WrongStack/WrongStack

    Design or substantially improve user-facing interfaces with a product-specific visual direction, content hierarchy, and rendered critique.

    370 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Design Critique

    WrongStack/WrongStack

    A skill your agent uses to audit an interface that already exists and say precisely why it looks generated, templated, or unfinished — a scored rubric across composition, typography, color, states…

    370 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Mailbox Bridge

    WrongStack/WrongStack

    A skill your agent uses when external coding agents (Claude Code, Aider, custom scripts) need to participate in the project's shared WrongStack mailbox, or when a user asks to "expose the mailbox"…

    370 GitHub stars~3.9k tokensUpdated today
    Auto-check passed
  • Multi Agent

    WrongStack/WrongStack

    A skill your agent uses whenever work can be split across multiple AI agents running in parallel, or when orchestrating leader/worker patterns in WrongStack.

    370 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Web Platform Baseline

    WrongStack/WrongStack

    Use this skill before asserting that a CSS, HTML or accessibility capability is available, unavailable, or the right tool — it carries dated, refreshable platform facts and refuses to let stale…

    370 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Wrongstack Mailbox

    WrongStack/WrongStack

    A skill your agent uses when the user wants to communicate with WrongStack's shared project mailbox from outside WrongStack — read messages sent by WrongStack agents, send replies, broadcast to all…

    370 GitHub stars~3.5k tokensUpdated today
    Auto-check passed

Works with

Questions about React Modern

What does React Modern do?

A skill your agent uses when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project…. React Modern is an agent skill from WrongStack/WrongStack. Use this skill when writing, reviewing, or debugging React components and hooks — state, effects, data fetching, forms, Server and Client Components — in whatever React setup the project uses.

When should I use React Modern?

React Modern fits situations like: debugging React components and hooks — state; server and Client Components — in whatever React setup the project uses.

How do I install React Modern in Claude Code?

Run `npx skills add WrongStack/WrongStack --skill react-modern -a claude-code`. Or copy the skill folder (packages/core/skills/react-modern in WrongStack/WrongStack) into .claude/skills/react-modern in your project. Claude Code loads it when a task matches its description.

How do I install React Modern in Codex?

Run `npx skills add WrongStack/WrongStack --skill react-modern -a codex`. Or copy the skill folder (packages/core/skills/react-modern in WrongStack/WrongStack) into .agents/skills/react-modern in your project. Codex loads it when a task matches its description.

Can I use React Modern in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add WrongStack/WrongStack --skill react-modern -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-modern, .gemini/skills/react-modern, .github/skills/react-modern and .opencode/skills/react-modern in your project.

What does React Modern need to run?

SKILL.md names no scripts, command-line tools or credentials: React Modern is instructions for the agent only.

Does React Modern access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is React Modern safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does React Modern use?

React Modern is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does React Modern use?

About 1.7k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to React Modern?

Skills that share tags, products or a category with React Modern: Chakra UI v3 Builder (chakra-ui/chakra-ui, 41k stars), React View Transitions Guide (vercel-labs/next-beats, 167 stars), Vercel React Best Practices (sanity-io/sanity, 6.4k stars) and GSAP for React (greensock/gsap-skills, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains React Modern?

WrongStack (a GitHub organization) maintains it in WrongStack/WrongStack, which has 370 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 7, 2026.

Source: WrongStack/WrongStack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.