Your React Native App Says ‘New Architecture.’ Your Dependencies May Disagree.

Every React Native migration has a moment where somebody flips a flag, the app still launches, and the room collectively decides that the hard part must be over. This is a lovely moment. It is also a terrible time to stop looking.

The New Architecture is not only a setting in your app configuration. It is a contract between your application, every native dependency you ship, and every local module somebody wrote before “TurboModule” became part of the weekly vocabulary. The setting can ask for that contract. It cannot audit it for you.

That gap is why I built rn-newarch-ready, then wrapped it in the rn-newarch-audit skill in RN Agents Kit. The goal is deliberately modest: give me a trustworthy readiness report before I turn a migration into a calendar event with snacks and regret.

A migration plan should start with evidence, not optimism

Before changing an app, I want answers to a few very unglamorous questions.

  • Which installed dependencies expose a local New Architecture signal?
  • Which native dependencies need a human to verify?
  • Which repositories are archived and therefore a maintenance risk regardless of this migration?
  • Which app-local Android or iOS modules still use legacy APIs?

Those are inventory questions. They should have deterministic answers, not a long agent monologue that happens to feel confident that day.

That is the first layer of the tool:

npx rn-newarch-ready

The CLI reads the project and reports a readiness verdict without modifying anything. For automation or a saved review artifact, it can emit JSON too:

npx rn-newarch-ready --json

It classifies installed dependencies from local evidence, enriches uncertain cases with cached directory data when available, and scans app-local Android and iOS native source for legacy-module signals. The output rolls up to ready or needs-review. The important bit is that needs-review is a finding, not a crash wearing a fake moustache.

“Unknown” is not a polite way to say “broken”

Compatibility tools get dangerous when they turn missing evidence into certainty. So the audit keeps its vocabulary deliberately boring:

Report signal What it means What to do
supported The installed dependency exposes codegenConfig. No action from this finding.
likely-supported A directory signal exists, but it is library-level rather than proof for your pinned version. Check the version you actually ship.
unknown The dependency is native, but the audit could not confirm it. Verify it manually.
not-native The dependency has no native footprint. It is not a New Architecture migration risk.
not-installed The dependency is declared but absent from node_modules. Install dependencies and run the audit again.

An archived repository is reported separately because it answers a different question. It may work today and still be the wrong dependency to bet a migration on.

This is not a promise that static analysis can see everything. Dynamic module registration, non-standard native layouts, and interop-only behavior can escape a file-based scan. That limitation is part of the result, not an embarrassing footnote to hide below the fold.

The CLI counts facts. The skill turns them into a plan.

I did not want an LLM to recreate dependency classification in prose. That is how a simple evidence-gathering task becomes a choose-your-own-adventure story with a suspiciously cheerful ending.

Instead, RN Agents Kit keeps two jobs separate:

  1. rn-newarch-ready owns parsing, classification, and the report.
  2. rn-newarch-audit reads that report, groups the findings by action, explains the evidence boundaries, and proposes what to verify first.

The skill remains read-only. It does not flip the New Architecture flag, replace a library, or rewrite a native module while you are reading a summary. Those are real engineering decisions with real diffs, and they deserve explicit consent plus the project’s normal verification gates.

That boundary is the point. An audit should make the next decision easier. It should not quietly make the decision for you.

Install the audit skill

RN Agents Kit is available through an addable Claude Code plugin marketplace:

It requires Node 20 or later and a React Native project with its dependencies installed.

/plugin marketplace add AndrewDongminYoo/rn-agents-kit
/plugin install rn-agents-kit@rn-agents-kit

Then, in a React Native project with its dependencies installed, ask for rn-newarch-audit when you are planning an upgrade or asking whether the app is ready for the New Architecture. The audit starts with the report and stops before making changes.

That is useful even when the answer is “not yet.” Especially then, honestly.

What it does not promise

A ready verdict is not a production certification. It does not replace a build, a runtime check, device coverage, or the tedious work of learning what your app’s oldest native dependency has been doing in the shadows.

Likewise, an unknown entry is not a reason to abandon the migration. It is a targeted research task. That is a much better problem than finding the same uncertainty halfway through an upgrade, after the release branch has already started collecting emergency commits like loyalty points.

The free audit is meant to stand on its own. If the report shows that the expensive part is clearing a pile of flagged dependencies, migrating local native modules, and keeping the checks green in CI, that is the future “apply at scale” work I am considering. It is not built yet, and it is not required to use the audit.

If that fuller migration workflow would save you time, leave a note in the RN Agents Kit Discussions. For now, start with the smaller promise: get the list before you get the surprise.