Agent skill

Debug Rn Native Crash

by LedgerHQ in LedgerHQ/ledger-live

Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful.

MITAuto-check passedMobile

Install Debug Rn Native Crash

skills CLI
$ npx skills add LedgerHQ/ledger-live --skill debug-rn-native-crash -a claude-code

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

GitHub CLI
$ gh skill install LedgerHQ/ledger-live debug-rn-native-crash --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/LedgerHQ/ledger-live.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/debug-rn-native-crash .claude/skills/debug-rn-native-crash && 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
debug-rn-native-crash
GitHub stars
622
Token cost
~1.2k tokens
SKILL.md length
477 words
Files
2
Skills in repo
50
Repo updated
First seen
Licence
MIT

At a glance

Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful.

  • Works in 5 steps: Capture the native exception from the… → Reproduce under Xcode debugger → Identify the offending React component → …
  • The app dies silently
  • SKILL.md covers Trigger, Workflow, Guardrails and Output, plus 1 more section
  • Calls xcrun and pnpm

What it does

Debug Rn Native Crash is an agent skill from LedgerHQ/ledger-live. Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful. Use when the app dies silently, throws an NSException on iOS, or shows only a native stack trace.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It sits in Mobile, covering Debugging, Cross-platform mobile apps and iOS development. It works with iOS, React Native, Xcode and Objective-C. The repository describes itself as: Mono-repository for Ledger Wallet apps and related packages. The licence is MIT.

When your agent uses it

  • The app dies silently
  • Throws an NSException on iOS
  • Shows only a native stack trace

Example prompts

  • “/debug-rn-native-crash”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Capture the native exception from the simulator
  2. Reproduce under Xcode debugger
  3. Identify the offending React component
  4. Map the native cause to a code pattern
  5. Fix and verify Metro actually serves the fix

What it can do on your machine

Read from SKILL.md and the folder at commit 30d7883. 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:

    • xcrun
    • pnpm

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, 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

Debug Rn Native Crash loads about 1.2k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 477 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 LedgerHQ/ledger-live at commit 30d7883, republished under its MIT licence (© LedgerHQ). 477 words, ~1,154 tokens.

Download SKILL.mdSave it as .claude/skills/debug-rn-native-crash/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
debug-rn-native-crash
description
Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful. Use when the app dies silently, throws an NSException on iOS, or shows only a native stack trace.

Debug RN native crash

Trigger

The mobile app crashes with one of:

  • A native iOS exception (NSInternalInconsistencyException, RCTFatal, Fabric assertion)
  • Only a native stack trace (RCTViewComponentView, RCTPerformMountInstructions, …) with no JS source
  • "Failed to symbolicate" in Metro and no actionable JS error
  • Reproducible crash but unclear which RN component is at fault

If the JS console already gives a clear stack, don't use this skill — read the JS error.

Workflow

1. Capture the native exception from the simulator
bash
xcrun simctl list devices booted   # get the booted sim UDID
xcrun simctl spawn <UDID> log show --last 5m --style compact \
  --predicate 'processImagePath CONTAINS "ledgerlivemobile" AND (eventMessage CONTAINS "Assertion failure" OR eventMessage CONTAINS "Attempt to unmount" OR eventMessage CONTAINS "Terminating app")'

Extract the exception message, native stack, and any view descriptors (frame, tag, backgroundColor, alpha). These already tell you a lot — see reference.md "Anatomy of a Fabric assertion message".

