upgrade-react-native

A procedure for upgrading the React Native version in two Salesforce mobile software repositories. React Native is a framework for building mobile apps with JavaScript and React.

In plain words
What is it for?
Use it to check the target release, inspect dependency requirements, find removed APIs, update the repositories, and validate the upgrade.
Why use it?
It organizes the compatibility checks and code updates needed when moving an app to a newer React Native release.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/forcedotcom/salesforcemobilesdk-reactnative/upgrade-react-native
Any agent
npx skills add forcedotcom/SalesforceMobileSDK-ReactNative --skill upgrade-react-native
Clone the repo
git clone --depth 1 https://github.com/forcedotcom/SalesforceMobileSDK-ReactNative

Made for: Claude Code, Codex.

Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,117 The whole file, excluding the scripts and references it only reads on demand.
Security scan E 3 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.03117
Opus 5 $0.00000 $0.01558
Sonnet 5 $0.00000 $0.00623
Haiku 4.5 $0.00000 $0.00312

Measured 2d ago against content hash ce62f1f2dce3, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade E, and why

upgrade-react-native scanned grade E with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

curl -s "https://registry.npmjs.org/react-native" | python3 -c "

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf android/generated/source/codegen

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s "https://registry.npmjs.org/react-native" | python3 -c "
.claude/skills/upgrade-react-native/SKILL.md · 271 lines

How it starts

The opening of the file, as written. The whole thing — 271 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Upgrade React Native Version

Upgrades the React Native version in the SalesforceMobileSDK-ReactNative and SalesforceMobileSDK-Templates repos.

When to Use

When bumping React Native from one minor/patch version to another (e.g., 0.84.x → 0.85.x) as part of the SDK's regular RN upgrade cadence.

Parameters

  • OLD_VERSION: Current RN version (e.g., 0.84.1)
  • NEW_VERSION: Target RN version (e.g., 0.85.3)
  • BRANCH: Feature branch name (e.g., rn-upgrade-0.85)
  • FORK_USER: GitHub username for the personal fork (e.g., wmathurin)

Process


Phase 1: Pre-Checks

1a. Find the latest patch

curl -s "https://registry.npmjs.org/react-native" | python3 -c "
import sys, json
data = json.load(sys.stdin)
versions = [v for v in data['versions'] if v.startswith('NEW_MINOR.')]
print('Latest:', versions[-1])
"

1b. Check React peer dep for the new version

curl -s "https://registry.npmjs.org/react-native/NEW_VERSION" | python3 -c "
import sys, json; d=json.load(sys.stdin)
print('React peer dep:', d['peerDependencies'].get('react'))
"

1c. Grep for removed/deprecated APIs in our source

Check the RN release blog for removed APIs, then grep:

# Examples from past upgrades — always check the release notes for the actual list
grep -r "StyleSheet\.absoluteFillObject" src/ test/
grep -r "CatalystInstanceImpl\|NativeViewHierarchyManager\|ReactTextUpdate\|UIManagerHelper" android/
grep -r "RCTHostRuntimeDelegate" ios/
grep -r "preset.*react-native" --include="*.json" --include="*.js" .

If any hits: fix before bumping. If clean: proceed.


Phase 2: Version Bumps — ReactNative repo

Edit these files, replacing OLD_VERSION → NEW_VERSION everywhere:

File Fields
package.json peerDependencies["react-native"], devDependencies["@react-native/*"]
iosTests/package.json dependencies["react-native"], devDependencies["@react-native/*"], dependencies["react-native-force"] URL #rn-upgrade-OLD#rn-upgrade-NEW
androidTests/package.json same as iosTests
android/build.gradle react-android:OLD_VERSIONreact-android:NEW_VERSION
androidTests/android/app/build.gradle.kts react-android:OLD, hermes-android:OLD → NEW

Read the full file on GitHub · 271 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 271 lines · 0 tokens per session scan E ce62f1f2dce3

Subscribe to this mod's changes

upgrade-react-native is a skill published in the GitHub repository forcedotcom/SalesforceMobileSDK-ReactNative (57 stars, last pushed 4d ago), licensed BSD-3-Clause. It costs nothing until one of its globs matches a file; then it loads 3,117 tokens. A static security scan graded it E with 3 findings (downloads and executes remote code, recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

stitch::react-native

Convert Stitch HTML designs to React Native components, or syncs/updates existing native components to align with the latest Stitch designs, using StyleSheet.

google-labs-code/stitch-skills · 35 tokens

react-native-expert

Builds, optimizes, and debugs cross-platform mobile applications with React Native and Expo. Implements navigation hierarchies (tabs, stacks, drawers), configures native modules, optimizes FlatList rendering with memo and useCallback, and handles platform-specific code for iOS and Android. Use when building a React…

Jeffallan/claude-skills · 99 tokens

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

zhukunpenglinyutong/desktop-cc-gui · 57 tokens

expo-web-to-native

Framework (OSS). Migrate an existing web React app to a native iOS/Android app with Expo. Use when the user wants to turn a website into a mobile app, port a Next.js/Vite/CRA React codebase to React Native, reuse web code on native incrementally, or asks how web idioms (the DOM, CSS, React Router, localStorage…

expo/skills · 111 tokens

building-ui

Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.

Intelligent-Internet/ii-agent · 30 tokens

use-dom

Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.

Intelligent-Internet/ii-agent · 32 tokens