{"owner":"getsentry","repo":"sentry-javascript","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Sentry JavaScript SDK\n\nMonorepo with 40+ packages in `@sentry/*`, managed with Yarn workspaces and Nx.\n\n## Setup\n\n- [Volta](https://volta.sh/) for Node.js/Yarn/PNPM version management\n- Requires `VOLTA_FEATURE_PNPM=1`\n- After cloning: `yarn install && yarn build`\n- Never change Volta, Yarn, or package manager versions unless explicitly asked\n\n### Code Intelligence\n\nPrefer LSP over Grep/Read for code navigation — it's faster, precise, and avoids reading entire files:\n\n- `workspaceSymbol` to find where something is defined\n- `findReferences` to see all usages across the codebase\n- `goToDefinition` / `goToImplementation` to jump to source\n- `hover` for type info without reading the file\n\nUse Grep only when LSP isn't available or for text/pattern searches (comments, strings, config).\n\nAfter writing or editing code, check LSP diagnostics and fix errors before proceeding.\n\n## Package Manager\n\nUse **yarn**: `yarn install`, `yarn build:dev`, `yarn test`, `yarn lint`\n\n| Command                               | Purpose                       |\n| ------------------------------------- | ----------------------------- |\n| `yarn build`                          | Full production build         |\n| `yarn build:dev`                      | Dev build (transpile + types) |\n| `yarn build:dev:filter @sentry/<pkg>` | Build one package + deps      |\n| `yarn build:bundle`                   | Browser bundles only          |\n| `yarn test`                           | All unit tests                |\n| `yarn verify`                         | Lint + format check           |\n| `yarn fix`                            | Format + lint fix             |\n| `yarn lint`                           | Lint (Oxlint)                 |\n| `yarn lint:fix`                       | Lint + auto-fix (Oxlint)      |\n| `yarn format`                         | Format files (Oxfmt)          |\n| `yarn format:check`                   | Check formatting (Oxfmt)      |\n\nSingle package: `cd packages/<name> && yarn test`\n\n## Commit Attribution\n\nAI commits MUST include a `Co-Authored-By` line with the appropriate committer email when known:\n\n```\nCo-Authored-By: <Claude model name> <noreply@anthropic.com>\nCo-Authored-By: <OpenAI/ChatGPT model name> <codex@openai.com>\nCo-Authored-By: <Cursor agent name> <cursoragent@cursor.com>\n```\n\nUse the Cursor email for Cursor, even when it runs a Claude or OpenAI model. Omit the line only when there is no known committer email address for the agent.\n\n## Git Workflow\n\nUses **Git Flow** (see `docs/gitflow.md`).\n\n- **All PRs target `develop`** (NOT `master`)\n- `master` = last released state — never merge directly\n- Feature branches: `feat/descriptive-name`\n- Never update dependencies, `package.json`, or build scripts unless explicitly asked\n\n## Before Every Commit\n\n1. `yarn format`\n2. `yarn lint`\n3. `yarn test`\n4. `yarn build:dev`\n5. NEVER push on `develop`\n\n## Pull Requests\n\n- **Do NOT add a \"Test plan\" / \"Testing\" checklist to PR bodies.** CI runs the full test suite on every PR — a hand-rolled checklist duplicates that signal and rots fast. Write the summary content directly and add a _Root cause_ section only if relevant.\n- **Omit the \"Summary\" heading** in PR bodies — lead with the summary text itself, no `## Summary` header.\n- Include `Fixes #<issue-number>` somewhere in the PR body so the merge auto-closes the linked issue.\n- Always open PRs as draft.\n- Include reasoning of changes in the PR description, as well as decisions that were taken during implementation. Do not explain the implementation that can be viewed in the code.\n\n## Architecture\n\n### Core\n\n- `packages/core/` — Base SDK: interfaces, types, core functionality\n- `packages/types/` — Shared types (**deprecated, never modify – instead find types in packages/core**)\n- `packages/browser-utils/` — Browser utilities and instrumentation\n- `packages/node-core/` — Node core logic (excludes OTel instrumentation)\n\n### Platform SDKs\n\n- `packages/browser/` — Browser SDK + CDN bundles\n- `packages/node/` — Node.js SDK (OTel instrumentation on top of node-core)\n- `packages/bun/`, `packages/deno/`, `packages/cloudflare/`\n\n### Framework Integrations\n\n- `packages/{framework}/` — React, Vue, Angular, Next.js, Nuxt, SvelteKit, Remix, etc.\n- Some have client/server entry points (nextjs, nuxt, sveltekit)\n\n### AI Integrations\n\n- `packages/core/src/tracing/{provider}/` — Core instrumentation\n- `packages/node/src/integrations/tracing/{provider}/` — Node.js integration + OTel\n- `packages/cloudflare/src/integrations/tracing/{provider}.ts` — Edge runtime\n- Use `/add-ai-integration` skill when adding or modifying integrations\n\n### User Experience\n\n- `packages/replay-internal/`, `packages/replay-canvas/`, `packages/replay-worker/` — Session replay\n- `packages/feedback/` — User feedback\n\n### Dev Packages (`dev-packages/`)\n\n- `browser-integration-tests/` — Playwright browser tests\n- `e2e-tests/` — E2E tests (70+ framework combos)\n- `node-integration-tests/` — Node.js integration tests\n- `test-utils/` — Shared test utilities\n- `rollup-utils/` — Build utilities\n\n## Linting & Formatting\n\n- This project uses **Oxlint** and **Oxfmt** — NOT ESLint or Prettier\n- Never run `eslint`, `npx eslint`, or any ESLint CLI — use `yarn lint` (Oxlint) instead\n- Never run `prettier` — use `yarn format` (Oxfmt) instead\n- ESLint packages in the repo are legacy/e2e test app dependencies — ignore them\n- Do not create, modify, or suggest `.eslintrc`, `eslint.config.*`, or `.prettierrc` files\n\n## Coding Standards\n\n- Follow existing conventions — check neighboring files\n- Reach for existing utils before writing a new one. Most shared helpers live in `@sentry/core` (`packages/core/src/utils/`), with browser helpers in `packages/browser-utils/`. Search first (LSP `workspaceSymbol` or grep) for common needs (type guards in `is.ts`, object/array helpers, `normalize`, `dsn`, `merge`, string/url helpers). Reuse or extend the existing util rather than adding a near-duplicate; only introduce a new util when nothing fits.\n- Only use libraries already in the codebase\n- Never expose secrets or keys\n- When modifying files, cover all occurrences (including `src/` and `test/`)\n- Comments explain **why**, never **what** — never add a comment that restates what the code does or describes the change being made; only comment when the reasoning isn't obvious from the code itself\n\n## Reference Documentation\n\n- [Span Attributes](https://develop.sentry.dev/sdk/telemetry/attributes.md)\n- [Scopes (global, isolation, current)](https://develop.sentry.dev/sdk/telemetry/scopes.md)\n\n## Skills\n\n### E2E Testing\n\nUse `/e2e` skill to run E2E tests. See `.claude/skills/e2e/SKILL.md`\n\n### Security Vulnerabilities\n\nUse `/fix-security-vulnerability` skill for Dependabot alerts. See `.claude/skills/fix-security-vulnerability/SKILL.md`\n\n### Issue Triage\n\nUse `/triage-issue` skill. See `.claude/skills/triage-issue/SKILL.md`\n\n### CDN Bundles\n\nUse `/add-cdn-bundle` skill. See `.claude/skills/add-cdn-bundle/SKILL.md`\n\n### Publishing a Release\n\nUse `/release` skill. See `.claude/skills/release/SKILL.md`\n\n### Dependency Upgrades\n\nUse `/upgrade-dep` skill. See `.claude/skills/upgrade-dep/SKILL.md`\n\n### Vendor OpenTelemetry Instrumentation\n\nUse `/vendor-otel` skill. See `.claude/skills/vendor-otel/SKILL.md`\n\n### AI Integration\n\nUse `/add-ai-integration` skill. See `.claude/skills/add-ai-integration/SKILL.md`\n"},"files":{"AGENTS.md":"# Sentry JavaScript SDK\n\nMonorepo with 40+ packages in `@sentry/*`, managed with Yarn workspaces and Nx.\n\n## Setup\n\n- [Volta](https://volta.sh/) for Node.js/Yarn/PNPM version management\n- Requires `VOLTA_FEATURE_PNPM=1`\n- After cloning: `yarn install && yarn build`\n- Never change Volta, Yarn, or package manager versions unless explicitly asked\n\n### Code Intelligence\n\nPrefer LSP over Grep/Read for code navigation — it's faster, precise, and avoids reading entire files:\n\n- `workspaceSymbol` to find where something is defined\n- `findReferences` to see all usages across the codebase\n- `goToDefinition` / `goToImplementation` to jump to source\n- `hover` for type info without reading the file\n\nUse Grep only when LSP isn't available or for text/pattern searches (comments, strings, config).\n\nAfter writing or editing code, check LSP diagnostics and fix errors before proceeding.\n\n## Package Manager\n\nUse **yarn**: `yarn install`, `yarn build:dev`, `yarn test`, `yarn lint`\n\n| Command                               | Purpose                       |\n| ------------------------------------- | ----------------------------- |\n| `yarn build`                          | Full production build         |\n| `yarn build:dev`                      | Dev build (transpile + types) |\n| `yarn build:dev:filter @sentry/<pkg>` | Build one package + deps      |\n| `yarn build:bundle`                   | Browser bundles only          |\n| `yarn test`                           | All unit tests                |\n| `yarn verify`                         | Lint + format check           |\n| `yarn fix`                            | Format + lint fix             |\n| `yarn lint`                           | Lint (Oxlint)                 |\n| `yarn lint:fix`                       | Lint + auto-fix (Oxlint)      |\n| `yarn format`                         | Format files (Oxfmt)          |\n| `yarn format:check`                   | Check formatting (Oxfmt)      |\n\nSingle package: `cd packages/<name> && yarn test`\n\n## Commit Attribution\n\nAI commits MUST include a `Co-Authored-By` line with the appropriate committer email when known:\n\n```\nCo-Authored-By: <Claude model name> <noreply@anthropic.com>\nCo-Authored-By: <OpenAI/ChatGPT model name> <codex@openai.com>\nCo-Authored-By: <Cursor agent name> <cursoragent@cursor.com>\n```\n\nUse the Cursor email for Cursor, even when it runs a Claude or OpenAI model. Omit the line only when there is no known committer email address for the agent.\n\n## Git Workflow\n\nUses **Git Flow** (see `docs/gitflow.md`).\n\n- **All PRs target `develop`** (NOT `master`)\n- `master` = last released state — never merge directly\n- Feature branches: `feat/descriptive-name`\n- Never update dependencies, `package.json`, or build scripts unless explicitly asked\n\n## Before Every Commit\n\n1. `yarn format`\n2. `yarn lint`\n3. `yarn test`\n4. `yarn build:dev`\n5. NEVER push on `develop`\n\n## Pull Requests\n\n- **Do NOT add a \"Test plan\" / \"Testing\" checklist to PR bodies.** CI runs the full test suite on every PR — a hand-rolled checklist duplicates that signal and rots fast. Write the summary content directly and add a _Root cause_ section only if relevant.\n- **Omit the \"Summary\" heading** in PR bodies — lead with the summary text itself, no `## Summary` header.\n- Include `Fixes #<issue-number>` somewhere in the PR body so the merge auto-closes the linked issue.\n- Always open PRs as draft.\n- Include reasoning of changes in the PR description, as well as decisions that were taken during implementation. Do not explain the implementation that can be viewed in the code.\n\n## Architecture\n\n### Core\n\n- `packages/core/` — Base SDK: interfaces, types, core functionality\n- `packages/types/` — Shared types (**deprecated, never modify – instead find types in packages/core**)\n- `packages/browser-utils/` — Browser utilities and instrumentation\n- `packages/node-core/` — Node core logic (excludes OTel instrumentation)\n\n### Platform SDKs\n\n- `packages/browser/` — Browser SDK + CDN bundles\n- `packages/node/` — Node.js SDK (OTel instrumentation on top of node-core)\n- `packages/bun/`, `packages/deno/`, `packages/cloudflare/`\n\n### Framework Integrations\n\n- `packages/{framework}/` — React, Vue, Angular, Next.js, Nuxt, SvelteKit, Remix, etc.\n- Some have client/server entry points (nextjs, nuxt, sveltekit)\n\n### AI Integrations\n\n- `packages/core/src/tracing/{provider}/` — Core instrumentation\n- `packages/node/src/integrations/tracing/{provider}/` — Node.js integration + OTel\n- `packages/cloudflare/src/integrations/tracing/{provider}.ts` — Edge runtime\n- Use `/add-ai-integration` skill when adding or modifying integrations\n\n### User Experience\n\n- `packages/replay-internal/`, `packages/replay-canvas/`, `packages/replay-worker/` — Session replay\n- `packages/feedback/` — User feedback\n\n### Dev Packages (`dev-packages/`)\n\n- `browser-integration-tests/` — Playwright browser tests\n- `e2e-tests/` — E2E tests (70+ framework combos)\n- `node-integration-tests/` — Node.js integration tests\n- `test-utils/` — Shared test utilities\n- `rollup-utils/` — Build utilities\n\n## Linting & Formatting\n\n- This project uses **Oxlint** and **Oxfmt** — NOT ESLint or Prettier\n- Never run `eslint`, `npx eslint`, or any ESLint CLI — use `yarn lint` (Oxlint) instead\n- Never run `prettier` — use `yarn format` (Oxfmt) instead\n- ESLint packages in the repo are legacy/e2e test app dependencies — ignore them\n- Do not create, modify, or suggest `.eslintrc`, `eslint.config.*`, or `.prettierrc` files\n\n## Coding Standards\n\n- Follow existing conventions — check neighboring files\n- Reach for existing utils before writing a new one. Most shared helpers live in `@sentry/core` (`packages/core/src/utils/`), with browser helpers in `packages/browser-utils/`. Search first (LSP `workspaceSymbol` or grep) for common needs (type guards in `is.ts`, object/array helpers, `normalize`, `dsn`, `merge`, string/url helpers). Reuse or extend the existing util rather than adding a near-duplicate; only introduce a new util when nothing fits.\n- Only use libraries already in the codebase\n- Never expose secrets or keys\n- When modifying files, cover all occurrences (including `src/` and `test/`)\n- Comments explain **why**, never **what** — never add a comment that restates what the code does or describes the change being made; only comment when the reasoning isn't obvious from the code itself\n\n## Reference Documentation\n\n- [Span Attributes](https://develop.sentry.dev/sdk/telemetry/attributes.md)\n- [Scopes (global, isolation, current)](https://develop.sentry.dev/sdk/telemetry/scopes.md)\n\n## Skills\n\n### E2E Testing\n\nUse `/e2e` skill to run E2E tests. See `.claude/skills/e2e/SKILL.md`\n\n### Security Vulnerabilities\n\nUse `/fix-security-vulnerability` skill for Dependabot alerts. See `.claude/skills/fix-security-vulnerability/SKILL.md`\n\n### Issue Triage\n\nUse `/triage-issue` skill. See `.claude/skills/triage-issue/SKILL.md`\n\n### CDN Bundles\n\nUse `/add-cdn-bundle` skill. See `.claude/skills/add-cdn-bundle/SKILL.md`\n\n### Publishing a Release\n\nUse `/release` skill. See `.claude/skills/release/SKILL.md`\n\n### Dependency Upgrades\n\nUse `/upgrade-dep` skill. See `.claude/skills/upgrade-dep/SKILL.md`\n\n### Vendor OpenTelemetry Instrumentation\n\nUse `/vendor-otel` skill. See `.claude/skills/vendor-otel/SKILL.md`\n\n### AI Integration\n\nUse `/add-ai-integration` skill. See `.claude/skills/add-ai-integration/SKILL.md`\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Sentry JavaScript SDK\n\nMonorepo with 40+ packages in `@sentry/*`, managed with Yarn workspaces and Nx.\n\n## Setup\n\n- [Volta](https://volta.sh/) for Node.js/Yarn/PNPM version management\n- Requires `VOLTA_FEATURE_PNPM=1`\n- After cloning: `yarn install && yarn build`\n- Never change Volta, Yarn, or package manager versions unless explicitly asked\n\n### Code Intelligence\n\nPrefer LSP over Grep/Read for code navigation — it's faster, precise, and avoids reading entire files:\n\n- `workspaceSymbol` to find where something is defined\n- `findReferences` to see all usages across the codebase\n- `goToDefinition` / `goToImplementation` to jump to source\n- `hover` for type info without reading the file\n\nUse Grep only when LSP isn't available or for text/pattern searches (comments, strings, config).\n\nAfter writing or editing code, check LSP diagnostics and fix errors before proceeding.\n\n## Package Manager\n\nUse **yarn**: `yarn install`, `yarn build:dev`, `yarn test`, `yarn lint`\n\n| Command                               | Purpose                       |\n| ------------------------------------- | ----------------------------- |\n| `yarn build`                          | Full production build         |\n| `yarn build:dev`                      | Dev build (transpile + types) |\n| `yarn build:dev:filter @sentry/<pkg>` | Build one package + deps      |\n| `yarn build:bundle`                   | Browser bundles only          |\n| `yarn test`                           | All unit tests                |\n| `yarn verify`                         | Lint + format check           |\n| `yarn fix`                            | Format + lint fix             |\n| `yarn lint`                           | Lint (Oxlint)                 |\n| `yarn lint:fix`                       | Lint + auto-fix (Oxlint)      |\n| `yarn format`                         | Format files (Oxfmt)          |\n| `yarn format:check`                   | Check formatting (Oxfmt)      |\n\nSingle package: `cd packages/<name> && yarn test`\n\n## Commit Attribution\n\nAI commits MUST include a `Co-Authored-By` line with the appropriate committer email when known:\n\n```\nCo-Authored-By: <Claude model name> <noreply@anthropic.com>\nCo-Authored-By: <OpenAI/ChatGPT model name> <codex@openai.com>\nCo-Authored-By: <Cursor agent name> <cursoragent@cursor.com>\n```\n\nUse the Cursor email for Cursor, even when it runs a Claude or OpenAI model. Omit the line only when there is no known committer email address for the agent.\n\n## Git Workflow\n\nUses **Git Flow** (see `docs/gitflow.md`).\n\n- **All PRs target `develop`** (NOT `master`)\n- `master` = last released state — never merge directly\n- Feature branches: `feat/descriptive-name`\n- Never update dependencies, `package.json`, or build scripts unless explicitly asked\n\n## Before Every Commit\n\n1. `yarn format`\n2. `yarn lint`\n3. `yarn test`\n4. `yarn build:dev`\n5. NEVER push on `develop`\n\n## Pull Requests\n\n- **Do NOT add a \"Test plan\" / \"Testing\" checklist to PR bodies.** CI runs the full test suite on every PR — a hand-rolled checklist duplicates that signal and rots fast. Write the summary content directly and add a _Root cause_ section only if relevant.\n- **Omit the \"Summary\" heading** in PR bodies — lead with the summary text itself, no `## Summary` header.\n- Include `Fixes #<issue-number>` somewhere in the PR body so the merge auto-closes the linked issue.\n- Always open PRs as draft.\n- Include reasoning of changes in the PR description, as well as decisions that were taken during implementation. Do not explain the implementation that can be viewed in the code.\n\n## Architecture\n\n### Core\n\n- `packages/core/` — Base SDK: interfaces, types, core functionality\n- `packages/types/` — Shared types (**deprecated, never modify – instead find types in packages/core**)\n- `packages/browser-utils/` — Browser utilities and instrumentation\n- `packages/node-core/` — Node core logic (excludes OTel instrumentation)\n\n### Platform SDKs\n\n- `packages/browser/` — Browser SDK + CDN bundles\n- `packages/node/` — Node.js SDK (OTel instrumentation on top of node-core)\n- `packages/bun/`, `packages/deno/`, `packages/cloudflare/`\n\n### Framework Integrations\n\n- `packages/{framework}/` — React, Vue, Angular, Next.js, Nuxt, SvelteKit, Remix, etc.\n- Some have client/server entry points (nextjs, nuxt, sveltekit)\n\n### AI Integrations\n\n- `packages/core/src/tracing/{provider}/` — Core instrumentation\n- `packages/node/src/integrations/tracing/{provider}/` — Node.js integration + OTel\n- `packages/cloudflare/src/integrations/tracing/{provider}.ts` — Edge runtime\n- Use `/add-ai-integration` skill when adding or modifying integrations\n\n### User Experience\n\n- `packages/replay-internal/`, `packages/replay-canvas/`, `packages/replay-worker/` — Session replay\n- `packages/feedback/` — User feedback\n\n### Dev Packages (`dev-packages/`)\n\n- `browser-integration-tests/` — Playwright browser tests\n- `e2e-tests/` — E2E tests (70+ framework combos)\n- `node-integration-tests/` — Node.js integration tests\n- `test-utils/` — Shared test utilities\n- `rollup-utils/` — Build utilities\n\n## Linting & Formatting\n\n- This project uses **Oxlint** and **Oxfmt** — NOT ESLint or Prettier\n- Never run `eslint`, `npx eslint`, or any ESLint CLI — use `yarn lint` (Oxlint) instead\n- Never run `prettier` — use `yarn format` (Oxfmt) instead\n- ESLint packages in the repo are legacy/e2e test app dependencies — ignore them\n- Do not create, modify, or suggest `.eslintrc`, `eslint.config.*`, or `.prettierrc` files\n\n## Coding Standards\n\n- Follow existing conventions — check neighboring files\n- Reach for existing utils before writing a new one. Most shared helpers live in `@sentry/core` (`packages/core/src/utils/`), with browser helpers in `packages/browser-utils/`. Search first (LSP `workspaceSymbol` or grep) for common needs (type guards in `is.ts`, object/array helpers, `normalize`, `dsn`, `merge`, string/url helpers). Reuse or extend the existing util rather than adding a near-duplicate; only introduce a new util when nothing fits.\n- Only use libraries already in the codebase\n- Never expose secrets or keys\n- When modifying files, cover all occurrences (including `src/` and `test/`)\n- Comments explain **why**, never **what** — never add a comment that restates what the code does or describes the change being made; only comment when the reasoning isn't obvious from the code itself\n\n## Reference Documentation\n\n- [Span Attributes](https://develop.sentry.dev/sdk/telemetry/attributes.md)\n- [Scopes (global, isolation, current)](https://develop.sentry.dev/sdk/telemetry/scopes.md)\n\n## Skills\n\n### E2E Testing\n\nUse `/e2e` skill to run E2E tests. See `.claude/skills/e2e/SKILL.md`\n\n### Security Vulnerabilities\n\nUse `/fix-security-vulnerability` skill for Dependabot alerts. See `.claude/skills/fix-security-vulnerability/SKILL.md`\n\n### Issue Triage\n\nUse `/triage-issue` skill. See `.claude/skills/triage-issue/SKILL.md`\n\n### CDN Bundles\n\nUse `/add-cdn-bundle` skill. See `.claude/skills/add-cdn-bundle/SKILL.md`\n\n### Publishing a Release\n\nUse `/release` skill. See `.claude/skills/release/SKILL.md`\n\n### Dependency Upgrades\n\nUse `/upgrade-dep` skill. See `.claude/skills/upgrade-dep/SKILL.md`\n\n### Vendor OpenTelemetry Instrumentation\n\nUse `/vendor-otel` skill. See `.claude/skills/vendor-otel/SKILL.md`\n\n### AI Integration\n\nUse `/add-ai-integration` skill. See `.claude/skills/add-ai-integration/SKILL.md`\n","category":"root","tokens":1845}]}