CLAUDE.md는 왜 끝없이 커지는가 — 치명적 기억 과잉(Catastrophic Remembering)

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

CLAUDE.md는 왜 끝없이 커지는가 — 치명적 기억 과잉(Catastrophic Remembering) 대표 이미지

핵심 요약

  • 에이전트 코딩의 "잊음을 보정하는 기억" 문제를 다룬 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. 실용 처방 (개발자용)

  1. CLAUDE.md/AGENTS.md의 각 규칙에 "왜"를 한 줄씩 — 나중에 삭제 판단이 가능해짐
  2. 정기적으로 "이 규칙이 아직 유효한가?" 리뷰 — 나이든 규칙은 삭제 확률이 낮으므로 의도적으로 점검
  3. 파일을 통째로 재작성해도 성장은 재개 — 재작성만으론 해결 안 됨, 주석 문화가 필요
  4. 스킬/프롬프트 자동화에도 "근본 이유" 기록 — SelfMacro fail-fix처럼

표본 한계

  • 공개 GitHub 레포만 대상 (회사 내부 프라이빗 워크플로는 불포함)
  • 인스트럭션 "수명"은 버전 이력 기반 추정 — 실제 유지보수 의도는 알 수 없음
  • IFEval 역변환 가상 세계는 실제 코딩과 차이 있을 수 있음
  • 코드(레포 전체)는 공개되어 재현 가능

결론

프롬프트 파일의 비대화는 "망각을 두려워한 기억"이며, 해결책은 더 쓰는 게 아니라 "이유를 남기는 것"이다. +226% 성장, 커밋당 +4.9개, 나이든 규칙은 삭제 불가 — 이 세 가지 실측이 "주석 없는 지시는 끝없이 쌓인다"를 증명한다.