Official agent skill

Diagnosing Bugs

by getsentry in getsentry/sentry-react-native

A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK.

OfficialMITAuto-check passedTesting & QA

Install Diagnosing Bugs

skills CLI
$ npx skills add getsentry/sentry-react-native --skill diagnosing-bugs -a claude-code

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

GitHub CLI
$ gh skill install getsentry/sentry-react-native diagnosing-bugs --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/getsentry/sentry-react-native.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/diagnosing-bugs .claude/skills/diagnosing-bugs && 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
diagnosing-bugs
GitHub stars
1.8k
Token cost
~1.4k tokens
SKILL.md length
772 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK.

  • Works in 4 steps: Build a feedback loop → Reproduce and minimise → Hypothesise → …
  • The user says diagnose
  • SKILL.md covers Phase 1 — Build a feedback loop, Phase 2 — Reproduce and minimise, Phase 3 — Hypothesise and Phase 4 — Instrument & fix
  • Calls yarn and adb

What it does

Diagnosing Bugs is an agent skill from getsentry/sentry-react-native, published by the product's own GitHub organization. A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK. Use when the user says "diagnose" or "debug this", reports something broken/throwing/failing/hanging/slow/crashing, or a test is flaky. Builds a tight, red-capable feedback loop before hypothesizing.

Its SKILL.md is about 1.4k 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 Testing & QA, covering Failing and flaky tests and Cross-platform mobile apps. It works with Sentry, Android, React Native and iOS. The repository describes itself as: Official Sentry SDK for React Native. The licence is MIT.

When your agent uses it

  • The user says diagnose
  • Reports something broken/throwing/failing/hanging/slow/crashing
  • A test is flaky

Example prompts

  • “diagnose”
  • “debug this”
  • “/diagnosing-bugs”

Workflow steps

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

  1. Build a feedback loop
  2. Reproduce and minimise
  3. Hypothesise
  4. Instrument & fix

What it can do on your machine

Read from SKILL.md and the folder at commit 8cae3b5. 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
    • adb

    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

Diagnosing Bugs loads about 1.4k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 772 words of instructions outside code blocks.

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

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 getsentry/sentry-react-native at commit 8cae3b5, republished under its MIT licence (© getsentry). 772 words, ~1,355 tokens.

