Community Migration
jingjing2222/react-native-nitro-geolocation
Migrate React Native apps from @react-native-community/geolocation to react-native-nitro-geolocation.
Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install getsentry/sentry-react-native code-guidelines --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/code-guidelines .claude/skills/code-guidelines && rm -rf skills-srcUse ~/.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/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .claude/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelinesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install getsentry/sentry-react-native code-guidelines --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/code-guidelines .agents/skills/code-guidelines && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .agents/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install getsentry/sentry-react-native code-guidelines --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/code-guidelines .cursor/skills/code-guidelines && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .cursor/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/getsentry/sentry-react-native.git --path .agents/skills/code-guidelines--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install getsentry/sentry-react-native code-guidelines --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/code-guidelines .gemini/skills/code-guidelines && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .gemini/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install getsentry/sentry-react-native code-guidelinesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/code-guidelines .github/skills/code-guidelines && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .github/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/sentry-react-native --skill code-guidelines -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install getsentry/sentry-react-native code-guidelines --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/sentry-react-native.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/code-guidelines .opencode/skills/code-guidelines && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "code-guidelines" agent skill from https://github.com/getsentry/sentry-react-native/tree/main/.agents/skills/code-guidelines into .opencode/skills/code-guidelines/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-guidelines", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
code-guidelinesEnforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.
Code Guidelines is an agent skill from getsentry/sentry-react-native, published by the product's own GitHub organization. Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review. Use when implementing features, adding functionality, refactoring, reviewing code, designing APIs, changing the public API surface (the packages/core/src/js/index.ts barrel), handling breaking changes, deprecating options, writing integrations, touching the JS↔native bridge, or making architecture decisions in this yarn-workspaces monorepo.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/native-bridge.md` and `references/supply-chain.md`).
It sits in Development, covering Cross-platform mobile apps, Monorepo tooling and Refactoring. It works with Sentry, React Native, Android and iOS. The repository describes itself as: Official Sentry SDK for React Native. The licence is MIT.
Read from SKILL.md and the folder at commit 6ce1083. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
yarnFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
develop.sentry.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Code Guidelines loads about 3.2k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 113 tokens; SKILL.md has 1,558 words of instructions outside code blocks.
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.
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.
The full file from getsentry/sentry-react-native at commit 6ce1083, republished under its MIT licence (© getsentry). 1,558 words, ~3,234 tokens.
.claude/skills/code-guidelines/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Apply these guidelines to all new and modified code in packages/core. Existing code may not follow these conventions — do not refactor it unless asked.
This SDK spans four surfaces: TypeScript/JS (packages/core/src/js/), Android (Java/Kotlin, packages/core/android/), iOS (ObjC/Swift, packages/core/ios/), and the JS↔native bridge (RNSentry TurboModule / legacy NativeModule) that connects them. Read the AGENTS.md for the surface you're touching — root, packages/core/, packages/core/android/, packages/core/ios/ — before writing. The bridge is where most SDK-specific bugs live; the deep guidance for it is in packages/core/AGENTS.md.
For non-trivial work — a new feature or integration, a public barrel-file change, or a change that crosses the native bridge — load the design-first skill to shape the modules and seams before writing code. When writing or modifying tests, also load the test-guidelines skill.
SDK features are packaged as integration factory functions that return an Integration (from @sentry/core). See src/js/integrations/ for the canonical shape (e.g. nativelinkederrors.ts):
const INTEGRATION_NAME = 'MyFeature';
export const myFeatureIntegration = (options: Partial<MyOptions> = {}): Integration => {
return {
name: INTEGRATION_NAME,
setupOnce: () => { /* one-time global side effects, if any */ },
setup: (client: Client) => { /* per-client wiring */ },
processEvent: (event, hint, client) => { /* enrich/drop */ return event; },
};
};debug and return without wiring anything up.INTEGRATION_NAME constant; don't inline the string.src/js/integrations/default.ts; keep an integration's options and defaults with the integration, not scattered across options.ts.Every call into native goes through the NATIVE wrapper (src/js/wrapper.ts) / RNSentry TurboModule. Rules:
enableNative is false or the module isn't linked, degrade gracefully — return a safe fallback, never throw into user code.debug and return a fallback. A thrown promise rejection from the bridge becomes an unhandled rejection in the host app.undefined holes, circular refs, or BigInt). Both the New Architecture (JSI/TurboModule codegen) and the legacy bridge serialize payloads; a non-serializable value is silently dropped or throws on the native side. Verify toJSON/normalization round-trips.RNSentry's own scope-sync methods (setTag, setContext, addBreadcrumb, setUser, captureEnvelope, …). Wrapping them recurses — see the RNSENTRY_SKIP / ignoreTurboModules notes in packages/core/AGENTS.md.logger from @sentry/core is the Logs API (emits log events), not the debug logger. Use debug for diagnostics — see the TurboModule section of packages/core/AGENTS.md.packages/core/android/): resolve/reject the Promise on every path; never leak it. Release JNI local refs; don't let a native exception cross back into the bridge uncaught. Old vs new arch code lives in src/oldarch/ and src/newarch/; shared code in src/main/.packages/core/ios/): prefix classes RNSentry; use nullability annotations; watch for retain cycles in blocks (capture weakSelf). Route hybrid-SDK access through RNSentryInternal (see packages/core/ios/AGENTS.md), not deprecated PrivateSentrySDKOnly.The bridge spec is codegen'd. src/js/NativeRNSentry.ts is the TurboModule spec; RNSentryReplayMask*NativeComponent.ts are Fabric component specs.
Object (untyped map), arrays, and nullable via ?. No unions of literals, no generics, no Record<K,V> with non-string keys. If a method's shape can't be expressed, pass an Object and validate/parse on the native side.Native*.ts spec is a bridge ABI change: it must land in lockstep across the JS spec, ios/RNSentry.mm, and the Android RNSentryModuleImpl, and stay backward-compatible with older native binaries a user may have cached. Treat it like a public API change.The event's SDK interface carries sdk.integrations, sdk.packages, and an optional sdk.features list; the spec says a feature should be reported through either an integration or the features list, not both. RN takes the integrations route: unlike sentry-dart (which populates sdk.features via an explicit addFeature / SentryFeatures API), RN's @sentry/core reports usage only through event.sdk.integrations and does not populate sdk.features. So usage is reported implicitly:
name — @sentry/core collects the names of installed integrations into event.sdk.integrations. So the practical rule is: give the integration a stable, correct INTEGRATION_NAME, and register it (a default in integrations/default.ts, or client.addIntegration(...)) — that registration is the usage signal. A feature that runs without a registered, named integration is invisible to usage tracking.src/js/version.ts (SDK_NAME, SDK_PACKAGE_NAME, SDK_VERSION) surfaced by integrations/sdkinfo.ts, which also appends the native SDK package — not the place to register feature usage.addFeatureFlag on the native module (wrapper.ts / NativeRNSentry.ts) — that is the user-facing feature-flags product, unrelated to SDK usage tracking.When adding something you want measured, make sure it lands as a named, registered integration rather than a bare side effect.
debug (from @sentry/core) is the internal diagnostic logger — use it for all SDK diagnostics. It is tree-shaken / gated so it stays quiet in production.logger (from @sentry/core) is the Logs API — it emits user-visible log events. Never use it for internal diagnostics, and never in a hot path (see bridge rules above).debug for lifecycle/config, warn for recoverable/degraded paths (native module missing, option ignored), error for failures that affect SDK behavior.options.sendDefaultPii. This covers IP inference, device identifiers, deep-link URLs, navigation params, request/response bodies, and user-supplied context.sendDefaultPii — see packages/core/AGENTS.md "Privacy"). Don't add new always-on data collection without that justification.src/js/index.ts barrel plus every exported option in options.ts. Its shape is captured in the API report (packages/core/etc/sentry-react-native.api.md); regenerate with yarn api-report and check with yarn api-report:check.@deprecated JSDoc + a working shim) over immediate removal.When adding or changing any third-party reference — an npm dependency, a .vscode/extensions.json recommendation, a GitHub Action (uses:), or a native dependency (Podfile / Gemfile / Gradle) — verify it is published by its legitimate owner before referencing it. The tool being real is not enough: the namespace must be one the project trusts. Prefer Sentry's own scope/org (@sentry/*, getsentry/*), then the artifact's documented official publisher, and pin to an exact version / full commit SHA rather than a floating tag. Treat an unscoped or unfamiliar-publisher name as a supply-chain risk until proven otherwise — a claimable namespace lets an attacker ship code to every contributor. Provenance is necessary but not sufficient: a legitimate owner's account or CI can be compromised and ship a malicious version, so pin to an immutable ref (lockfile integrity hash / full SHA) and check advisories for that specific version, not just the publisher. See references/supply-chain.md for the surface-by-surface checklist and verification commands.
Group by feature, not by type. A processor or helper a feature owns lives with that feature (the TurboModule files sit together as turbomodule/ + integrations/turboModuleContext*.ts). The integrations/ directory is a type-bucket — it collects things that share the Integration type. Don't treat "it's an integration" as the whole home for a cohesive subsystem; keep the subsystem's own logic together and let the integration file be thin wiring.
Native code lives under packages/core/android/ and packages/core/ios/ and is reached only through the NATIVE wrapper seam — features call the bridge, they don't embed native code.
Where a given piece goes is a locality judgment — see design-first.
Shape the public surface deliberately (see design-first for module shape). In an SDK these matter more than in app code:
unknown over any. Narrow with type guards; any disables the checker exactly where SDK robustness matters.interface for object shapes; use type for unions/mapped types.?., ??) over hand-rolled truthiness — but remember ?? and ?. treat 0/''/false correctly where || doesn't.cause rather than replacing the error — stack-trace fidelity is the product.@sentry/core / @sentry/browser public entry points, not their internal paths; keep RN-internal imports within src/js.Style enforced by ESLint/oxlint/Prettier (single quotes, trailing commas, 120 cols, arrow-paren avoidance, import ordering) is not restated here — don't flag what yarn lint / yarn fix already handles. See packages/core/AGENTS.md for the list.
Prefer self-documenting code; comment for the two cases that earn it:
Don't narrate obvious behavior or restate the code. Use @deprecated, @internal, and @hidden deliberately — @internal/@hidden keep a symbol out of the generated API surface even when it must be exported for cross-file use.
© getsentry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .agents/skills/code-guidelines of getsentry/sentry-react-native.
Open the folder on GitHubat commit 6ce1083
Code Guidelines 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Code Guidelines this skillgetsentry/sentry-react-native | 1.8k | — | ~3.2k | Automated safety check: Pass | MIT | |
| Community Migrationjingjing2222/react-native-nitro-geolocation | 116 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Diagnosing Stacktrace SymbolicationPostHog/posthog-foss | 721 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Simulator Audio E2Ehyochan/react-native-nitro-sound | 961 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Code Review React Nativetalsec/Free-RASP-ReactNative | 175 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Upgrade Rn Versionbrandingbrand/flagship | 165 | — | ~3.7k | Automated safety check: Pass | MIT |
jingjing2222/react-native-nitro-geolocation
Migrate React Native apps from @react-native-community/geolocation to react-native-nitro-geolocation.
PostHog/posthog-foss
Help users debug PostHog Error Tracking stack-trace symbolication for any supported platform — JavaScript/TypeScript web, React Native (Hermes), Android (Proguard / R8), or iOS / macOS (dSYM).
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…
talsec/Free-RASP-ReactNative
Performs strict code reviews on React Native plugin projects covering TypeScript, the Kotlin (Android) and Swift (iOS) native bridges, and the Expo config plugin.
brandingbrand/flagship
Adopt a new stable React Native minor into Flagship Code. An agent skill from brandingbrand/flagship.
LeoYeAI/openclaw-master-skills
A skill your agent uses when integrating or upgrading the AnalyticsCLI TypeScript SDK in web, TypeScript, React Native, or Expo apps.
getsentry/sentry-react-native
Enforce Sentry React Native SDK test conventions for naming, structure, mocking, and fixtures with Jest.
getsentry/sentry-react-native
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…
getsentry/sentry-react-native
Shape non-trivial work before writing it — decide the modules, the seams, and the public API surface up front.
getsentry/sentry-react-native
A discipline for hard bugs, flaky tests, CI hangs, native crashes, and performance regressions in this SDK.
getsentry/sentry-react-native
Produce a verified spec — problem, desired outcome, and acceptance criteria — before building.
Works with
Categories
Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review. Code Guidelines is an agent skill from getsentry/sentry-react-native, published by the product's own GitHub organization. Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.
Code Guidelines fits situations like: implementing features; adding functionality; changing the public API surface (the packages/core/src/js/index.ts barrel); handling breaking changes.
Run `npx skills add getsentry/sentry-react-native --skill code-guidelines -a claude-code`. Or copy the skill folder (.agents/skills/code-guidelines in getsentry/sentry-react-native) into .claude/skills/code-guidelines in your project. Claude Code loads it when a task matches its description.
Run `npx skills add getsentry/sentry-react-native --skill code-guidelines -a codex`. Or copy the skill folder (.agents/skills/code-guidelines in getsentry/sentry-react-native) into .agents/skills/code-guidelines in your project. Codex loads it when a task matches its description.
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 code-guidelines -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-guidelines, .gemini/skills/code-guidelines, .github/skills/code-guidelines and .opencode/skills/code-guidelines in your project.
Going by SKILL.md and its folder, Code Guidelines needs the command-line tools its instructions call (yarn).
SKILL.md names 1 domain. As links in the text: develop.sentry.dev. This is read from the text; nothing was executed.
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.
Code Guidelines is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Code Guidelines: Community Migration (jingjing2222/react-native-nitro-geolocation, 116 stars), Diagnosing Stacktrace Symbolication (PostHog/posthog-foss, 721 stars), Simulator Audio E2E (hyochan/react-native-nitro-sound, 961 stars) and Code Review React Native (talsec/Free-RASP-ReactNative, 175 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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 7, 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.