# CLAUDE.md는 왜 가끔 무시되는가

> 전달 방식의 차이로 결정되는 강제력과 훅의 역할

- Canonical: https://learning.reopt.ai/en/courses/claude-code-project-context/lessons/ccpc-m2-concept
- Language: en
- HTML: https://learning.reopt.ai/en/courses/claude-code-project-context/lessons/ccpc-m2-concept

---

[Designing project context](/en/courses/claude-code-project-context) 2. 지침과 강제의 경계 3 / 9

# CLAUDE.md는 왜 가끔 무시되는가

전달 방식의 차이로 결정되는 강제력과 훅의 역할
Concept 45 XP 9 min

"커밋 전 반드시 lint를 돌린다"를 굵게 적어두고도 주 1~2회 그냥 커밋되는 일이 생깁니다. CLAUDE.md 내용은 시스템 프롬프트가 아니라 시스템 프롬프트 뒤의 사용자 메시지 로 전달되기 때문에 엄격한 준수가 보장되지 않습니다. 문구를 CRITICAL로 강화해도 전달 방식은 그대로이고, 오히려 과한 표현은 도구·스킬을 과도하게 트리거해 불안정해집니다. 규칙을 강하게 만들고 싶다면 문장을 고칠 것이 아니라 규칙이 놓인 자리 를 바꿔야 합니다.
한 번 어겨지면 사고인가 규칙마다 "한 번 어겨져도 되돌릴 수 있는가"를 묻습니다. 아니라고 답한 규칙은 CLAUDE.md가 아니라 PreToolUse 훅에 있어야 하고, 문서에는 배경과 예외만 남깁니다.

| 배치 위치 | 강제력 | 이럴 때 고른다 |
| CLAUDE.md·rules | 기대 수준(확률적) | 배경·관례·선호를 알릴 때 |
| --append-system-prompt | 시스템 프롬프트 수준 지침 | 우선순위는 올리되 실행은 자율일 때 |
| PreToolUse 훅 | 실행 전 차단 가능 | 어기면 되돌릴 수 없는 동작일 때 |
| InstructionsLoaded 훅 | 차단 불가, 관찰 전용 | 무엇이 왜 로드됐는지 감사할 때 |
| REVIEW.md | 리뷰 에이전트에 verbatim 주입 | 리뷰 심각도를 바꿔야 할 때 |

강제력은 문장의 세기가 아니라 전달 경로가 결정합니다.

- 1 가역성 분류 CLAUDE.md의 각 규칙을 되돌릴 수 있는 것과 없는 것으로 나눕니다.

- 2 훅으로 승격 되돌릴 수 없는 규칙은 PreToolUse 훅으로 옮겨 차단 조건을 코드로 적습니다.

- 3 문서 정리 문서에는 이유와 예외만 남기고 여러 파일에 복사된 문장을 지웁니다.

- 4 로딩 감사 InstructionsLoaded 훅으로 어떤 지침이 왜 로드됐는지 기록만 남깁니다.

실무에 남길 기준

- CLAUDE.md와 자동 메모리는 강제 설정이 아니라 컨텍스트다 — 차단은 PreToolUse 훅의 몫이다
- InstructionsLoaded는 file_path·memory_type·load_reason을 받는 관찰 전용 훅이라 로딩을 막거나 내용을 바꿀 수 없다
- 같은 문장을 CLAUDE.md·CLAUDE.local.md·rules에 중복해 적으면 컨텍스트만 세 배 쓰고 강제력은 그대로다

[Previous](/en/courses/claude-code-project-context/lessons/ccpc-m1-quiz) Got it · Continue

---

Site guide for agents: https://learning.reopt.ai/llms.txt · Sitemap: https://learning.reopt.ai/sitemap.xml · Contact: https://learning.reopt.ai/contact
