-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
feat: Add CLAUDE.md and Cursor rules development guidance #16660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 3 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
28d2c36
feat: Add CLAUDE.md for Claude Code development guidance
HazAT 2e17545
feat: Add Claude Code local settings
HazAT 5a86ba3
docs: Add Git Flow branching strategy to CLAUDE.md
HazAT c5ded17
docs: Add mandatory code quality requirements to CLAUDE.md
HazAT bd602c2
docs: Incorporate review feedback into CLAUDE.md
HazAT 21f944c
docs: Fix formatting in CLAUDE.md after review updates
HazAT 67c429b
feat: Add .cursorrules for Cursor IDE development guidance
HazAT 4b10756
docs: Add documentation sync reminder to .cursorrules
HazAT f75497a
docs: Sync any remaining documentation changes
HazAT 517d09e
Update .cursorrules
HazAT 22920d8
refactor: Move Cursor rules to modern .cursor/rules/ structure
HazAT 37fecfe
fix: Rename Cursor rules file to use .mdc extension
HazAT dcfeebe
fix: Add missing newline at end of CLAUDE.md
HazAT File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"permissions": { | ||
"allow": [ | ||
"Bash(find:*)", | ||
"Bash(ls:*)", | ||
"Bash(git:*)", | ||
"Bash(yarn:*)" | ||
], | ||
"deny": [] | ||
} | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# CLAUDE.md | ||
|
||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. | ||
|
||
## Development Commands | ||
|
||
### Build Commands | ||
- `yarn build` - Full production build with package verification | ||
- `yarn build:dev` - Development build (transpile + types) | ||
- `yarn build:dev:watch` - Development build in watch mode (recommended for development) | ||
- `yarn build:dev:filter <package>` - Build specific package and its dependencies | ||
- `yarn build:types:watch` - Watch mode for TypeScript types only | ||
- `yarn build:bundle` - Build browser bundles only | ||
|
||
### Testing | ||
- `yarn test` - Run all tests (excludes integration tests) | ||
- `yarn test:unit` - Run unit tests only | ||
- `yarn test:pr` - Run tests affected by changes (CI mode) | ||
- `yarn test:pr:browser` - Run affected browser-specific tests | ||
- `yarn test:pr:node` - Run affected Node.js-specific tests | ||
|
||
### Linting and Formatting | ||
- `yarn lint` - Run ESLint and Prettier checks | ||
- `yarn fix` - Auto-fix linting and formatting issues | ||
- `yarn lint:es-compatibility` - Check ES compatibility | ||
|
||
### Package Management | ||
- `yarn clean` - Clean build artifacts and caches | ||
- `yarn clean:deps` - Clean and reinstall all dependencies | ||
|
||
## Repository Architecture | ||
|
||
This is a Lerna monorepo containing 40+ packages in the `@sentry/*` namespace. Key architectural components: | ||
|
||
### Core Packages | ||
- `packages/core/` - Base SDK with interfaces, type definitions, and core functionality | ||
- `packages/types/` - Shared TypeScript type definitions | ||
- `packages/browser-utils/` - Browser-specific utilities and instrumentation | ||
|
||
### Platform SDKs | ||
- `packages/browser/` - Browser SDK with bundled variants | ||
- `packages/node/` - Node.js SDK with server-side integrations | ||
- `packages/bun/`, `packages/deno/`, `packages/cloudflare/` - Runtime-specific SDKs | ||
|
||
### Framework Integrations | ||
- Framework packages follow naming: `packages/{framework}/` (react, vue, angular, etc.) | ||
- Each has client/server entry points where applicable (e.g., nextjs, nuxt, sveltekit) | ||
HazAT marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Build System | ||
- Uses Rollup for bundling with config files: `rollup.*.config.mjs` | ||
- TypeScript with multiple tsconfig files per package (main, test, types) | ||
- Lerna manages package dependencies and publishing | ||
- Vite for testing with `vitest` | ||
HazAT marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Package Structure Pattern | ||
AbhiPrasad marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Each package typically contains: | ||
- `src/index.ts` - Main entry point | ||
- `src/sdk.ts` - SDK initialization logic | ||
- `rollup.npm.config.mjs` - Build configuration | ||
- `tsconfig.json`, `tsconfig.test.json`, `tsconfig.types.json` - TypeScript configs | ||
- `test/` directory with corresponding test files | ||
|
||
### Key Development Notes | ||
- Uses Volta for Node.js/Yarn version management | ||
- Requires initial `yarn build` after `yarn install` for TypeScript linking | ||
- Integration tests are in separate packages (`dev-packages/`) | ||
- Native profiling requires Python <3.12 for binary builds | ||
- Bundle outputs vary - check `build/bundles/` for specific files after builds | ||
|
||
## Git Flow Branching Strategy | ||
|
||
This repository uses **Git Flow** branching model: | ||
|
||
### Branch Structure | ||
- `master` - Production releases only | ||
- `develop` - Main development branch (target for PRs) | ||
- `feat/` - Feature branches (e.g., `feat/add-feature`) | ||
HazAT marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- `release/X.Y.Z` - Release preparation branches | ||
|
||
### Workflow | ||
- **All PRs target `develop` branch** (not `master`) | ||
- Features are merged: `feat/branch` → `develop` | ||
- Releases are created: `develop` → `release/X.Y.Z` → `master` | ||
- Automated workflow syncs `master` back to `develop` after releases | ||
HazAT marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Branch Naming | ||
- Features: `feat/descriptive-name` | ||
- Releases: `release/X.Y.Z` | ||
|
||
## Testing Single Packages | ||
To test a specific package: `cd packages/{package-name} && yarn test` | ||
To build a specific package: `yarn build:dev:filter @sentry/{package-name}` |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.