덮어쓰기가 아니라 이어 붙이기
관리 정책·사용자·프로젝트·로컬 메모리의 로드 순서와 적재 시점
같은 규칙을 어디에 적어야 하느냐고 물으면 대부분 CLAUDE.md 하나를 떠올립니다. 그런데 Claude Code는 관리 정책·사용자·프로젝트·로컬 메모리를 모두 로드하고, 어느 하나가 다른 하나를 덮어쓰지 않습니다. 작업 디렉토리에서 파일시스템 루트까지 올라가며 발견한 CLAUDE.md와 CLAUDE.local.md가 넓은 범위부터 구체적인 범위 순으로 차례로 이어 붙습니다. 그래서 "한 곳만 고치면 된다"는 가정은 성립하지 않고, 두 곳에 같은 문장을 적으면 강제력 대신 토큰만 두 배로 씁니다.
| 유형 | 위치 | 무엇을 넣나 |
|---|---|---|
| 관리 정책 | OS별 ClaudeCode/CLAUDE.md | 조직 보안·컴플라이언스 규칙 |
| 사용자 메모리 | ~/.claude/CLAUDE.md | 모든 프로젝트 공통 개인 선호 |
| 프로젝트 메모리 | ./CLAUDE.md 또는 ./.claude/CLAUDE.md | 팀 공통 규칙, 빌드·테스트 명령 |
| 프로젝트 규칙 | ./.claude/rules/*.md | 주제별 규칙 모듈, paths: 조건부 |
| 로컬 메모리 | ./CLAUDE.local.md | 개인 설정, .gitignore 권장 |
- 로드 목록 확인/memory를 실행해 이번 세션에 실제로 로드된 파일 목록부터 눈으로 봅니다.
- 범위 질문 던지기규칙마다 모든 저장소·이 저장소·나만 중 하나만 고르고 그 층에 적습니다.
- 중복 제거상위와 하위에 같은 문장이 있으면 더 구체적인 쪽만 남기고 지웁니다.
- 개인 설정 분리나에게만 필요한 지침은 CLAUDE.local.md로 옮기고 .gitignore에 넣습니다.