나의 글로벌 CLAUDE.md. 실전 경험 공유.
My global CLAUDE.md. Skin the game.
핵심 요약
CLAUDE.md를 토큰 효율적으로 최적화하고, MCP 대신 CLI를 활용해 모델의 추론 확률을 제어하는 실전 팁.
- 토큰 효율화 — MCP 대신 CLI를 사용하고 불필요한 규칙을 제거해 토큰 비용을 절감함.
- 확률 제어 — CLAUDE.md는 강제 명령이 아닌 확률적 편향을 유도하는 도구로 활용해야 함.
- 상태 감지 — 규칙을 모호한 행동이 아닌 감지 가능한 사전 상태(pre-action state)로 작성해야 함.
- 캐시 관리 — 프로젝트 루트의 CLAUDE.md를 활용하고, 잦은 MCP 로딩으로 인한 캐시 파편화를 방지함.
tldr (실제로 테스트해 본 사람이 거의 없는 순서대로):
매일 쓰지 않는 MCP는 삭제할 것 (Desktop App MCP 포함).
CLI를 선호할 것.
내가 몇 달간 비공식적으로 테스트해 본 결과, MCP 호출은 동일한 작업을 수행하는 CLI보다 토큰을 약 60-80% 더 많이 소모함.
로드된 각 MCP 도구는 시스템 프롬프트 리마인더에 약 200-500개의 토큰을 영구적으로 주입하며(Anthropic이 자체 디스패치 로직에서 확인한 내용), 세션 중간에 MCP를 토글하면 프롬프트 캐시가 깨져서 접두사(prefix) 비용을 다시 지불해야 함.
CLI는 표준 캐시 상태에서 실행되지만, MCP는 이를 파편화함.
CLAUDE.md는 시스템 프롬프트가 아님. 시스템 프롬프트 뒤에 주입되는 사용자 메시지임. 즉, 모든 규칙은 권고 사항이지 강제 사항이 아님. 대부분의 사람들은 CLAUDE.md를 계약서처럼 작성하지만, 이는 모델이 통계적으로 따르는 제안일 뿐임. 규칙이 100% 지켜져야 한다면 훅(deterministic)에 넣어야 함.
CLAUDE.md는 강제가 아니라 확률 분포를 형성하기 위한 것임.
프로젝트 루트의 CLAUDE.md만 /compact 명령에서 살아남음. 하위 디렉토리에 있는 것들은 압축 후 사라짐. 중요한 규칙을 하위 CLAUDE.md에 넣으면 세션이 길어져서 정작 필요할 때 증발해 버림.
추론을 바꾸는 것은 지시가 아니라 의미론적 앵커링(semantic anchoring)임.
LLM은 복종하는 것이 아니라 확률 분포를 붕괴시키는 것임. 프롬프트의 모든 토큰은 추론 경로를 모델의 특정 영역으로 편향시킴.
구체적인 사전 상태("Glob/Grep/Read로 해결될 때 Task()를 호출하기 직전")를 작성하면, 결정 토큰이 샘플링되는 바로 그 지점의 영역을 형성하게 됨.
"도구를 효율적으로 사용해"라고 쓰면 미덕을 요구하는 것인데, 이는 추상적이고 주관적이라 모델이 착륙할 영역이 없음.
경험적으로: 구체적인 트리거 상태가 있는 규칙은 작동하지만, 일반적인 규칙은 그렇지 않음.
CLAUDE.md의 모든 토큰은 임대료를 지불함. 임대료 = 토큰 수 곱하기 세션 내 턴 수. 50턴 동안 8k 토큰의 CLAUDE.md는 메모리 주입만으로 400k 입력 토큰 비용이 발생함.
만약 그중 30%가 작동하지 않는 미덕 중심의 규칙이라면, 당신은 포스터에 임대료를 내고 있는 셈임.
Anthropic은 200줄 이하를 권장함. 내 것은 91줄이고, 줄일수록 더 날카로워짐.
포크(fork)와 스폰(spawn)은 생각보다 훨씬 중요함. 포크(기술적 포크)는 부모 프롬프트 캐시를 바이트 단위로 상속받아 거의 공짜임.
스폰(Task 도구)은 글로벌 캐시를 공유하지 않는 새로운 약 12k+ 토큰의 시스템 프롬프트를 가져옴. 포크나 직접 읽기로 충분한 상황에서 습관적으로 Task()를 사용하면 토큰을 낭비하는 것임.
이제 대부분의 사람들이 명확히 말하지 않는 부분.
대부분의 사람들은 Claude Code를 프롬프트를 던지는 블랙박스로 취급함.
그렇지 않음. 여기에는 문서화된 물리학이 있음. 캐시에는 메커니즘(고정 헤더 래치, 접두사 안정성, 기본적으로 지연된 MCP 도구)이 있음. 토큰에는 위치 비용이 있음(시스템 프롬프트는 캐시되고, 사용자 메시지는 재주입되며, MCP 도구는 휴면 상태일 때는 저렴하지만 로드되면 비쌈).
훅은 결정론적이고, CLAUDE.md는 권고 사항이며, 기술은 세션당 한 번 로드되고, 하위 에이전트는 포크되거나 스폰됨. 이 모든 것은 문서와 디스패처 소스에 나와 있음.
이것을 물리학으로 읽기 시작하면 세 가지가 동시에 바뀜.
CLAUDE.md에 미덕을 적는 것을 멈추게 됨. 100% 실행되어야 하는 것은 훅으로 옮기고, CLAUDE.md는 통계적 영역을 편향시키는 본연의 역할에 충실하게 둠. 임대료를 벌지 못하는 MCP는 삭제함. 그리고 모든 규칙을 이미 진행 중인 행동을 묘사하는 동명사가 아니라, 모델이 착륙할 수 있는 사전 상태로 작성하기 시작함. 이것이 내 CLAUDE.md 맨 아래에 있는 메타 규칙이며, 그 위의 모든 것을 지배함:
