refactor: Reorganize repository structure for optimal learning path
Reorder folders based on learning dependencies, complexity, and frequency of use: - 01-slash-commands (unchanged) - Quick wins for beginners - 02-memory (was 03) - Essential foundation - 03-skills (was 05) - Auto-invoked capabilities - 04-subagents (was 02) - Task delegation - 05-mcp (was 04) - External integration - 06-hooks (was 07) - Event automation - 07-plugins (was 06) - Bundled solutions - 08-checkpoints (unchanged) - Safe experimentation - 09-advanced-features (unchanged) - Power user tools Documentation improvements: - Add LEARNING-ROADMAP.md with detailed milestones and exercises - Simplify README.md for better scannability - Consolidate Quick Start and Getting Started sections - Combine Feature Comparison and Use Case Matrix tables - Reorder README sections: Learning Path → Quick Reference → Getting Started - Update all cross-references across module READMEs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
548
02-memory/README.md
Normal file
548
02-memory/README.md
Normal file
@@ -0,0 +1,548 @@
|
||||

|
||||
|
||||
# Memory Guide
|
||||
|
||||
Memory enables Claude to retain context across sessions and conversations. It exists in two forms: automatic synthesis in claude.ai, and filesystem-based CLAUDE.md in Claude Code.
|
||||
|
||||
## Overview
|
||||
|
||||
Memory in Claude Code provides persistent context that carries across multiple sessions and conversations. Unlike temporary context windows, memory files allow you to:
|
||||
|
||||
- Share project standards across your team
|
||||
- Store personal development preferences
|
||||
- Maintain directory-specific rules and configurations
|
||||
- Import external documentation
|
||||
- Version control memory as part of your project
|
||||
|
||||
The memory system operates at multiple levels, from global personal preferences down to specific subdirectories, allowing for fine-grained control over what Claude remembers and how it applies that knowledge.
|
||||
|
||||
## Memory Architecture
|
||||
|
||||
Memory in Claude Code follows a hierarchical system where different scopes serve different purposes:
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A["Claude Session"]
|
||||
B["User Input"]
|
||||
C["Memory System"]
|
||||
D["Memory Storage"]
|
||||
|
||||
B -->|User provides info| C
|
||||
C -->|Synthesizes every 24h| D
|
||||
D -->|Loads automatically| A
|
||||
A -->|Uses context| C
|
||||
```
|
||||
|
||||
## Memory Hierarchy in Claude Code
|
||||
|
||||
Claude searches for memory files in this order, with earlier locations taking precedence:
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A["Project Root"] -->|searches up| B["CLAUDE.md"]
|
||||
B -->|highest priority| B1["Global instructions"]
|
||||
A -->|searches down| C["Subdirectory CLAUDE.md"]
|
||||
C -->|specific overrides| C1["Directory-specific rules"]
|
||||
H["User Home"] -->|fallback| D["~/.claude/CLAUDE.md"]
|
||||
D -->|personal preferences| D1["Personal settings"]
|
||||
|
||||
B1 -->|imports| E["@docs/architecture.md"]
|
||||
E -->|imports| F["@docs/api-standards.md"]
|
||||
```
|
||||
|
||||
## Memory Locations Table
|
||||
|
||||
| Location | Scope | Priority | Shared | Access | Best For |
|
||||
|----------|-------|----------|--------|--------|----------|
|
||||
| `./CLAUDE.md` | Project | High | Team | Git | Team standards, shared architecture |
|
||||
| `./.claude/CLAUDE.md` | Project | High | Team | Git | Alternative project location |
|
||||
| `./subdir/CLAUDE.md` | Directory | Medium | Team | Git | Directory-specific rules |
|
||||
| `~/.claude/CLAUDE.md` | Personal | Low | Individual | Filesystem | Personal preferences |
|
||||
| `~/.claude/my-project.md` | Personal | Low | Individual | Import | Project-specific personal notes |
|
||||
|
||||
## Memory Update Lifecycle
|
||||
|
||||
Here's how memory updates flow through your Claude Code sessions:
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User
|
||||
participant Claude as Claude Code
|
||||
participant Editor as File System
|
||||
participant Memory as CLAUDE.md
|
||||
|
||||
User->>Claude: "Remember: use async/await"
|
||||
Claude->>User: "Which memory file?"
|
||||
User->>Claude: "Project memory"
|
||||
Claude->>Editor: Open ~/.claude/settings.json
|
||||
Claude->>Memory: Write to ./CLAUDE.md
|
||||
Memory-->>Claude: File saved
|
||||
Claude->>Claude: Load updated memory
|
||||
Claude-->>User: "Memory saved!"
|
||||
```
|
||||
|
||||
## Practical Examples
|
||||
|
||||
### Example 1: Project Memory Structure
|
||||
|
||||
**File:** `./CLAUDE.md`
|
||||
|
||||
```markdown
|
||||
# Project Configuration
|
||||
|
||||
## Project Overview
|
||||
- **Name**: E-commerce Platform
|
||||
- **Tech Stack**: Node.js, PostgreSQL, React 18, Docker
|
||||
- **Team Size**: 5 developers
|
||||
- **Deadline**: Q4 2025
|
||||
|
||||
## Architecture
|
||||
@docs/architecture.md
|
||||
@docs/api-standards.md
|
||||
@docs/database-schema.md
|
||||
|
||||
## Development Standards
|
||||
|
||||
### Code Style
|
||||
- Use Prettier for formatting
|
||||
- Use ESLint with airbnb config
|
||||
- Maximum line length: 100 characters
|
||||
- Use 2-space indentation
|
||||
|
||||
### Naming Conventions
|
||||
- **Files**: kebab-case (user-controller.js)
|
||||
- **Classes**: PascalCase (UserService)
|
||||
- **Functions/Variables**: camelCase (getUserById)
|
||||
- **Constants**: UPPER_SNAKE_CASE (API_BASE_URL)
|
||||
- **Database Tables**: snake_case (user_accounts)
|
||||
|
||||
### Git Workflow
|
||||
- Branch names: `feature/description` or `fix/description`
|
||||
- Commit messages: Follow conventional commits
|
||||
- PR required before merge
|
||||
- All CI/CD checks must pass
|
||||
- Minimum 1 approval required
|
||||
|
||||
### Testing Requirements
|
||||
- Minimum 80% code coverage
|
||||
- All critical paths must have tests
|
||||
- Use Jest for unit tests
|
||||
- Use Cypress for E2E tests
|
||||
- Test filenames: `*.test.ts` or `*.spec.ts`
|
||||
|
||||
### API Standards
|
||||
- RESTful endpoints only
|
||||
- JSON request/response
|
||||
- Use HTTP status codes correctly
|
||||
- Version API endpoints: `/api/v1/`
|
||||
- Document all endpoints with examples
|
||||
|
||||
### Database
|
||||
- Use migrations for schema changes
|
||||
- Never hardcode credentials
|
||||
- Use connection pooling
|
||||
- Enable query logging in development
|
||||
- Regular backups required
|
||||
|
||||
### Deployment
|
||||
- Docker-based deployment
|
||||
- Kubernetes orchestration
|
||||
- Blue-green deployment strategy
|
||||
- Automatic rollback on failure
|
||||
- Database migrations run before deploy
|
||||
|
||||
## Common Commands
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `npm run dev` | Start development server |
|
||||
| `npm test` | Run test suite |
|
||||
| `npm run lint` | Check code style |
|
||||
| `npm run build` | Build for production |
|
||||
| `npm run migrate` | Run database migrations |
|
||||
|
||||
## Team Contacts
|
||||
- Tech Lead: Sarah Chen (@sarah.chen)
|
||||
- Product Manager: Mike Johnson (@mike.j)
|
||||
- DevOps: Alex Kim (@alex.k)
|
||||
|
||||
## Known Issues & Workarounds
|
||||
- PostgreSQL connection pooling limited to 20 during peak hours
|
||||
- Workaround: Implement query queuing
|
||||
- Safari 14 compatibility issues with async generators
|
||||
- Workaround: Use Babel transpiler
|
||||
|
||||
## Related Projects
|
||||
- Analytics Dashboard: `/projects/analytics`
|
||||
- Mobile App: `/projects/mobile`
|
||||
- Admin Panel: `/projects/admin`
|
||||
```
|
||||
|
||||
### Example 2: Directory-Specific Memory
|
||||
|
||||
**File:** `./src/api/CLAUDE.md`
|
||||
|
||||
```markdown
|
||||
# API Module Standards
|
||||
|
||||
This file overrides root CLAUDE.md for everything in /src/api/
|
||||
|
||||
## API-Specific Standards
|
||||
|
||||
### Request Validation
|
||||
- Use Zod for schema validation
|
||||
- Always validate input
|
||||
- Return 400 with validation errors
|
||||
- Include field-level error details
|
||||
|
||||
### Authentication
|
||||
- All endpoints require JWT token
|
||||
- Token in Authorization header
|
||||
- Token expires after 24 hours
|
||||
- Implement refresh token mechanism
|
||||
|
||||
### Response Format
|
||||
|
||||
All responses must follow this structure:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": { /* actual data */ },
|
||||
"timestamp": "2025-11-06T10:30:00Z",
|
||||
"version": "1.0"
|
||||
}
|
||||
```
|
||||
|
||||
Error responses:
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"error": {
|
||||
"code": "VALIDATION_ERROR",
|
||||
"message": "User message",
|
||||
"details": { /* field errors */ }
|
||||
},
|
||||
"timestamp": "2025-11-06T10:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### Pagination
|
||||
- Use cursor-based pagination (not offset)
|
||||
- Include `hasMore` boolean
|
||||
- Limit max page size to 100
|
||||
- Default page size: 20
|
||||
|
||||
### Rate Limiting
|
||||
- 1000 requests per hour for authenticated users
|
||||
- 100 requests per hour for public endpoints
|
||||
- Return 429 when exceeded
|
||||
- Include retry-after header
|
||||
|
||||
### Caching
|
||||
- Use Redis for session caching
|
||||
- Cache duration: 5 minutes default
|
||||
- Invalidate on write operations
|
||||
- Tag cache keys with resource type
|
||||
```
|
||||
|
||||
### Example 3: Personal Memory
|
||||
|
||||
**File:** `~/.claude/CLAUDE.md`
|
||||
|
||||
```markdown
|
||||
# My Development Preferences
|
||||
|
||||
## About Me
|
||||
- **Experience Level**: 8 years full-stack development
|
||||
- **Preferred Languages**: TypeScript, Python
|
||||
- **Communication Style**: Direct, with examples
|
||||
- **Learning Style**: Visual diagrams with code
|
||||
|
||||
## Code Preferences
|
||||
|
||||
### Error Handling
|
||||
I prefer explicit error handling with try-catch blocks and meaningful error messages.
|
||||
Avoid generic errors. Always log errors for debugging.
|
||||
|
||||
### Comments
|
||||
Use comments for WHY, not WHAT. Code should be self-documenting.
|
||||
Comments should explain business logic or non-obvious decisions.
|
||||
|
||||
### Testing
|
||||
I prefer TDD (test-driven development).
|
||||
Write tests first, then implementation.
|
||||
Focus on behavior, not implementation details.
|
||||
|
||||
### Architecture
|
||||
I prefer modular, loosely-coupled design.
|
||||
Use dependency injection for testability.
|
||||
Separate concerns (Controllers, Services, Repositories).
|
||||
|
||||
## Debugging Preferences
|
||||
- Use console.log with prefix: `[DEBUG]`
|
||||
- Include context: function name, relevant variables
|
||||
- Use stack traces when available
|
||||
- Always include timestamps in logs
|
||||
|
||||
## Communication
|
||||
- Explain complex concepts with diagrams
|
||||
- Show concrete examples before explaining theory
|
||||
- Include before/after code snippets
|
||||
- Summarize key points at the end
|
||||
|
||||
## Project Organization
|
||||
I organize my projects as:
|
||||
|
||||
project/
|
||||
├── src/
|
||||
│ ├── api/
|
||||
│ ├── services/
|
||||
│ ├── models/
|
||||
│ └── utils/
|
||||
├── tests/
|
||||
├── docs/
|
||||
└── docker/
|
||||
|
||||
## Tooling
|
||||
- **IDE**: VS Code with vim keybindings
|
||||
- **Terminal**: Zsh with Oh-My-Zsh
|
||||
- **Format**: Prettier (100 char line length)
|
||||
- **Linter**: ESLint with airbnb config
|
||||
- **Test Framework**: Jest with React Testing Library
|
||||
```
|
||||
|
||||
_My Test_
|
||||
Ask Claude to save a new rule
|
||||
|
||||

