src/skills/sentry-instrument/SKILL.md
Instrument an application with Sentry — detect the platform, install and initialize the SDK if needed, and wire up any signal — error monitoring, tracing/performance, logging, metrics, profiling, session replay, user feedback, cron check-ins, and AI/LLM monitoring (agent runs, token cost, and conversations for OpenAI, Anthropic, Vercel AI, LangChain, Google GenAI, Pydantic AI, and Laravel AI). Use to add Sentry to a project or to capture more than errors.
npx skillsauth add getsentry/sentry-for-ai sentry-instrumentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Get Sentry capturing a signal in an application — from a brand-new install (first error) to adding any later signal to a project that already has Sentry. This is the single playbook for “wire Sentry up to capture X.”
The bulk of the detail lives in references this skill pulls in: per-platform code under
references/sdks/, per-signal strategy under
references/concepts/, project provisioning
in references/new-project.md, and the confirm-it-works
loop in references/setup-verification.md.
This file is the orchestration — read the reference you need at each step, and don’t
read a reference before you need it.
Decide what you’re actually doing; it gates how much you run. When in doubt, default to first-error.
| Scope | When | What runs |
| --- | --- | --- |
| First error | Brand-new install, no Sentry yet | Provision + install + the SDK’s recommended default init (errors + tracing), then verify a real error. Defer additional signals (logging, profiling, replay, metrics, …). |
| Add a signal | Sentry already installed; user wants one more signal | Skip provisioning/install. Jump straight to that one signal. |
| Full setup | “Set it up properly / sensible defaults” | Run first error (which already establishes errors + tracing), then propose the rest of a baseline (releases, source maps, and any signals that fit the app) and add what the user accepts. |
Never over-instrument — wiring up logging, session replay, profiling, metrics, etc.
upfront when the user only asked to get Sentry working is doing more than they asked
for. (The base init includes tracing — that’s the SDK’s recommended default, not
over-instrumentation.)
For first-error and full setup scope — there’s no Sentry yet, so the project
needs a base install before any additional signal.
Run references/first-error-setup.md end to end
— the shared spine: detect the platform, provision a project, install the SDK’s
recommended default init (errors + tracing — take the reference’s default as written,
don’t pare it back to errors-only), verify a real error lands, push to production, and
confirm stack traces will be readable.
You’ll also want to immediately read
references/sdks/index.md and
references/concepts/errors.md so you have the catalog
and the baseline-signal context in hand before you start.
For add a signal scope, Sentry is already installed with a DSN — skip this step entirely and go to Step 3.
Under first-error scope you’re done after the spine.
Under full setup, continue: the spine already set up errors + tracing and flagged
source maps, so propose the rest of a solid baseline (releases, plus any signals that
fit the app) and wire what the user accepts via Step 3. If they take the stack-trace
half, references/debug-artifacts/index.md
carries the per-platform artifact upload — source maps for JS, dSYM/ProGuard/R8 for
native and mobile.
If you came straight here under add a signal scope, you haven’t detected the
platform yet — read references/sdks/index.md, identify the
platform from project files, confirm with the user, and open that platform’s
references/sdks/<slug>/index.md. (Fresh installs already did this in the spine.)
For each signal the scope calls for:
references/concepts/choosing-a-signal.md.
For a chosen signal, the matching references/concepts/<signal>.md covers strategy,
sample-rate philosophy, naming, and pitfalls — including
references/concepts/ai-monitoring.md for
the gen_ai.* model, conversation-ID rules, token/cost accounting, and the AI
sampling and PII strategy (the per-platform code then lives in that platform’s
ai-monitoring.md). Skip this when the user already said “add tracing, you pick
the defaults” — go straight to the HOW.references/sdks/<slug>/<signal>.md (e.g.
references/sdks/nextjs/tracing.md) — and apply the code.
The platform index.md feature catalog links each supported signal and marks
unsupported ones.Signals this skill wires up: error monitoring, tracing/performance, profiling (requires tracing), logging, metrics, cron check-in code, session replay, user feedback, and AI/LLM monitoring.
When naming custom span or log attributes, open only the matching domain reference below. Prefer these stable keys over invented names. Deprecated attributes are omitted.
angularappartawsbrowsercacheclientcloudcloudflarecodeculturedbdeviceerroreventexceptionfaasfileflaggcpgen_aigeneralgraphqlgrpchttpjsonrpcjvmkoaloggermcpmdcmessagingmiddlewarenavigationnelnetworkosotelparamsprocessreactremixresourcerpcscoresentryserverservicesessionstatethreadtimbertrpcuiurluseruser_agentvercelFor a fresh install the spine already verified the first error.
For an added signal, close the loop with
references/setup-verification.md: trigger the
signal by exercising the real code path that emits it, poll the MCP to confirm it
arrived, surface the direct issue URL, and confirm the stack trace is readable.
The task isn’t done until the event is seen in Sentry — don’t stop at “go check your
dashboard.”
After the first error or a new signal is confirmed, offer concrete follow-ups without auto-running them:
init).references/debug-artifacts/index.md routes to
the artifact procedure per platform, and
references/releases/index.md routes to releases —
the release/environment tag at minimum (a one-option change worth making before
anything ships), and the CI pipeline with commits and deploys if the user wants it.
For a release feature that’s already wired but not working, sentry-setup-releases is
the diagnostic entry point.The signal’s code is in place, and a real event of that type has been confirmed in Sentry via the MCP (with the issue URL surfaced) — or, if nothing landed, the failure has been named and troubleshot rather than papered over with “check your dashboard.”
development
Set up Sentry releases and deploy tracking — tag events with a version and environment, create the release in CI with its commits, and wire up suspect commits and code mappings, so Sentry can show which release introduced an issue, which commit is responsible, and release health. Use when asked to set up releases, track deploys, see what changed, or when issues show an unknown release or no suspect commit.
development
Make Sentry stack traces readable — upload source maps for JavaScript/TypeScript, or debug files for native and mobile (dSYM, ProGuard/R8, NDK symbols, Dart obfuscation maps, .NET PDBs). Use when frames in Sentry show minified names, bundled paths, hex addresses, "unknown", or method names with no file/line, instead of your original source.
development
Setup Sentry AI Agent Monitoring in any project. Use when asked to monitor LLM calls, track AI agents, track conversations, or instrument OpenAI/Anthropic/Vercel AI/LangChain/Google GenAI/Pydantic AI/Laravel AI. Detects installed AI SDKs and configures appropriate integrations.
development
Upgrade the Sentry JavaScript SDK across major versions. Use when asked to upgrade Sentry, migrate to a newer version, fix deprecated Sentry APIs, or resolve breaking changes after a Sentry version bump.