149 lines
4.3 KiB
Markdown
149 lines
4.3 KiB
Markdown
---
|
|
name: memory
|
|
description: How to use CLAUDE.md memory files for persistent instructions across sessions. Use when user asks about CLAUDE.md, memory files, project instructions, or persistent context.
|
|
---
|
|
|
|
# Claude Code Memory (CLAUDE.md)
|
|
|
|
## Overview
|
|
Claude Code maintains persistent memories across sessions using CLAUDE.md files organized in a hierarchical structure with four memory locations.
|
|
|
|
## Memory Hierarchy
|
|
|
|
**Enterprise Policy** (highest priority)
|
|
- macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`
|
|
- Linux: `/etc/claude-code/CLAUDE.md`
|
|
- Windows: `C:\ProgramData\ClaudeCode\CLAUDE.md`
|
|
- Organization-wide instructions for all users
|
|
|
|
**Project Memory**
|
|
- Location: `./CLAUDE.md` or `./.claude/CLAUDE.md`
|
|
- Purpose: Team-shared instructions for the project
|
|
- Shared via source control
|
|
|
|
**User Memory**
|
|
- Location: `~/.claude/CLAUDE.md`
|
|
- Personal preferences applying across all projects
|
|
|
|
**Project Memory (Local)** — Deprecated
|
|
- `./CLAUDE.local.md` is now superseded by imports
|
|
|
|
## CLAUDE.md Imports Feature
|
|
|
|
Files support `@path/to/import` syntax for including additional content. Examples:
|
|
|
|
```markdown
|
|
See @README for project overview and @package.json for available npm commands
|
|
```
|
|
|
|
Import paths can be relative or absolute. Practical use case for individual preferences:
|
|
|
|
```markdown
|
|
Individual Preferences - @~/.claude/my-project-instructions.md
|
|
```
|
|
|
|
Imports ignore markdown code spans and support recursive inclusion up to 5 levels deep.
|
|
|
|
## Core Usage Methods
|
|
|
|
### Quick Addition with `#` Shortcut
|
|
Start input with `#` followed by your memory. The system prompts you to select the target memory file.
|
|
|
|
### Direct Editing
|
|
Use `/memory` slash command to open memory files in your system editor for extensive modifications.
|
|
|
|
### Initialization
|
|
Run `/init` to bootstrap a CLAUDE.md file with project-specific information.
|
|
|
|
## Best Practices
|
|
|
|
**Be Specific**: "Use 2-space indentation" outperforms "Format code properly."
|
|
|
|
**Structure**: Format memories as bullet points under descriptive markdown headings.
|
|
|
|
**Review Periodically**: Update memories as projects evolve.
|
|
|
|
**Ideal Memory Content**:
|
|
- Frequently-used build commands
|
|
- Code style preferences
|
|
- Naming conventions
|
|
- Architectural patterns specific to your project
|
|
- Testing requirements
|
|
- Deployment procedures
|
|
- Code review criteria
|
|
|
|
## Example CLAUDE.md
|
|
|
|
```markdown
|
|
# Project Instructions
|
|
|
|
## Code Style
|
|
- Use 2-space indentation
|
|
- Prefer functional components in React
|
|
- Use TypeScript strict mode
|
|
- Follow ESLint rules without exceptions
|
|
|
|
## Build Commands
|
|
- `npm run dev` - Start development server
|
|
- `npm run test` - Run test suite
|
|
- `npm run build` - Production build
|
|
|
|
## Architecture
|
|
- API routes in `src/api/`
|
|
- Components in `src/components/`
|
|
- Utilities in `src/utils/`
|
|
- Follow feature-based folder structure
|
|
|
|
## Testing
|
|
- Write unit tests for all utilities
|
|
- Integration tests for API routes
|
|
- Use React Testing Library for components
|
|
|
|
## External Resources
|
|
See @README.md for project overview
|
|
See @CONTRIBUTING.md for contribution guidelines
|
|
```
|
|
|
|
## Working with Team Memories
|
|
|
|
**Project-level CLAUDE.md**:
|
|
- Commit to source control
|
|
- Share coding standards across team
|
|
- Define common workflows
|
|
- Document project-specific conventions
|
|
|
|
**Local overrides**:
|
|
- Use imports to extend project memory
|
|
- Add personal preferences without affecting team
|
|
- Reference local configuration files
|
|
|
|
## Memory Hierarchy in Practice
|
|
|
|
When Claude processes a request, it reads all applicable memory files in order of precedence:
|
|
1. Enterprise policy (if configured)
|
|
2. Project memory (team-shared)
|
|
3. User memory (personal preferences)
|
|
|
|
Settings in higher-priority files take precedence over lower-priority ones.
|
|
|
|
## Common Use Cases
|
|
|
|
**Onboarding**: New team members get instant context from project CLAUDE.md
|
|
|
|
**Consistency**: Team maintains consistent code style through shared memory
|
|
|
|
**Personalization**: Individual developers add personal preferences via user memory
|
|
|
|
**Security**: Enterprise policies enforce security requirements globally
|
|
|
|
**Documentation**: Import existing project docs to provide context
|
|
|
|
## Tips
|
|
|
|
- Keep memories focused and actionable
|
|
- Use headings to organize different types of instructions
|
|
- Update memories when conventions change
|
|
- Leverage imports to avoid duplication
|
|
- Review memories periodically for relevance
|
|
- Use specific examples rather than vague guidelines
|