Official agent skill

Rnn Codebase

by wix in wix/react-native-navigation

Navigate and work with the react-native-navigation (RNN) codebase.

OfficialMITAuto-check passedMobile

Install Rnn Codebase

skills CLI
$ npx skills add wix/react-native-navigation --skill rnn-codebase -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wix/react-native-navigation rnn-codebase --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wix/react-native-navigation.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/rnn-codebase .claude/skills/rnn-codebase && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rnn-codebase
GitHub stars
13k
Token cost
~2k tokens
SKILL.md length
610 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Navigate and work with the react-native-navigation (RNN) codebase.

  • Works in 4 steps: Navigation.push() → Commands.ts →… → TurboModule: RNNTurboModule (iOS) /… → iOS: RNNCommandsHandler →… → …
  • Adding features
  • SKILL.md covers Architecture Overview, Key Cross-Layer Mappings, Where to Find Things and Options Resolution Order, plus 5 more sections
  • Calls yarn

What it does

Rnn Codebase is an agent skill from wix/react-native-navigation, published by the product's own GitHub organization. Navigate and work with the react-native-navigation (RNN) codebase. Use when fixing bugs, adding features, tracing command flows, understanding options resolution, or working across JS/iOS/Android layers in this repo.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Cross-platform mobile apps. It works with React Native, iOS and Android. The repository describes itself as: A complete native navigation solution for React Native. The licence is MIT.

When your agent uses it

  • Adding features
  • Tracing command flows
  • Understanding options resolution
  • Working across JS/iOS/Android layers in this repo

Example prompts

  • “/rnn-codebase”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Navigation.push() → Commands.ts → processing pipeline → NativeCommandsSender.ts
  2. TurboModule: RNNTurboModule (iOS) / NavigationTurboModule.kt (Android)
  3. iOS: RNNCommandsHandler → RNNViewControllerFactory → UIKit controllers
  4. Android: Navigator → LayoutFactory → View-based controllers (no Fragments)

What it can do on your machine

Read from SKILL.md and the folder at commit 1de39e0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • yarn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use yarn, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Rnn Codebase loads about 2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 610 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wix/react-native-navigation at commit 1de39e0, republished under its MIT licence (© wix). 610 words, ~2,028 tokens.