2. Reproduce under Xcode debugger
bash
open apps/ledger-live-mobile/ios/ledgerlivemobile.xcworkspace
  • Stop the running app first (otherwise Xcode can't attach cleanly).
  • In Xcode: Cmd+8 → + → Exception Breakpoint → Objective-C → All.
  • Cmd+R to build + run + attach.
  • Reproduce the crash. Xcode pauses at objc_exception_throw.
3. Identify the offending React component

In the lldb console at the bottom of Xcode:

  1. Pick the frame that has the offending C++/ObjC code:
    bt              # full backtrace, find the frame in RN code
    frame select N  # N = the RN frame (often RCTPerformMountInstructions)
  2. Inspect the views referenced by the failed instruction. Variable names depend on the frame — read the source displayed in Xcode. Common ones:
    po parentViewDescriptor.view
    po oldChildViewDescriptor.view
    p  mutation.parentTag
    p  mutation.index
    p  oldChildShadowView.componentName
  3. Find where the orphan child is actually attached vs where Fabric thinks:
    po [oldChildViewDescriptor.view superview]
    po [oldChildViewDescriptor.view accessibilityIdentifier]   # = RN testID
    po [parentViewDescriptor.view superview]
    po [[parentViewDescriptor.view superview] accessibilityIdentifier]
    po [parentViewDescriptor.view subviews]
  4. Climb the superview chain until you hit a accessibilityIdentifier (= RN testID) you recognise in source. Grep for it:
    bash
    grep -rn 'testID="<identifier>"' apps/ledger-live-mobile/src libs/ui
    That's the RN component family. From there, read the JSX and find the conditional render / animation / library that produced the mismatch.
4. Map the native cause to a code pattern

The vast majority of Fabric assertions come from a small set of patterns. See reference.md "Common Fabric crash patterns".

Show full SKILL.md (209 more words)Show less
5. Fix and verify Metro actually serves the fix

A common trap: Metro's file watcher dies on EMFILE: too many open files. Edits silently never reach the bundle. Always confirm Metro logged a fresh Compiled ios in Xs line after each edit (in the terminal running pnpm mobile start:ios, or wherever Metro's stdout is streaming).

If the watcher is broken, restart Metro with --reset-cache. Reload the app (Cmd+R in sim or shake → Reload).

Guardrails

  • Don't guess at causes from the JS code alone — the native debugger is the source of truth.
  • Don't trust "the bug only happens when flag X is on" until the user has tested both states. Correlation in mobile apps is often coincidental (cold start vs hot reload, cache state, etc.).
  • Don't apply five fixes at once. Apply one, verify Metro served it, retest. Each silent failed iteration is wasted hours.

Output

  • The exact React component identified as the orphan (from accessibilityIdentifier / testID)
  • The pattern name (e.g. "Reanimated withRepeat on unmount", "unstable keyExtractor")
  • The minimal fix applied
  • Confirmation Metro served the fix and the crash no longer reproduces

Reference

See reference.md in this folder for:

  • Anatomy of a Fabric assertion message
  • lldb cheatsheet for Fabric mount errors
  • Catalogue of common Fabric crash patterns with code-side fixes

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

Files

SKILL.md and 1 other file in .agents/skills/debug-rn-native-crash of LedgerHQ/ledger-live.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit 30d7883

Compare with similar skills

Debug Rn Native Crash 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.

Debug Rn Native Crash compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Debug Rn Native Crash this skillLedgerHQ/ledger-live622—~1.2kAutomated safety check: PassMIT
Mobile App Debuggingsecondsky/claude-skills227—~513Automated safety check: PassMIT
iOS Audio E2Ehyochan/react-native-nitro-sound961—~907Automated safety check: PassMIT
Limrun Xcodesuperset-sh/superset15k—~6.5kAutomated safety check: NotesCustom licence
Apple Crash Log .NET Symbolicationdotnet/skills5.6k1 repos~2.4kAutomated safety check: PassMIT
App Store Reviewsafaiyeh/app-store-review-skill3621 repos~3.4kAutomated safety check: PassMIT

Similar skills

  • Mobile App Debugging

    secondsky/claude-skills

    Mobile app debugging for iOS, Android, cross-platform frameworks.

    227 GitHub stars~513 tokensUpdated 10 days ago
    MobileAuto-check passed
  • iOS Audio E2E

    hyochan/react-native-nitro-sound

    Build and run device-backed iOS end-to-end checks for react-native-nitro-sound recording, playback, listeners, pause/resume, seek, speed, interruption, audio-session behavior, and rapid switching.

    961 GitHub stars~907 tokensUpdated 9 days ago
    MobileAuto-check passed
  • Limrun Xcode

    superset-sh/superset

    Build an iOS / Apple app on remote Xcode with lim xcode build instead of local xcodebuild, run project commands with lim xcode run, or run its XCTest suites with lim xcode test, from any environment…

    15k GitHub stars~6.5k tokensUpdated today
    MobileAuto-check: notes
  • Official

    Resolves .NET runtime frames in Apple .ips crash logs to function names, source files and line numbers using dSYM symbols, atos and the Microsoft symbol server.

    5.6k GitHub starsUsed in 1 repo~2.4k tokens
    MobileAuto-check passed
  • App Store Review

    safaiyeh/app-store-review-skill

    Evaluates code against Apple's App Store Review Guidelines. An agent skill from safaiyeh/app-store-review-skill.

    362 GitHub starsUsed in 1 repo~3.4k tokens
    MobileAuto-check passed
  • Apple Design

    vrcm-team/VRCM

    Cross-platform UI/UX design reviewer grounded in Apple's Human Interface Guidelines (122 pages pulled from developer.apple.com, including 57 component pages) plus a design-craft lens for…

    179 GitHub starsUsed in 1 repo~6.2k tokens
    MobileAuto-check passed

