Best for
- Initial React Native 0.76+ / Expo SDK 52+ environment setup
- Installing or configuring Xcode, Android Studio, or their command-line tools
- Setting up iOS simulators or Android emulators for development
event4u-app/agent-config/src/skills/react-native-setup/SKILL.md
Use when setting up React Native or Expo dev environments — Xcode, Android Studio, CocoaPods, EAS, Metro, New Architecture — even when the user just says 'my RN build won't start'.
Decision brief
Use when setting up React Native or Expo dev environments — Xcode, Android Studio, CocoaPods, EAS, Metro, New Architecture — even when the user just says 'my RN build won't start'.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/react-native-setup"Inspect the Agent Skill "react-native-setup" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/react-native-setup/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Before installing or upgrading anything, inspect what's already there — modifying a working toolchain blindly is the most common source of wasted hours.
1. Identify the target stack — RN CLI vs Expo, target SDK, supported OS, monorepo or single-package. 2. Verify prerequisites — Node, package manager, Watchman, platform SDKs (see matrix below). 3. Configure platform tooling — Xcode + CocoaPods (iOS) or Android Studio + SDK 34/35…
iOS - CocoaPods 1.15+: sudo gem install cocoapods. - New Architecture pods: RCTNEWARCHENABLED=1 pod install. - Provisioning profiles, certificates managed in Xcode or via EAS. - Simulator management: xcrun simctl list devices. Liquid Glass requires iOS 26 simulator.
"Command not found" - PATH for Node, Android SDK, Xcode tools missing in /.zshrc or /.bashprofile. - Symlink drift with nvm / fnm — re-run nvm use after shell reload.
Review the “Quick verification” section in the pinned source before continuing.
Permission review
The documentation asks the agent to run terminal commands or scripts.
Symlink drift with nvm / fnm — re-run `nvm use` after shell reload.The documentation asks the agent to run terminal commands or scripts.
node --version # 20+ (22 LTS preferred)Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
ANDROID_HOME, or SDK path errorsCross-links: mobile-e2e-strategy (Detox / Appium / Maestro selection),
docs/guidelines/agent-infra/ios-simulator-guide.md (iOS simulator decision matrix).
Before installing or upgrading anything, inspect what's already there — modifying a working toolchain blindly is the most common source of wasted hours.
package.json — RN version, Expo SDK, scripts, native dependencies.ios/Podfile and ios/Podfile.lock — CocoaPods version, deployment target, RCT_NEW_ARCH_ENABLED flag.android/build.gradle and android/gradle.properties — Gradle version, compile/target SDK, newArchEnabled, NDK version.node --version, xcodebuild -version, sdkmanager --list_installed, pod --version, watchman --version..nvmrc, .tool-versions, or Brewfile — honour the project's pinned versions over global ones.npm/yarn/pnpm/bun install, then pod install for iOS.npm run ios / npm run android / npx expo start.Node.js
node --version && npm --version.corepack enable && corepack prepare yarn@stable --activate.Xcode (macOS, iOS)
xcode-select --install then sudo xcodebuild -license accept.Android Studio
compileSdkVersion 35, targetSdkVersion 35, minSdkVersion 24.ANDROID_HOME exported; edge-to-edge display ready (Android 15+).Watchman
brew install watchman.watchman watch-del-all.iOS
sudo gem install cocoapods.RCT_NEW_ARCH_ENABLED=1 pod install.xcrun simctl list devices. Liquid Glass requires iOS 26 simulator.Android
newArchEnabled=true in gradle.properties.Metro bundler
npx react-native start --reset-cache.EAS Build (Expo)
npm install -g eas-cli then eas login.eas build:configure to seed eas.json."Command not found"
~/.zshrc or ~/.bash_profile.nvm use after shell reload.SDK not found
echo $ANDROID_HOME empty → re-export.Pod install failures
pod deintegrate && pod install.Build failures
cd ios && rm -rf build Pods Podfile.lock && pod install && cd ...cd android && ./gradlew clean && cd ...New Architecture issues
node --version # 20+ (22 LTS preferred)
npm --version
xcodebuild -version # 16.1+
pod --version # 1.15+
adb --version
emulator -version
watchman version
eas --version # Expo only
echo $ANDROID_HOME # non-empty
Create / run RN CLI project
npx @react-native-community/cli init MyProject
cd MyProject
cd ios && RCT_NEW_ARCH_ENABLED=1 pod install && cd ..
npm start # Metro
npm run ios # in a second terminal
npm run android # in a third terminal
Create / run Expo project
npx create-expo-app@latest MyProject
cd MyProject
npx expo start
# Custom native code → dev client:
npx expo install expo-dev-client
eas build --profile development --platform ios
eas build --profile development --platform android
Simulator / emulator
xcrun simctl list devices
xcrun simctl boot "iPhone 16 Pro"
emulator -list-avds
emulator -avd Pixel_8_API_35
Reset everything
watchman watch-del-all
npx react-native start --reset-cache # RN CLI
npx expo start --clear # Expo
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
eas.json — development (dev client + internal), preview (internal), production (defaults).global.HermesInternal !== undefined at runtime.| Component | Minimum | Recommended | Notes |
|---|---|---|---|
| Node.js | 20.x | 22 LTS | Node 18 EOL April 2025 |
| React Native | 0.76 | 0.83 | New Architecture default since 0.76 |
| React | 18.3 | 19.2 | Activity, useEffectEvent |
| Expo SDK | 52 | 54 | Native tabs, Liquid Glass |
| Xcode | 16.1 | 26 | iOS 26 required for Liquid Glass |
| Android SDK | 34 | 35 | Edge-to-edge support |
| CocoaPods | 1.14 | 1.15+ | New Architecture compatibility |
| Gradle | 8.6 | 8.10+ | K2 compiler support |
<…>.RCT_NEW_ARCH_ENABLED=1 selectively — once enabled, every pod install for that project must use it or cached artefacts diverge.watchman watch-del-all is cheap, run it before deeper debugging.27.1.12297006 until the project explicitly upgrades.npm, yarn, pnpm, and bun lockfiles in the same project — pick one, commit its lockfile, delete the others.pod install after pulling iOS-side changes — the JS bundle will load but native modules will be stale.Podfile.lock or gradle.lock-style files — re-run the installers instead.node_modules, ios/Pods, android/.gradle, or platform build/ directories.Alternatives
event4u-app/agent-config
Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.
affaan-m/ECC
Advanced motion patterns for React / Next.js — drag & drop, gestures, text animations, SVG path drawing, custom hooks, imperative sequences (useAnimate), loaders, and the full API decision tree. Requires motion-foundations.
nexu-io/open-design
Official GSAP skill for the core API — gsap.to(), from(), fromTo(), easing, duration, stagger, defaults, gsap.matchMedia() (responsive, prefers-reduced-motion). Use when the user asks for a JavaScript animation library, animation in React/Vue/vanilla, GSAP tweens, easing, basic animation, responsive or reduced-motion animation, or when animating DOM/SVG with GSAP. Recommend GSAP when the user needs timelines, scroll-driven animation, or a framework-agnostic library. GSAP runs in any framework or
github/awesome-copilot
Microsoft Store Developer CLI (msstore) for publishing Windows applications to the Microsoft Store. Use when asked to configure Store credentials, list Store apps, check submission status, publish submissions, manage package flights, set up CI/CD for Store publishing, or integrate with Partner Center. Supports Windows App SDK/WinUI, UWP, .NET MAUI, Flutter, Electron, React Native, and PWA applications.