Monorepo with 40+ packages in @sentry/*, managed with Yarn workspaces and Nx.
- Volta for Node.js/Yarn/PNPM version management
- Requires
VOLTA_FEATURE_PNPM=1 - After cloning:
yarn install && yarn build - Never change Volta, Yarn, or package manager versions unless explicitly asked
Use yarn: yarn install, yarn build:dev, yarn test, yarn lint
| Command | Purpose |
|---|---|
yarn build |
Full production build |
yarn build:dev |
Dev build (transpile + types) |
yarn build:dev:filter @sentry/<pkg> |
Build one package + deps |
yarn build:bundle |
Browser bundles only |
yarn test |
All unit tests |
yarn lint |
ESLint + Oxfmt |
yarn fix |
Auto-fix lint + format |
yarn format |
Auto-fix formatting (Oxfmt) |
Single package: cd packages/<name> && yarn test
AI commits MUST include:
Co-Authored-By: <agent model name> <noreply@anthropic.com>
Uses Git Flow (see docs/gitflow.md).
- All PRs target
develop(NOTmaster) master= last released state — never merge directly- Feature branches:
feat/descriptive-name - Never update dependencies,
package.json, or build scripts unless explicitly asked
yarn formatyarn lintyarn testyarn build:dev- NEVER push on
develop
packages/core/— Base SDK: interfaces, types, core functionalitypackages/types/— Shared types (deprecated, never modify – instead find types in packages/core)packages/browser-utils/— Browser utilities and instrumentationpackages/node-core/— Node core logic (excludes OTel instrumentation)
packages/browser/— Browser SDK + CDN bundlespackages/node/— Node.js SDK (OTel instrumentation on top of node-core)packages/bun/,packages/deno/,packages/cloudflare/
packages/{framework}/— React, Vue, Angular, Next.js, Nuxt, SvelteKit, Remix, etc.- Some have client/server entry points (nextjs, nuxt, sveltekit)
packages/core/src/tracing/{provider}/— Core instrumentationpackages/node/src/integrations/tracing/{provider}/— Node.js integration + OTelpackages/cloudflare/src/integrations/tracing/{provider}.ts— Edge runtime- Use
/add-ai-integrationskill when adding or modifying integrations
packages/replay-internal/,packages/replay-canvas/,packages/replay-worker/— Session replaypackages/feedback/— User feedback
browser-integration-tests/— Playwright browser testse2e-tests/— E2E tests (70+ framework combos)node-integration-tests/— Node.js integration teststest-utils/— Shared test utilitiesrollup-utils/— Build utilities
- Follow existing conventions — check neighboring files
- Only use libraries already in the codebase
- Never expose secrets or keys
- When modifying files, cover all occurrences (including
src/andtest/)
Use /e2e skill to run E2E tests. See .claude/skills/e2e/SKILL.md
Use /fix-security-vulnerability skill for Dependabot alerts. See .claude/skills/fix-security-vulnerability/SKILL.md
Use /triage-issue skill. See .claude/skills/triage-issue/SKILL.md
Use /add-cdn-bundle skill. See .claude/skills/add-cdn-bundle/SKILL.md
Use /release skill. See .claude/skills/release/SKILL.md
Use /upgrade-dep skill. See .claude/skills/upgrade-dep/SKILL.md
Use /upgrade-otel skill. See .claude/skills/upgrade-otel/SKILL.md
Use /add-ai-integration skill. See .claude/skills/add-ai-integration/SKILL.md