|
||||
Claude has not save the rule because I did not have any `Claude.md` file anywhere. Then asked Claude to confirm the location.
|
||||
|
||||

|
||||
|
||||
### Example 4: Memory Update During Session
|
||||
|
||||
**Session Interaction:**
|
||||
|
||||
```markdown
|
||||
User: Remember that I prefer using React hooks instead of class components
|
||||
for all new components.
|
||||
|
||||
Claude: I'm adding that to your memory. Which memory file should this go in?
|
||||
1. Project memory (./CLAUDE.md)
|
||||
2. Personal memory (~/.claude/CLAUDE.md)
|
||||
|
||||
User: Project memory
|
||||
|
||||
Claude: ✅ Memory saved!
|
||||
|
||||
Added to ./CLAUDE.md:
|
||||
---
|
||||
|
||||
### Component Development
|
||||
- Use functional components with React Hooks
|
||||
- Prefer hooks over class components
|
||||
- Custom hooks for reusable logic
|
||||
- Use useCallback for event handlers
|
||||
- Use useMemo for expensive computations
|
||||
```
|
||||
|
||||
## Memory Features Comparison
|
||||
|
||||
| Feature | Claude Web/Desktop | Claude Code (CLAUDE.md) |
|
||||
|---------|-------------------|------------------------|
|
||||
| Auto-synthesis | ✅ Every 24h | ❌ Manual |
|
||||
| Cross-project | ✅ Shared | ❌ Project-specific |
|
||||
| Team access | ✅ Shared projects | ✅ Git-tracked |
|
||||
| Searchable | ✅ Built-in | ✅ Through `/memory` |
|
||||
| Editable | ✅ In-chat | ✅ Direct file edit |
|
||||
| Import/Export | ✅ Yes | ✅ Copy/paste |
|
||||
| Persistent | ✅ 24h+ | ✅ Indefinite |
|
||||
|
||||
### Memory in Claude Web/Desktop
|
||||
|
||||
#### Memory Synthesis Timeline
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A["Day 1: User<br/>Conversations"] -->|24 hours| B["Day 2: Memory<br/>Synthesis"]
|
||||
B -->|Automatic| C["Memory Updated<br/>Summarized"]
|
||||
C -->|Loaded in| D["Day 2-N:<br/>New Conversations"]
|
||||
D -->|Add to| E["Memory"]
|
||||
E -->|24 hours later| F["Memory Refreshed"]
|
||||
```
|
||||
|
||||
**Example Memory Summary:**
|
||||
|
||||
```markdown
|
||||
## Claude's Memory of User
|
||||
|
||||
### Professional Background
|
||||
- Senior full-stack developer with 8 years experience
|
||||
- Focus on TypeScript/Node.js backends and React frontends
|
||||
- Active open source contributor
|
||||
- Interested in AI and machine learning
|
||||
|
||||
### Project Context
|
||||
- Currently building e-commerce platform
|
||||
- Tech stack: Node.js, PostgreSQL, React 18, Docker
|
||||
- Working with team of 5 developers
|
||||
- Using CI/CD and blue-green deployments
|
||||
|
||||
### Communication Preferences
|
||||
- Prefers direct, concise explanations
|
||||
- Likes visual diagrams and examples
|
||||
- Appreciates code snippets
|
||||
- Explains business logic in comments
|
||||
|
||||
### Current Goals
|
||||
- Improve API performance
|
||||
- Increase test coverage to 90%
|
||||
- Implement caching strategy
|
||||
- Document architecture
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Do's - What To Include
|
||||
|
||||
- **Keep organized**: Structure memory files with clear sections
|
||||
- **Keep up-to-date**: Review and update memory regularly as standards change
|
||||
- **Use project memory for**: Team standards, architecture, coding conventions
|
||||
- **Use personal memory for**: Preferences, communication style, tooling choices
|
||||
- **Use directory memory for**: Module-specific rules and overrides
|
||||
- **Version control**: Commit CLAUDE.md files to git for team benefit
|
||||
- **Import docs**: Reference external files with @docs/file.md syntax
|
||||
- **Be specific**: Provide concrete examples and clear expectations
|
||||
|
||||
### Don'ts - What To Avoid
|
||||
|
||||
- **Don't store secrets**: Never include API keys, passwords, or credentials
|
||||
- **Don't duplicate**: Avoid repeating content across memory files
|
||||
- **Don't create too many**: Keep subdirectory overrides minimal and focused
|
||||
- **Don't make it too long**: Keep memory files under 500 lines
|
||||
- **Don't include sensitive data**: No PII, private information, or proprietary secrets
|
||||
- **Don't forget to update**: Memory becomes stale if not maintained
|
||||
- **Don't over-organize**: Use hierarchy strategically, not excessively
|
||||
|
||||
## Installation Instructions
|
||||
|
||||
### Setup Project Memory
|
||||
|
||||
1. **Create a CLAUDE.md in your project root:**
|
||||
```bash
|
||||
cd /path/to/your/project
|
||||
touch CLAUDE.md
|
||||
```
|
||||
|
||||
2. **Add project standards:**
|
||||
```bash
|
||||
cat > CLAUDE.md << 'EOF'
|
||||
# Project Configuration
|
||||
|
||||
## Project Overview
|
||||
- **Name**: Your Project Name
|
||||
- **Tech Stack**: List your technologies
|
||||
- **Team Size**: Number of developers
|
||||
|
||||
## Development Standards
|
||||
- Your coding standards
|
||||
- Naming conventions
|
||||
- Testing requirements
|
||||
EOF
|
||||
```
|
||||
|
||||
3. **Commit to git:**
|
||||
```bash
|
||||
git add CLAUDE.md
|
||||
git commit -m "Add project memory configuration"
|
||||
```
|
||||
|
||||
### Setup Personal Memory
|
||||
|
||||
1. **Create ~/.claude directory:**
|
||||
```bash
|
||||
mkdir -p ~/.claude
|
||||
```
|
||||
|
||||
2. **Create personal CLAUDE.md:**
|
||||
```bash
|
||||
touch ~/.claude/CLAUDE.md
|
||||
```
|
||||
|
||||
3. **Add your preferences:**
|
||||
```bash
|
||||
cat > ~/.claude/CLAUDE.md << 'EOF'
|
||||
# My Development Preferences
|
||||
|
||||
## About Me
|
||||
- Experience Level: [Your level]
|
||||
- Preferred Languages: [Your languages]
|
||||
- Communication Style: [Your style]
|
||||
|
||||
## Code Preferences
|
||||
- [Your preferences]
|
||||
EOF
|
||||
```
|
||||
|
||||
### Setup Directory-Specific Memory
|
||||
|
||||
1. **Create memory for specific directories:**
|
||||
```bash
|
||||
mkdir -p /path/to/directory/.claude
|
||||
touch /path/to/directory/CLAUDE.md
|
||||
```
|
||||
|
||||
2. **Add directory-specific rules:**
|
||||
```bash
|
||||
cat > /path/to/directory/CLAUDE.md << 'EOF'
|
||||
# [Directory Name] Standards
|
||||
|
||||
This file overrides root CLAUDE.md for this directory.
|
||||
|
||||
## [Specific Standards]
|
||||
EOF
|
||||
```
|
||||
|
||||
3. **Commit to version control:**
|
||||
```bash
|
||||
git add /path/to/directory/CLAUDE.md
|
||||
git commit -m "Add [directory] memory configuration"
|
||||
```
|
||||
|
||||
### Verify Setup
|
||||
|
||||
1. **Check memory locations:**
|
||||
```bash
|
||||
# Project root memory
|
||||
ls -la ./CLAUDE.md
|
||||
|
||||
# Personal memory
|
||||
ls -la ~/.claude/CLAUDE.md
|
||||
```
|
||||
|
||||
2. **Claude Code will automatically load** these files when starting a session
|
||||
|
||||
3. **Test with Claude Code** by starting a new session in your project
|
||||
|
||||
## Related Concepts Links
|
||||
|
||||
### Core Memory Concepts
|
||||
- [CLAUDE.md File Format Guide](./examples/)
|
||||
- [Memory Examples](./examples/)
|
||||
- [Memory Hierarchy](./examples/)
|
||||
|
||||
### Integration Points
|
||||
- [MCP Protocol](../05-mcp/) - Live data access alongside memory
|
||||
- [Slash Commands](../01-slash-commands/) - Session-specific shortcuts
|
||||
- [Skills](../03-skills/) - Automated workflows with memory context
|
||||
|
||||
### Best Practices
|
||||
- [Code Organization](./examples/)
|
||||
- [Team Collaboration](./examples/)
|
||||
- [Documentation Strategy](./examples/)
|
||||
|
||||
### Related Claude Features
|
||||
- [Claude Web Memory](https://claude.ai) - Automatic synthesis
|
||||
- [File Imports](./examples/) - Reference external documentation
|
||||
- [File Context](../01-context-window/) - Current session context
|
||||
61
02-memory/directory-api-CLAUDE.md
Normal file
61
02-memory/directory-api-CLAUDE.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# API Module Standards
|
||||
|
||||
This file overrides root CLAUDE.md for everything in /src/api/
|
||||
|
||||
## API-Specific Standards
|
||||
|
||||
### Request Validation
|
||||
- Use Zod for schema validation
|
||||
- Always validate input
|
||||
- Return 400 with validation errors
|
||||
- Include field-level error details
|
||||
|
||||
### Authentication
|
||||
- All endpoints require JWT token
|
||||
- Token in Authorization header
|
||||
- Token expires after 24 hours
|
||||
- Implement refresh token mechanism
|
||||
|
||||
### Response Format
|
||||
|
||||
All responses must follow this structure:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": { /* actual data */ },
|
||||
"timestamp": "2025-11-06T10:30:00Z",
|
||||
"version": "1.0"
|
||||
}
|
||||
```
|
||||
|
||||
Error responses:
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"error": {
|
||||
"code": "VALIDATION_ERROR",
|
||||
"message": "User message",
|
||||
"details": { /* field errors */ }
|
||||
},
|
||||
"timestamp": "2025-11-06T10:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### Pagination
|
||||
- Use cursor-based pagination (not offset)
|
||||
- Include `hasMore` boolean
|
||||
- Limit max page size to 100
|
||||
- Default page size: 20
|
||||
|
||||
### Rate Limiting
|
||||
- 1000 requests per hour for authenticated users
|
||||
- 100 requests per hour for public endpoints
|
||||
- Return 429 when exceeded
|
||||
- Include retry-after header
|
||||
|
||||
### Caching
|
||||
- Use Redis for session caching
|
||||
- Cache duration: 5 minutes default
|
||||
- Invalidate on write operations
|
||||
- Tag cache keys with resource type
|
||||
BIN
02-memory/memory-ask-claude.png
Normal file
BIN
02-memory/memory-ask-claude.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 95 KiB |
BIN
02-memory/memory-saved.png
Normal file
BIN
02-memory/memory-saved.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 296 KiB |
60
02-memory/personal-CLAUDE.md
Normal file
60
02-memory/personal-CLAUDE.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# My Development Preferences
|
||||
|
||||
## About Me
|
||||
- **Experience Level**: 8 years full-stack development
|
||||
- **Preferred Languages**: TypeScript, Python
|
||||
- **Communication Style**: Direct, with examples
|
||||
- **Learning Style**: Visual diagrams with code
|
||||
|
||||
## Code Preferences
|
||||
|
||||
### Error Handling
|
||||
I prefer explicit error handling with try-catch blocks and meaningful error messages.
|
||||
Avoid generic errors. Always log errors for debugging.
|
||||
|
||||
### Comments
|
||||
Use comments for WHY, not WHAT. Code should be self-documenting.
|
||||
Comments should explain business logic or non-obvious decisions.
|
||||
|
||||
### Testing
|
||||
I prefer TDD (test-driven development).
|
||||
Write tests first, then implementation.
|
||||
Focus on behavior, not implementation details.
|
||||
|
||||
### Architecture
|
||||
I prefer modular, loosely-coupled design.
|
||||
Use dependency injection for testability.
|
||||
Separate concerns (Controllers, Services, Repositories).
|
||||
|
||||
## Debugging Preferences
|
||||
- Use console.log with prefix: `[DEBUG]`
|
||||
- Include context: function name, relevant variables
|
||||
- Use stack traces when available
|
||||
- Always include timestamps in logs
|
||||
|
||||
## Communication
|
||||
- Explain complex concepts with diagrams
|
||||
- Show concrete examples before explaining theory
|
||||
- Include before/after code snippets
|
||||
- Summarize key points at the end
|
||||
|
||||
## Project Organization
|
||||
I organize my projects as:
|
||||
```
|
||||
project/
|
||||
├── src/
|
||||
│ ├── api/
|
||||
│ ├── services/
|
||||
│ ├── models/
|
||||
│ └── utils/
|
||||
├── tests/
|
||||
├── docs/
|
||||
└── docker/
|
||||
```
|
||||
|
||||
## Tooling
|
||||
- **IDE**: VS Code with vim keybindings
|
||||
- **Terminal**: Zsh with Oh-My-Zsh
|
||||
- **Format**: Prettier (100 char line length)
|
||||
- **Linter**: ESLint with airbnb config
|
||||
- **Test Framework**: Jest with React Testing Library
|
||||
88
02-memory/project-CLAUDE.md
Normal file
88
02-memory/project-CLAUDE.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Project Configuration
|
||||
|
||||
## Project Overview
|
||||
- **Name**: E-commerce Platform
|
||||
- **Tech Stack**: Node.js, PostgreSQL, React 18, Docker
|
||||
- **Team Size**: 5 developers
|
||||
- **Deadline**: Q4 2025
|
||||
|
||||
## Architecture
|
||||
@docs/architecture.md
|
||||
@docs/api-standards.md
|
||||
@docs/database-schema.md
|
||||
|
||||
## Development Standards
|
||||
|
||||
### Code Style
|
||||
- Use Prettier for formatting
|
||||
- Use ESLint with airbnb config
|
||||
- Maximum line length: 100 characters
|
||||
- Use 2-space indentation
|
||||
|
||||
### Naming Conventions
|
||||
- **Files**: kebab-case (user-controller.js)
|
||||
- **Classes**: PascalCase (UserService)
|
||||
- **Functions/Variables**: camelCase (getUserById)
|
||||
- **Constants**: UPPER_SNAKE_CASE (API_BASE_URL)
|
||||
- **Database Tables**: snake_case (user_accounts)
|
||||
|
||||
### Git Workflow
|
||||
- Branch names: `feature/description` or `fix/description`
|
||||
- Commit messages: Follow conventional commits
|
||||
- PR required before merge
|
||||
- All CI/CD checks must pass
|
||||
- Minimum 1 approval required
|
||||
|
||||
### Testing Requirements
|
||||
- Minimum 80% code coverage
|
||||
- All critical paths must have tests
|
||||
- Use Jest for unit tests
|
||||
- Use Cypress for E2E tests
|
||||
- Test filenames: `*.test.ts` or `*.spec.ts`
|
||||
|
||||
### API Standards
|
||||
- RESTful endpoints only
|
||||
- JSON request/response
|
||||
- Use HTTP status codes correctly
|
||||
- Version API endpoints: `/api/v1/`
|
||||
- Document all endpoints with examples
|
||||
|
||||
### Database
|
||||
- Use migrations for schema changes
|
||||
- Never hardcode credentials
|
||||
- Use connection pooling
|
||||
- Enable query logging in development
|
||||
- Regular backups required
|
||||
|
||||
### Deployment
|
||||
- Docker-based deployment
|
||||
- Kubernetes orchestration
|
||||
- Blue-green deployment strategy
|
||||
- Automatic rollback on failure
|
||||
- Database migrations run before deploy
|
||||
|
||||
## Common Commands
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `npm run dev` | Start development server |
|
||||
| `npm test` | Run test suite |
|
||||
| `npm run lint` | Check code style |
|
||||
| `npm run build` | Build for production |
|
||||
| `npm run migrate` | Run database migrations |
|
||||
|
||||
## Team Contacts
|
||||
- Tech Lead: Sarah Chen (@sarah.chen)
|
||||
- Product Manager: Mike Johnson (@mike.j)
|
||||
- DevOps: Alex Kim (@alex.k)
|
||||
|
||||
## Known Issues & Workarounds
|
||||
- PostgreSQL connection pooling limited to 20 during peak hours
|
||||
- Workaround: Implement query queuing
|
||||
- Safari 14 compatibility issues with async generators
|
||||
- Workaround: Use Babel transpiler
|
||||
|
||||
## Related Projects
|
||||
- Analytics Dashboard: `/projects/analytics`
|
||||
- Mobile App: `/projects/mobile`
|
||||
- Admin Panel: `/projects/admin`
|
||||
Reference in New Issue
Block a user