react-sync
vercel/next.js/.agents/skills/react-sync/SKILL.md
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.
Skill143k starsChanged 5 months ago
---
name: react-sync
description: >
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.
metadata:
internal: true
---
# 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.
```bash
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:
```bash
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.
## Related Skills
- `$react-vendoring` - vendored React runtime and type boundaries after syncing.
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