Download SKILL.mdSave it as .claude/skills/rnn-codebase/SKILL.md (or your agent's skills folder).
name
rnn-codebase
description
Navigate and work with the react-native-navigation (RNN) codebase. Use when fixing bugs, adding features, tracing command flows, understanding options resolution, or working across JS/iOS/Android layers in this repo.

React Native Navigation Codebase

Architecture Overview

RNN has three layers that mirror each other:

JS/TS (src/)  →  TurboModule bridge  →  iOS native (ios/)
                                     →  Android native (android/)

A navigation command (e.g. push) flows:

  1. Navigation.push() → Commands.ts → processing pipeline → NativeCommandsSender.ts
  2. TurboModule: RNNTurboModule (iOS) / NavigationTurboModule.kt (Android)
  3. iOS: RNNCommandsHandler → RNNViewControllerFactory → UIKit controllers
  4. Android: Navigator → LayoutFactory → View-based controllers (no Fragments)

Read ARCHITECTURE.md for the full overview.

Key Cross-Layer Mappings

Layout Types → Native Controllers
JS Layout TypeiOS ControllerAndroid Controller
componentRNNComponentViewControllerComponentViewController
stackRNNStackController (UINavigationController)StackController
bottomTabsRNNBottomTabsController (UITabBarController)BottomTabsController
sideMenuRNNSideMenuViewController (MMDrawerController)SideMenuController (DrawerLayout)
topTabsRNNTopTabsViewControllerTopTabsController (ViewPager)
splitViewRNNSplitViewControllerN/A (iOS only)
externalComponentRNNExternalViewControllerExternalComponentViewController
Options → Presenters

Each controller type has a Presenter that applies options to views:

iOS ControlleriOS PresenterAndroid Presenter
RNNComponentViewControllerRNNComponentPresenterComponentPresenter
RNNStackControllerRNNStackPresenter + TopBarPresenterStackPresenter
RNNBottomTabsControllerRNNBottomTabsPresenterBottomTabsPresenter
RNNSideMenuViewControllerRNNSideMenuPresenterSideMenuPresenter
Events (same names both platforms)
EventTrigger
RNN.ComponentDidAppearScreen becomes visible
RNN.ComponentDidDisappearScreen hidden
RNN.NavigationButtonPressedTopBar button tap
RNN.BottomTabSelectedTab changed
RNN.ModalDismissedModal dismissed
RNN.ScreenPoppedScreen popped from stack
RNN.CommandCompletedAny command finished

Where to Find Things

By task: "I need to fix/change X"
TaskJS File(s)iOS File(s)Android File(s)
Command executionsrc/commands/Commands.tsios/RNNCommandsHandler.mmreact/NavigationTurboModule.kt
Layout creationsrc/commands/LayoutTreeParser.tsios/RNNViewControllerFactory.mmoptions/LayoutFactory.java
Options processingsrc/commands/OptionsProcessor.tsios/RNNNavigationOptions.mmoptions/Options.java
Options application—ios/*Presenter.mmviewcontrollers/*Presenter.java
TopBarsrc/interfaces/Options.ts (TopBarOptions)ios/TopBarPresenter.mm, ios/RNNUIBarButtonItem.mmviews/stack/topbar/
Bottom tabssrc/interfaces/Options.ts (BottomTabsOptions)ios/RNNBottomTabsPresenter.mmviewcontrollers/bottomtabs/
Modalssrc/commands/Commands.tsios/RNNModalManager.mmviewcontrollers/modal/ModalStack.java
Overlayssrc/commands/Commands.tsios/RNNOverlayManager.mmviewcontrollers/overlay/OverlayManager.kt
Animationssrc/interfaces/Options.ts (AnimationOptions)ios/ScreenAnimationController.mmviewcontrollers/stack/StackAnimator.kt
React view rendering—ios/RNNReactView.mmreact/ReactView.java
Events to JSsrc/adapters/NativeEventsReceiver.tsios/RNNEventEmitter.mmreact/events/EventEmitter.java
Component registrationsrc/components/ComponentRegistry.ts——
Deep linking (URL → screen)src/linking/ (LinkingHandler, URLParser, RouteMatcher, DeferredLinkQueue, ModalLayoutBuilder)ios/RNNAppDelegate.mm (dispatchDeepLinkURL:, cold-start queue, RCTContentDidAppearNotification)NavigationActivity.onNewIntent → ReactGateway
By directory
  • src/ — JS public API, commands, processing pipeline. See src/ARCHITECTURE.md
  • ios/ — All Obj-C/C++ native code. See ios/ARCHITECTURE.md
  • ios/TurboModules/ — New architecture entry points (RNNTurboModule, RNNTurboManager, RNNTurboCommandsHandler)
  • android/src/main/java/com/reactnativenavigation/ — All Java/Kotlin native code. See android/ARCHITECTURE.md
  • playground/ — Demo app for development and E2E tests
  • playground/src/screens/ — Test screens exercising every feature
  • playground/e2e/ — Detox E2E tests

Options Resolution Order

Options are applied in ascending priority:

  1. Default options (from Navigation.setDefaultOptions()) — lowest priority
  2. Static options (from component class or Navigation.registerComponent)
  3. Options passed in the layout call (e.g. push, setRoot)
  4. mergeOptions() — runtime override, highest priority

JS Processing Pipeline (exact order)

API layout → OptionsCrawler.crawl() → LayoutProcessor.process()
  → LayoutTreeParser.parse() → LayoutTreeCrawler.crawl()
  → OptionsProcessor (colors, assets, custom) → NativeCommandsSender
Show full SKILL.md (262 more words)Show less

iOS Patterns

  • All controllers conform to RNNLayoutProtocol
  • RNNBasePresenter subclasses apply options — applyOptionsOnInit:, applyOptions:, mergeOptions:resolvedOptions:
  • Commands run on main thread (RCTExecuteOnMainQueue)
  • React views: RNNReactView wraps RCTSurfaceHostingView (new arch)
  • Overlays use separate UIWindow instances (RNNOverlayWindow)
  • RNNReactComponentRegistry caches React component instances

Android Patterns

  • View-based, NOT Fragment-based
  • All commands dispatched via UiThread.post()
  • ViewController<T extends ViewGroup> is the base — createView() is abstract
  • ParentController extends ChildController extends ViewController
  • Bottom tabs use AHBottomNavigation library
  • Three root layouts in NavigationActivity: rootLayout, modalsLayout, overlaysLayout
  • Tab attachment modes: Together, OnSwitchToTab, AfterInitialTab

Development Workflow

Playground app
  • yarn start — Metro bundler
  • yarn xcode — Open iOS project
  • yarn studio — Open Android project
  • yarn pod-install — Install iOS pods
Testing
  • yarn test-js — Jest unit tests
  • yarn test-unit-ios — iOS native unit tests (XCTest)
  • yarn test-unit-android — Android native unit tests (JUnit + Robolectric)
  • yarn test-e2e-ios-ci / yarn test-e2e-android-ci — Detox E2E tests
Building
  • yarn prepare — Builds src/ → lib/ (ESM + types)
  • Codegen config: rnnavigation in package.json

Common Gotchas

  • iOS uses UIKit subclasses (UINavigationController, UITabBarController); Android uses custom View hierarchy
  • splitView is iOS-only
  • Side menu: iOS uses MMDrawerController (3rd party); Android uses DrawerLayout (native)
  • Options that exist in JS types may not be implemented on both platforms — check the presenter
  • passProps are stored in JS Store, not sent to native (cleared before bridge crossing)
  • The lib/ folder is generated — never edit it, edit src/ instead
  • Deep links are processed only after the first setRoot() resolves; pre-bridge URLs on iOS are queued natively in RNNAppDelegate and flushed on RCTContentDidAppearNotification (bridgeless mode — RCTJavaScriptDidLoadNotification does NOT fire)
  • ModalLayoutBuilder strips React-reserved keys (ref, key) from URL query params before they reach passProps, to avoid React 19 ref-validation crashes

© wix, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/rnn-codebase of wix/react-native-navigation.

Open the folder on GitHubat commit 1de39e0

Compare with similar skills

Rnn Codebase next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rnn Codebase compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rnn Codebase this skillwix/react-native-navigation13k—~2kAutomated safety check: PassMIT
Expo Tailwind SetupCherryHQ/cherry-studio-app4k8 repos~3kAutomated safety check: PassMIT
Screenmapaleqsio/screenmap239—~7.2kAutomated safety check: PassMIT
Expo Brownfield Integrationmweinbach/agent-coworker1562 repos~900Automated safety check: NotesCustom licence
Simulator Audio E2Ehyochan/react-native-nitro-sound961—~1.1kAutomated safety check: PassMIT
Agent Devicegronxb/hot-updater1.8k—~3.9kAutomated safety check: PassCustom licence

Similar skills

  • Expo Tailwind Setup

    CherryHQ/cherry-studio-app

    Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

    4k GitHub starsUsed in 8 repos~3k tokens
    MobileAuto-check passed
  • Screenmap

    aleqsio/screenmap

    Generate a visual navigation map of an Expo / React Native or NativeScript app.

    239 GitHub stars~7.2k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Expo Brownfield Integration

    mweinbach/agent-coworker

    Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.

    156 GitHub starsUsed in 2 repos~900 tokens
    MobileAuto-check: notes
  • Simulator Audio E2E

    hyochan/react-native-nitro-sound

    Build and run repeatable react-native-nitro-sound recorder/player regression tests on an iOS Simulator or Android emulator, with explicit virtual-device selection, microphone permission, Maestro…

    961 GitHub stars~1.1k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Agent Device

    gronxb/hot-updater

    Automates interactions for iOS simulators/devices and Android emulators/devices.

    1.8k GitHub stars~3.9k tokensUpdated today
    MobileAuto-check passed
  • Expo UI

    arcboxlabs/linkcode

    Framework (OSS). An agent skill from arcboxlabs/linkcode.

    155 GitHub stars~1.2k tokensUpdated 9 days ago
    MobileAuto-check passed

More from wix/react-native-navigation

  • Engine E2E

    wix/react-native-navigation

    Official

    Run Wix Engine (mobile-apps-engine) iOS E2E tests locally to validate RNN changes.

    13k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Ios26 Navigation

    wix/react-native-navigation

    Official

    Reference for iOS 26 navigation bar, tab bar, toolbar, and Liquid Glass building blocks (UITab, scroll-edge effects, search placement, shared-background platter, UIButton glass configurations…

    13k GitHub stars~8.3k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Rnn Codebase

What does Rnn Codebase do?

Navigate and work with the react-native-navigation (RNN) codebase. Rnn Codebase is an agent skill from wix/react-native-navigation, published by the product's own GitHub organization. Navigate and work with the react-native-navigation (RNN) codebase.

When should I use Rnn Codebase?

Rnn Codebase fits situations like: adding features; tracing command flows; understanding options resolution; working across JS/iOS/Android layers in this repo.

How do I install Rnn Codebase in Claude Code?

Run `npx skills add wix/react-native-navigation --skill rnn-codebase -a claude-code`. Or copy the skill folder (.claude/skills/rnn-codebase in wix/react-native-navigation) into .claude/skills/rnn-codebase in your project. Claude Code loads it when a task matches its description.

How do I install Rnn Codebase in Codex?

Run `npx skills add wix/react-native-navigation --skill rnn-codebase -a codex`. Or copy the skill folder (.claude/skills/rnn-codebase in wix/react-native-navigation) into .agents/skills/rnn-codebase in your project. Codex loads it when a task matches its description.

Can I use Rnn Codebase in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wix/react-native-navigation --skill rnn-codebase -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rnn-codebase, .gemini/skills/rnn-codebase, .github/skills/rnn-codebase and .opencode/skills/rnn-codebase in your project.

What does Rnn Codebase need to run?

Going by SKILL.md and its folder, Rnn Codebase needs the command-line tools its instructions call (yarn).

Does Rnn Codebase access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rnn Codebase safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Rnn Codebase use?

Rnn Codebase is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rnn Codebase use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Rnn Codebase?

Skills that share tags, products or a category with Rnn Codebase: Expo Tailwind Setup (CherryHQ/cherry-studio-app, 4k stars), Screenmap (aleqsio/screenmap, 239 stars), Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars) and Simulator Audio E2E (hyochan/react-native-nitro-sound, 961 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rnn Codebase?

wix (a GitHub organization, an official publisher) maintains it in wix/react-native-navigation, which has 13,173 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.

Source: wix/react-native-navigation on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.