react-sync

Build local React changes in the bundle variants consumed by Next.js, sync them into a local Next.js checkout, and test the resulting integration. Use when working on React changes that need validation in Next.js, or when asked to run buildForNext, pnpm sync-react, or synchronize a React checkout with Next.js.

Install
npx skills add 'https://github.com/vercel/next.js/tree/canary/.agents/skills/react-sync'
Download bundle ↓
canary · bfcf687Scanned 2026-09-15

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

SKILL.md

SKILL.mdBrowse 2 files
View on GitHub

Sync React to Next.js

Use this skill when syncing a local React checkout into this Next.js checkout.

Build and sync

  1. Build React from its own checkout. Pass this skill's script by its absolute path, because the working directory must be the React repository.

    cd <react-repo>
    bash <next-repo>/.agents/skills/react-sync/scripts/build-for-next.sh

    This creates build/oss-stable and build/oss-experimental with the bundle variants that Next.js consumes.

  2. Sync the build into Next.js:

    cd <next-repo>
    PATH="$(dirname "$(command -v corepack)"):$PATH" \
      pnpm sync-react --version <react-repo>

    Work around a Codex PATH-precedence bug by keeping the directory containing the active Corepack shim first on PATH. Codex injects a separate bundled pnpm executable ahead of the user's Corepack shim, and command lookup happens before Corepack reads the repository's packageManager field. The prefix makes both this command and sync-react's nested pnpm install resolve through Corepack to the repository-pinned pnpm version. Invoking only the outer command with corepack pnpm is insufficient because the nested command still resolves pnpm from PATH.

  3. Inspect the sync result before testing. Preserve unrelated changes in both checkouts. Rebuild Next.js when required, then run the focused test command matching the changed behavior.

  • $react-vendoring - vendored React runtime and type boundaries after syncing.
Discovery context

Discovered by repository scan. No exact path reference found in the snapshot’s root AGENTS.md.