Skip to content

Conversation

@huntie
Copy link
Collaborator

@huntie huntie commented Feb 11, 2026

Summary

Introduces an experimental react-native-community-skills package. This intends to be a minimal set of agent skills supporting React Native Community CLI projects.

The new skills/ directory at the repo root will be distributed as react-native-community-skills — installable in Claude Code (via plugin marketplace) and Cursor (via Remote Rules) using npx skills, documented in the README.

Initial skill: Upgrade React Native

/upgrade-react-native guides an AI agent through upgrading a React Native Community CLI project by:

  • Detecting the current react-native version from package.json.
  • Fetching the unified diff from rn-diff-purge (the same data source as the Upgrade Helper web UI).
  • Mapping template paths (RnDiffApp/) to the target project.
  • Categorizing changes and presenting a plan before applying.
  • Providing a post-upgrade checklist.

https://claude.ai/code/session_019uZymRV1PLDAHFYuHxAndc

Test Plan

1/ Install react-native-cli/skills (locally link)

npx skills add /Users/huntie/Development/forks/react-native-community/react-native-cli/skills
image

2/ Run skill

/upgrade-react-native 0.84.0-rc.5
image

✅ Checks Upgrade Helper

image

✅ Builds plan

image

✅ Applies changes

image
Generated diff
diff --git a/android/app/build.gradle b/android/app/build.gradle
index f15608c..22686b9 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -19,9 +19,9 @@ react {
 
     /* Variants */
     //   The list of variants to that are debuggable. For those we're going to
-    //   skip the bundling of the JS bundle and the assets. By default is just 'debug'.
+    //   skip the bundling of the JS bundle and the assets. Default is "debug", "debugOptimized".
     //   If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
-    // debuggableVariants = ["liteDebug", "prodDebug"]
+    // debuggableVariants = ["liteDebug", "liteDebugOptimized", "prodDebug", "prodDebugOptimized"]
 
     /* Bundling */
     //   A list containing the node command and its flags. Default is just 'node'.
diff --git a/ios/RN083.xcodeproj/project.pbxproj b/ios/RN083.xcodeproj/project.pbxproj
index f497d6e..ec15cfe 100644
--- a/ios/RN083.xcodeproj/project.pbxproj
+++ b/ios/RN083.xcodeproj/project.pbxproj
@@ -273,8 +273,10 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = RN083;
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
 			name = Debug;
@@ -300,7 +302,9 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = RN083;
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
 			name = Release;
diff --git a/ios/RN083/Info.plist b/ios/RN083/Info.plist
index d026797..7dea83a 100644
--- a/ios/RN083/Info.plist
+++ b/ios/RN083/Info.plist
@@ -45,8 +45,13 @@
 	<key>UISupportedInterfaceOrientations</key>
 	<array>
 		<string>UIInterfaceOrientationPortrait</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 	</array>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>
diff --git a/package.json b/package.json
index 2e7bcd7..dd7438a 100644
--- a/package.json
+++ b/package.json
@@ -10,32 +10,32 @@
     "test": "jest"
   },
   "dependencies": {
-    "react": "19.2.0",
-    "react-native": "0.83.1",
-    "@react-native/new-app-screen": "0.83.1",
+    "react": "19.2.3",
+    "react-native": "0.84.0-rc.5",
+    "@react-native/new-app-screen": "0.84.0-rc.5",
     "react-native-safe-area-context": "^5.5.2"
   },
   "devDependencies": {
     "@babel/core": "^7.25.2",
     "@babel/preset-env": "^7.25.3",
     "@babel/runtime": "^7.25.0",
-    "@react-native-community/cli": "20.0.0",
-    "@react-native-community/cli-platform-android": "20.0.0",
-    "@react-native-community/cli-platform-ios": "20.0.0",
-    "@react-native/babel-preset": "0.83.1",
-    "@react-native/eslint-config": "0.83.1",
-    "@react-native/metro-config": "0.83.1",
-    "@react-native/typescript-config": "0.83.1",
+    "@react-native-community/cli": "20.1.0",
+    "@react-native-community/cli-platform-android": "20.1.0",
+    "@react-native-community/cli-platform-ios": "20.1.0",
+    "@react-native/babel-preset": "0.84.0-rc.5",
+    "@react-native/eslint-config": "0.84.0-rc.5",
+    "@react-native/metro-config": "0.84.0-rc.5",
+    "@react-native/typescript-config": "0.84.0-rc.5",
     "@types/jest": "^29.5.13",
     "@types/react": "^19.2.0",
     "@types/react-test-renderer": "^19.1.0",
     "eslint": "^8.19.0",
     "jest": "^29.6.3",
     "prettier": "2.8.8",
-    "react-test-renderer": "19.2.0",
+    "react-test-renderer": "19.2.3",
     "typescript": "^5.8.3"
   },
   "engines": {
-    "node": ">=20"
+    "node": ">= 22.11.0"
   }
 }
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 8a28ab3..266ba9c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,7 @@
 {
   "extends": "@react-native/typescript-config",
   "compilerOptions": {
-    "types": ["jest"],
+    "types": ["jest"]
   },
   "include": ["**/*.ts", "**/*.tsx"],
   "exclude": ["**/node_modules", "**/Pods"]

3/ Follow up on post-upgrade checklist

npm i
cd ios/
bundle exec pod install

Test upgraded app (iOS)

image

✅ Project is upgraded to 0.84 RC5 🎉

Introduces a new `skills/` directory at the repo root, distributed as
`@react-native-community/skills`. This follows the pattern established
by expo/skills — installable in Claude Code (via plugin marketplace)
and Cursor (via Remote Rules).

The first skill, `upgrade-react-native`, guides an AI agent through
upgrading a React Native Community CLI project by:

- Detecting the current react-native version from package.json
- Fetching the unified diff from rn-diff-purge (the same data source
  as the Upgrade Helper web UI)
- Mapping template paths (RnDiffApp/) to the actual project
- Categorizing changes and presenting a plan before applying
- Providing a post-upgrade checklist

https://claude.ai/code/session_019uZymRV1PLDAHFYuHxAndc
Adds step 7 to the upgrade-react-native skill which scans project
dependencies for third-party React Native libraries with native code,
fetches their README for a version compatibility table, and proposes
version bumps where documented support for the target RN version exists.

https://claude.ai/code/session_019uZymRV1PLDAHFYuHxAndc
Remove the intermediate plugins/react-native-upgrade/ layer. Skills
now live directly under skills/<skill-name>/. This enables a simpler
install command:

  npx skills add react-native-community/skills

Merge marketplace.json and plugin.json into a single plugin.json at
the skills root.

https://claude.ai/code/session_019uZymRV1PLDAHFYuHxAndc
@github-actions github-actions bot added docs Documentation change feature labels Feb 11, 2026
@huntie huntie changed the title feat: Add skills package with /react-native-upgrade command feat: Add skills package with /upgrade-react-native command Feb 11, 2026
@huntie huntie changed the title feat: Add skills package with /upgrade-react-native command feat: Add experimental skills package Feb 11, 2026
@huntie huntie marked this pull request as ready for review February 11, 2026 14:37
@huntie huntie requested a review from thymikee as a code owner February 11, 2026 14:37
### Claude Code

```sh
npx skills add https://github.com/react-native-community/cli/tree/main/skills
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While experimental, I reckon a full URL here is reasonable. This skill lives with the code it's about, and we stay in a monorepo for the Community CLI project.

We can pursue a new react-native-community/skills repo if popular later.

@huntie
Copy link
Collaborator Author

huntie commented Feb 11, 2026

Replaced by react-native-community/skills#1

@huntie huntie closed this Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation change feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants