Skip to content

Commit 631812a

Browse files
committed
Update CLAUDE.md with dependency alignment standards and commit guidelines
- Add mandatory dependency versions for Socket projects alignment - Document tsgo migration requirements and benefits - Update ESLint configuration standardization with unified typescript-eslint package - Clarify commit message guidelines without Claude attribution footers - Add cross-project consistency requirements for all Socket repositories
1 parent db54c1b commit 631812a

File tree

1 file changed

+88
-6
lines changed

1 file changed

+88
-6
lines changed

CLAUDE.md

Lines changed: 88 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,14 @@ You are a **Principal Software Engineer** responsible for:
124124
- **Shell commands**: Consider platform differences in shell commands and utilities
125125

126126
### Git Commit Guidelines
127-
- **🚨 FORBIDDEN**: NEVER add Claude co-authorship or Claude signatures to commits
128-
- **🚨 FORBIDDEN**: Do NOT include "Generated with Claude Code" or similar AI attribution in commit messages
129-
- **Commit messages**: Should be written as if by a human developer, focusing on the what and why of changes
130-
- **Professional commits**: Write clear, concise commit messages that describe the actual changes made
131-
- **Pithy messages**: Keep commit messages concise and to the point - avoid lengthy explanations
127+
- **DO NOT commit automatically** - let the user review changes first
128+
- Use `--no-verify` flag only when explicitly requested
129+
- **Commit message style**: Use conventional format without prefixes (feat:, fix:, chore:, etc.)
130+
- **Message guidelines**: Keep commit messages short, pithy, and targeted - avoid lengthy explanations
131+
- **Small commits**: Make small, focused commits that address a single concern
132+
- **❌ FORBIDDEN**: Do NOT add Claude Code attribution footer to commit messages
133+
- ❌ WRONG: Including "🤖 Generated with [Claude Code](https://claude.ai/code)\n\nCo-Authored-By: Claude <[email protected]>"
134+
- ✅ CORRECT: Clean commit messages without attribution footers
132135
- **Commit without tests**: `git commit --no-verify` (skips pre-commit hooks including tests)
133136

134137
### Package Management
@@ -451,4 +454,83 @@ When working in any Socket repository, check CLAUDE.md files in other Socket pro
451454
- Performance is paramount - this code runs millions of times
452455
- Maintain strict purl specification compliance
453456
- Always run lint and typecheck before committing
454-
- Test coverage should remain high
457+
- Test coverage should remain high
458+
459+
## 📦 Dependency Alignment Standards (CRITICAL)
460+
461+
### 🚨 MANDATORY Dependency Versions
462+
All Socket projects MUST maintain alignment on these core dependencies. Use `taze` to manage version updates when needed:
463+
464+
#### Core Build Tools & TypeScript
465+
- **@typescript/native-preview** (tsgo - NEVER use standard tsc)
466+
- **@types/node** (latest LTS types)
467+
- **typescript-eslint** (unified package - do NOT use separate @typescript-eslint/* packages)
468+
469+
#### Essential DevDependencies
470+
- **@biomejs/biome**
471+
- **@dotenvx/dotenvx**
472+
- **@eslint/compat**
473+
- **@eslint/js**
474+
- **@vitest/coverage-v8**
475+
- **eslint**
476+
- **eslint-plugin-import-x**
477+
- **eslint-plugin-n**
478+
- **eslint-plugin-sort-destructure-keys**
479+
- **eslint-plugin-unicorn**
480+
- **globals**
481+
- **husky**
482+
- **knip**
483+
- **lint-staged**
484+
- **npm-run-all2**
485+
- **oxlint**
486+
- **taze**
487+
- **trash**
488+
- **type-coverage**
489+
- **vitest**
490+
- **yargs-parser**
491+
- **yoctocolors-cjs**
492+
493+
### 🔧 TypeScript Compiler Standardization
494+
- **🚨 MANDATORY**: ALL Socket projects MUST use `tsgo` instead of `tsc`
495+
- **Package**: `@typescript/native-preview`
496+
- **Scripts**: Replace `tsc` with `tsgo` in all package.json scripts
497+
- **Benefits**: Enhanced performance, better memory management, faster compilation
498+
499+
#### Script Examples:
500+
```json
501+
{
502+
"build": "tsgo",
503+
"check:tsc": "tsgo --noEmit",
504+
"build:types": "tsgo --project tsconfig.dts.json"
505+
}
506+
```
507+
508+
### 🛠️ ESLint Configuration Standardization
509+
- **🚨 FORBIDDEN**: Do NOT use separate `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` packages
510+
- **✅ REQUIRED**: Use unified `typescript-eslint` package only
511+
- **Migration**: Remove separate packages, add unified package
512+
513+
#### Migration Commands:
514+
```bash
515+
pnpm remove @typescript-eslint/eslint-plugin @typescript-eslint/parser
516+
pnpm add -D typescript-eslint --save-exact
517+
```
518+
519+
### 📋 Dependency Update Requirements
520+
When updating dependencies across Socket projects:
521+
522+
1. **Use taze first**: Run `pnpm run taze` to check and update dependencies systematically
523+
2. **Version Consistency**: All projects MUST use identical versions for shared dependencies
524+
3. **Exact Versions**: Always use `--save-exact` flag to prevent version drift
525+
4. **Batch Updates**: Update all Socket projects simultaneously to maintain alignment
526+
5. **Testing**: Run full test suites after dependency updates to ensure compatibility
527+
6. **Documentation**: Update CLAUDE.md files when standard versions change
528+
529+
### 🔄 Cross-Project Consistency
530+
These standards apply across all Socket repositories:
531+
- `socket-cli`
532+
- `socket-packageurl-js`
533+
- `socket-registry`
534+
- `socket-sdk-js`
535+
536+
When working in any Socket repository, check CLAUDE.md files in other Socket projects for consistency and apply these patterns universally.

0 commit comments

Comments
 (0)