More from LedgerHQ/ledger-live

All 50 skills in this repo
  • Impacting PRs

    LedgerHQ/ledger-live

    Find which open PRs are impacted by a migration/sunset/refactor and notify their authors — blocking review when the old path is already gone from develop, heads-up comment when it is only deprecated…

    622 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Cloud Sync Module

    LedgerHQ/ledger-live

    Write, review or debug a cloudSyncModule.ts — a CloudSyncDataManager that syncs one slice of user data through Ledger Sync (Cloud Sync).

    622 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Codeownership

    LedgerHQ/ledger-live

    Maintain CODEOWNERS file and team directories. An agent skill from LedgerHQ/ledger-live.

    622 GitHub stars~687 tokensUpdated today
    Auto-check passed
  • Coin Families Contract

    LedgerHQ/ledger-live

    Coin-specific families logic must live in families/. An agent skill from LedgerHQ/ledger-live.

    622 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Data Layer Advanced

    LedgerHQ/ledger-live

    Structure a Ledger Wallet data layer where one API response serves several entities.

    622 GitHub stars~509 tokensUpdated today
    Auto-check passed
  • Detect Data Leaks

    LedgerHQ/ledger-live

    Detect new PII leaks introduced by the current branch. An agent skill from LedgerHQ/ledger-live.

    622 GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Categories

Questions about Debug Rn Native Crash

What does Debug Rn Native Crash do?

Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful. Debug Rn Native Crash is an agent skill from LedgerHQ/ledger-live. Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful.

When should I use Debug Rn Native Crash?

Debug Rn Native Crash fits situations like: the app dies silently; throws an NSException on iOS; shows only a native stack trace.

How do I install Debug Rn Native Crash in Claude Code?

Run `npx skills add LedgerHQ/ledger-live --skill debug-rn-native-crash -a claude-code`. Or copy the skill folder (.agents/skills/debug-rn-native-crash in LedgerHQ/ledger-live) into .claude/skills/debug-rn-native-crash in your project. Claude Code loads it when a task matches its description.

How do I install Debug Rn Native Crash in Codex?

Run `npx skills add LedgerHQ/ledger-live --skill debug-rn-native-crash -a codex`. Or copy the skill folder (.agents/skills/debug-rn-native-crash in LedgerHQ/ledger-live) into .agents/skills/debug-rn-native-crash in your project. Codex loads it when a task matches its description.

Can I use Debug Rn Native Crash 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 LedgerHQ/ledger-live --skill debug-rn-native-crash -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-rn-native-crash, .gemini/skills/debug-rn-native-crash, .github/skills/debug-rn-native-crash and .opencode/skills/debug-rn-native-crash in your project.

What does Debug Rn Native Crash need to run?

Going by SKILL.md and its folder, Debug Rn Native Crash needs the command-line tools its instructions call (xcrun and pnpm).

Does Debug Rn Native Crash 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 Debug Rn Native Crash 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 Debug Rn Native Crash use?

Debug Rn Native Crash 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 Debug Rn Native Crash use?

About 1.2k tokens (SKILL.md is roughly 4.6k 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 Debug Rn Native Crash?

Skills that share tags, products or a category with Debug Rn Native Crash: Mobile App Debugging (secondsky/claude-skills, 227 stars), iOS Audio E2E (hyochan/react-native-nitro-sound, 961 stars), Limrun Xcode (superset-sh/superset, 15k stars) and Apple Crash Log .NET Symbolication (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Debug Rn Native Crash?

LedgerHQ (a GitHub organization) maintains it in LedgerHQ/ledger-live, which has 622 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 8, 2026.

Source: LedgerHQ/ledger-live on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.