Column
CLAUDE.md는 왜 끝없이 커지는가 — 치명적 기억 과잉(Catastrophic Remembering)
에이전트 코딩에서 프롬프트 파일이 무한정 커지는 문제를 1,867개 레포의 24.7만 인스트럭션 수명으로 실측. +226% 성장, 커밋당 +4.9개, 나이든 규칙은 삭제 불가 — 해결책은 "이유를 남기는 주석".

핵심 요약
- 에이전트 코딩의 "잊음을 보정하는 기억" 문제를 다룬 arXiv 논문 (2608.11095, 2026-08-11)
- CLAUDE.md / AGENTS.md 같은 프롬프트 파일이 왜 끝없이 커지는지 실측 규명: 성장·재작성·재성장의 "래칫(ratchet)" 메커니즘
- 실측: 1,867개 레포의 247,694개 인스트럭션 수명 분석 → 평균 +226% 성장, 커밋마다 +4.9개 순증가, 나이 들수록 삭제 확률 급감 (log-hazard -0.032/commit)
- 해결책: 인스트럭션에 "이유를 남기는 주석"을 달면 성장이 멈추고, 실제 프롬프트에서 최대 23.1% (11.6pp) 인스트럭션 준수율 개선
1. 문제: 프롬프트 파일은 왜 계속 커지는가
에이전트 코딩에서 CLAUDE.md, AGENTS.md 같은 지시 파일은 나중에 필요할 규칙을 보존하기 위해 계속 추가됩니다. 문제는 삭제하는 일이 거의 없다는 것.
논문은 이 현상을 "catastrophic remembering"(치명적 기억 과잉) 으로 명명한다 — 지속학습(continual learning)의 "catastrophic forgetting"(치명적 망각)의 반대다. 망각은 모델이 옛 지식을 잊는 문제라면, 에이전트 프롬프트는 옛 지시를 잊지 않으려다 비대해진다.
2. 실측: 래칫(ratchet) 메커니즘
논문은 1,867개 공개 레포의 247,694개 인스트럭션 수명을 추적했다.
| 지표 | 실측값 |
|---|---|
| 평균 수명 중 성장 | +226% (3배 이상) |
| 커밋당 순증가 | +4.9개 인스트럭션 |
| 나이 따른 삭제 확률 | log-hazard -0.032/commit (오래될수록 삭제 안 됨) |
| 중앙값 파일의 인스트럭션 수 | 39개 |
핵심 발견 1: 대부분의 "사라짐"은 삭제가 아니다. 논문은 인스트럭션 감소가 실제로 삭제인지, 다른 형태(재작성·병합)인지 cross-version 매칭으로 검증했다. 결과적으로 진짜 삭제는 드물고, 대부분은 파일 전체를 한 번에 재작성(wholesale rewrite)할 때 사라지는 것으로 확인됐다.
핵심 발견 2: 삭제는 나이가 들수록 어려워진다. 나중에 "이 규칙이 왜 있는지" 이유를 모르면 삭제를 망설이게 된다. 인스트럭션이 오래될수록 삭제 확률이 낮아지는 이유다.
핵심 발견 3: 재작성 직후에도 성장은 즉시 재개된다. 래칫이 풀려도 래칫이 다시 걸린다 — 파일을 줄여도 같은 패턴으로 다시 커진다.
3. 해결: "이유를 남기는 주석"
논문의 처방은 간단하다. 각 인스트럭션 옆에 왜 그걸 추가했는지 주석을 달아라.
- 쓰는 순간의 "잠재 추론"(latent reasoning)은 무료이지만, 나중에 다시 구성하면 지수적으로 비싸다
- 주석이 그 이유를 보존하면, 나중에 "이 규칙 유지/삭제" 판단이 가능해져 성장이 멈춘다
역-IFEval 테스트베드: 논문은 IFEval(인스트럭션 준수 평가)을 뒤집어 "최소 커버(모든 요구를 다루는 최소 지시 집합)"를 관찰 가능하게 만든 가상 세계에서 실험했다.
실측 효과:
| 시나리오 | 인스트럭션 준수율 |
|---|---|
| 잡음 인스트럭션 누적 (무주석) | 저하 |
| 이유 주석 포함 | 최대 +23.1% (11.6pp) 개선 |
중요한 건 주석 페이로드를 제거하는 ablation — 주석 내용이 "결과에 근거한 잠재 추론"을 담을 때만 효과가 있고, 단순 장식 주석은 효과가 없다는 것까지 검증했다.
4. 우리 상황과 연결 (SelfMacro)
이 논문은 우리가 만든 SelfMacro / SkillZip과 정확히 겹친다:
| 논문 주장 | 우리 구현 |
|---|---|
| 지시가 끝없이 누적 → 비대화 | SkillZip "스킬은 쌓기만 하면 부채" |
| "이유를 남겨야 삭제 가능" | SelfMacro fail-fix: 근본 원인 기록 |
| 주석으로 성장 억제 | fail-fix의 "Lesson: 다음엔 이렇게" |
실제로 우리가 만든 incremental-implementation/SKILL.md에 같은 실패 패치가 10번 반복 붙는 버그가 있었는데, 이 논문이 설명하는 "이유 없는 누적 → 삭제 불가"의 실제 사례다.
5. 실용 처방 (개발자용)
- CLAUDE.md/AGENTS.md의 각 규칙에 "왜"를 한 줄씩 — 나중에 삭제 판단이 가능해짐
- 정기적으로 "이 규칙이 아직 유효한가?" 리뷰 — 나이든 규칙은 삭제 확률이 낮으므로 의도적으로 점검
- 파일을 통째로 재작성해도 성장은 재개 — 재작성만으론 해결 안 됨, 주석 문화가 필요
- 스킬/프롬프트 자동화에도 "근본 이유" 기록 — SelfMacro fail-fix처럼
표본 한계
- 공개 GitHub 레포만 대상 (회사 내부 프라이빗 워크플로는 불포함)
- 인스트럭션 "수명"은 버전 이력 기반 추정 — 실제 유지보수 의도는 알 수 없음
- IFEval 역변환 가상 세계는 실제 코딩과 차이 있을 수 있음
- 코드(레포 전체)는 공개되어 재현 가능
결론
프롬프트 파일의 비대화는 "망각을 두려워한 기억"이며, 해결책은 더 쓰는 게 아니라 "이유를 남기는 것"이다. +226% 성장, 커밋당 +4.9개, 나이든 규칙은 삭제 불가 — 이 세 가지 실측이 "주석 없는 지시는 끝없이 쌓인다"를 증명한다.