Download SKILL.mdSave it as .claude/skills/diagnosing-bugs/SKILL.md (or your agent's skills folder).
name
diagnosing-bugs
description
A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK. Use when the user says "diagnose" or "debug this", reports something broken/throwing/failing/hanging/slow/crashing, or a test is flaky. Builds a tight, red-capable feedback loop before hypothesizing.

A discipline for hard bugs. Skip a phase only when you can say why.

The whole skill is Phase 1: get a loop that goes red on this bug. Everything after is mechanical once you have it. If you catch yourself reading code to form a theory before that loop exists, stop — jumping to a hypothesis without a red-capable loop is the exact failure this prevents.

For trivial bugs with an obvious fix and an obvious test, skip this and just write the failing test — this skill is for the bugs that resist.

Phase 1 — Build a feedback loop

A tight loop is fast, deterministic, and goes red on this bug. Build one and the bug is 90% solved. Be aggressive and creative here — spend disproportionate effort.

Ways to construct one — try roughly in this order
  1. Failing Jest test at the seam — yarn test path/to/file.test.ts -t 'name', at whatever seam reaches the bug. Tightest loop there is. Mock the bridge via test/mockWrapper.ts.
  2. Fake-timer harness — for flush timers, debounces, retries, and most flakes: jest.useFakeTimers() and advance the clock deterministically instead of waiting.
  3. Arch/platform matrix — reproduce under the failing combination: pin Platform.OS, isTurboModuleEnabled(), isFabricEnabled(). "Only on New Arch" or "only on Android" is a clue and the loop's config.
  4. Replay a captured payload — save a real envelope / event / native payload to disk and push it through the code path in isolation. Great for serialization / round-trip bugs.
  5. Throwaway harness — a minimal script exercising the bug path with mocked deps.
  6. Sample app — when the bug only shows end-to-end, reproduce in samples/react-native (or samples/expo); see their AGENTS.md. Slower loop; use only when a unit seam can't reach it.
  7. Native repro — for a native crash / leak, reproduce in the native test targets (iOS RNSentryCocoaTester, Android instrumentation) or with the sample app + native debugger. The bridge can't be faked here.
  8. Stress / repetition loop — for non-deterministic bugs: run the trigger 100×, narrow timing windows, inject delays. Goal is a higher reproduction rate, not a clean repro.
  9. Differential loop — same input through two versions/configs (e.g. before/after a dependency or RN bump) and diff the output. For regressions that "appeared after X".
Tighten the loop

Once you have a loop, treat it as a product: faster (narrow scope, skip unrelated init), sharper (assert the exact symptom the user described, not "didn't crash"), more deterministic (fake timers, seed randomness, no real network/bridge). A 2-second deterministic loop beats a 30-second flaky one. For non-deterministic bugs the goal is a high enough reproduction rate to debug against — 50% is debuggable, 1% is not.

Completion criterion

Phase 1 is done when you can name one command — a test invocation or script — that you have already run at least once (paste the invocation and its output), and that is:

  • Red-capable — drives the actual bug path and asserts the user's exact symptom
  • Deterministic — same verdict every run (flaky bugs: a pinned, high reproduction rate)
  • Fast — seconds, not minutes

No red-capable command, no Phase 2.

Show full SKILL.md (275 more words)Show less
When you genuinely cannot build a loop

Say so explicitly, list what you tried, and ask the user for: an environment that reproduces it, a captured artifact (envelope dump, native crash log / symbolicated stack, CI run, screen recording with timestamps, adb logcat / Xcode console output), or permission for temporary instrumentation. Do not hypothesise without a loop.

Phase 2 — Reproduce and minimise

Run the loop, watch it go red. Confirm it produces the failure mode the user described — not a nearby one (wrong bug = wrong fix). Then shrink the repro to the smallest scenario that still goes red: cut inputs, callers, config, and steps one at a time, re-running after each cut. Done when every remaining element is load-bearing. The minimal repro becomes the regression test.

Phase 3 — Hypothesise

Generate 3–5 ranked, falsifiable hypotheses before testing any — a single hypothesis anchors you on the first plausible idea. Each states its prediction: "If X is the cause, then changing Y makes the bug vanish." If you can't state the prediction, it's a vibe — sharpen or discard it. Show the ranked list to the user; they often re-rank it instantly ("we just changed #3"). Common suspects in this SDK: arch/platform branch, bridge serialization, timer/async ordering, scope-sync recursion, native memory/lifecycle, RN or native-SDK version skew.

Phase 4 — Instrument & fix

Confirm the hypothesis with the cheapest observation that would falsify it (a log via debug, a native breakpoint, a diffed payload) before changing code. Then make the minimal fix, watch the loop go green, and keep the minimal repro as the regression test. Re-run the broader suite (yarn test) and, for native/bridge fixes, the affected native tests and both architectures.

© getsentry, 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 .agents/skills/diagnosing-bugs of getsentry/sentry-react-native.

Open the folder on GitHubat commit 8cae3b5

Compare with similar skills

Diagnosing Bugs 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.

Diagnosing Bugs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Diagnosing Bugs this skillgetsentry/sentry-react-native1.8k—~1.4kAutomated safety check: PassMIT
E2Egronxb/hot-updater1.8k—~1.6kAutomated safety check: PassCustom licence
E2E Current PRgronxb/hot-updater1.8k—~1kAutomated safety check: PassCustom licence
E2E Defaultgronxb/hot-updater1.8k—~3.1kAutomated safety check: PassCustom licence
Nitro Sound Workflowshyochan/react-native-nitro-sound961—~1.2kAutomated safety check: PassMIT
Iapkit E2E Petguhyodotdev/openiap154—~1.1kAutomated safety check: PassMIT

Similar skills

  • E2E

    gronxb/hot-updater

    Run end-to-end OTA verification for examples/v0.85.0 with agent-device.

    1.8k GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Current PR

    gronxb/hot-updater

    Generate and execute PR-aware OTA E2E scenarios for examples/v0.85.0 by diffing the checked-out branch against its PR base branch or default branch, inferring the affected runtime, rollout, and…

    1.8k GitHub stars~1k tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Default

    gronxb/hot-updater

    Run a fixed OTA regression flow for examples/v0.85.0 with agent-device.

    1.8k GitHub stars~3.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Nitro Sound Workflows

    hyochan/react-native-nitro-sound

    A skill your agent uses for react-native-nitro-sound repository work that should follow the project workflows for PR review, code audit, knowledge compilation, full verification, iOS or Android…

    961 GitHub stars~1.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Iapkit E2E Petgu

    hyodotdev/openiap

    A skill your agent uses for IAPKit product sync E2E testing in packages/kit with the Petgu React Native app, localhost dashboard, App Store Connect, and Google Play Console.

    154 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Nitro Sound Workflows

    hyochan/react-native-nitro-sound

    A skill your agent uses for react-native-nitro-sound repository work that should follow the project slash-command workflows for PR review, code audit, knowledge compilation, full verification, iOS…

    961 GitHub stars~285 tokensUpdated 8 days ago
    MobileAuto-check passed

More from getsentry/sentry-react-native

  • Code Guidelines

    getsentry/sentry-react-native

    Official

    Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.

    1.8k GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Test Guidelines

    getsentry/sentry-react-native

    Official

    Enforce Sentry React Native SDK test conventions for naming, structure, mocking, and fixtures with Jest.

    1.8k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Review

    getsentry/sentry-react-native

    Official

    Three-axis review of the branch diff — Standards (this repo's documented standards + public API/bridge surface), Spec (the originating Linear/GitHub issue or PR), and Correctness (runtime bugs + the…

    1.8k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Design First

    getsentry/sentry-react-native

    Official

    Shape non-trivial work before writing it — decide the modules, the seams, and the public API surface up front.

    1.8k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Spec

    getsentry/sentry-react-native

    Official

    Produce a verified spec — problem, desired outcome, and acceptance criteria — before building.

    1.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Questions about Diagnosing Bugs

What does Diagnosing Bugs do?

A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK. Diagnosing Bugs is an agent skill from getsentry/sentry-react-native, published by the product's own GitHub organization. A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK.

When should I use Diagnosing Bugs?

Diagnosing Bugs fits situations like: the user says diagnose; reports something broken/throwing/failing/hanging/slow/crashing; A test is flaky.

How do I install Diagnosing Bugs in Claude Code?

Run `npx skills add getsentry/sentry-react-native --skill diagnosing-bugs -a claude-code`. Or copy the skill folder (.agents/skills/diagnosing-bugs in getsentry/sentry-react-native) into .claude/skills/diagnosing-bugs in your project. Claude Code loads it when a task matches its description.

How do I install Diagnosing Bugs in Codex?

Run `npx skills add getsentry/sentry-react-native --skill diagnosing-bugs -a codex`. Or copy the skill folder (.agents/skills/diagnosing-bugs in getsentry/sentry-react-native) into .agents/skills/diagnosing-bugs in your project. Codex loads it when a task matches its description.

Can I use Diagnosing Bugs 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 getsentry/sentry-react-native --skill diagnosing-bugs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/diagnosing-bugs, .gemini/skills/diagnosing-bugs, .github/skills/diagnosing-bugs and .opencode/skills/diagnosing-bugs in your project.

What does Diagnosing Bugs need to run?

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

Does Diagnosing Bugs 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 Diagnosing Bugs 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 Diagnosing Bugs use?

Diagnosing Bugs 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 Diagnosing Bugs use?

About 1.4k tokens (SKILL.md is roughly 5.4k 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 Diagnosing Bugs?

Skills that share tags, products or a category with Diagnosing Bugs: E2E (gronxb/hot-updater, 1.8k stars), E2E Current PR (gronxb/hot-updater, 1.8k stars), E2E Default (gronxb/hot-updater, 1.8k stars) and Nitro Sound Workflows (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 Diagnosing Bugs?

getsentry (a GitHub organization, an official publisher) maintains it in getsentry/sentry-react-native, which has 1,824 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

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