왜 CLAUDE.md는 계속 자라는가: 에이전틱 코딩의 파국적 기억

읽기 판단

읽기 · confidence: medium

CLAUDE.md·AGENTS.md를 실제로 운영하며 규칙을 계속 덧붙이는 사람에게 직접적인 진단(왜 지우지 못하는가)과 즉시 시험 가능한 개입(instruction 옆에 “왜”를 주석으로 남기기)을 함께 준다. 다만 확보 범위가 섹션 추출이고 실험의 모델명·아티팩트 위치가 확인되지 않아, 수치의 견고성은 원문 Table 2와 §5 judge 절차를 직접 봐야 판정된다.

1분 요약

  • 문제: agentic README는 repo가 죽거나 누가 통째로 다시 쓸 때까지 단조 증가한다. 생애 동안 3배 이상 커지고, 커밋마다 순증한다.
  • 핵심 아이디어: 추가는 싸고 삭제는 비싸다. instruction을 넣은 이유(rationale)가 사라지면, 그것이 불필요함을 정직하게 증명하는 비용이 부분집합 탐침 수준으로 폭발한다.
  • 새로움: 이 현상을 catastrophic forgetting의 역인 catastrophic remembering으로 명명하고, IFEval·WildIFEval을 뒤집어 “최적 prompt 크기가 알려진” 평가 세계를 만들어 초과분을 관측 가능하게 만든다.
  • 가장 강한 근거: 1,867개 repo의 instruction 생존분석에서 나이가 들수록 삭제 hazard가 감소한다는 관측과, 통제 세계에서 주석 처리군이 초과 instruction을 거의 전부 없앤 결과.
  • 가장 큰 주의점: 실험 세계의 정답 cover는 2~3개 instruction으로 실제 규모보다 훨씬 작고, 실세계 효과는 LLM judge 채점이며 두 번째 judge에서는 효과 구간이 0을 포함한다.
  • 확보 범위 한계: 섹션 추출본 기준. Table의 개별 셀, Figure 내부 수치, Appendix, 실험에 쓰인 모델명은 미확인.

핵심 아이디어

기존 병목은 “메모리가 사라지는 것”이 아니라 “메모리를 지울 근거가 사라지는 것”이다. continual learning은 보존해야 할 지식이 덮어써지는 쪽을 다루지만, prompt 유지보수자는 정반대로 지워야 할 것을 계속 보존한다. 과제 분포가 정상(stationary)이어도, 회상이 불완전하면 파일은 무한히 자란다.

저자의 통찰은 삭제 비용의 구조에 있다. instruction 하나가 초과분임을 보이려면 모든 제약에 대한 기여가 0 이하임을 확인해야 하는데, 여러 instruction이 한 제약을 함께 덮는 redundancy(A3) 때문에 하나씩 빼보는 탐침은 실패한다. 각각은 무해해 보이지만 둘 다 지우면 깨진다. 정직한 검증은 최소 커버를 찾는 부분집합 탐색으로 번지고, 그래서 아무도 지우지 않는다.

작동 원리는 hazard의 분해로 정리된다. 삭제 확률은 “그 instruction의 latent reasoning을 지금 복원할 수 있을 확률”과 “실제로 초과분일 확률”의 곱이다. 앞쪽 항이 나이와 함께 0으로 가면, 추가율이 일정해도 균형 크기는 발산한다. 여기서 제안이 따라온다. 회상 확률을 자연 감쇠에 맡기지 말고 파일 안에 기록하라는 것, 즉 소프트웨어 공학이 40년 전에 쓴 “why를 주석으로” 관행을 prompt로 옮기는 것이다.

핵심 설계 장치는 주석의 운영적 정의다. 주석은 유지보수자가 읽는 prompt에는 있지만 실행 직전에 제거되므로, 성능 변화가 “지시가 늘어서”가 아니라 “삭제 판단이 좋아져서” 생긴 것으로 분리된다.

무엇을 했나

  • 필드 코퍼스: 공개 GitHub repo 1,867개(CLAUDE.md / AGENTS.md / copilot-instructions.md)의 전체 커밋 히스토리에서 247,694개 instruction 생애와 299,440건의 버전 전이를 추적.
  • 측정 단위 정의: instruction을 “clause 수준 명령문 하나”로 두고 markdown 구조 분할 후 문장 분할. heading·code block·table·2단어 미만은 payload로 빼서 위험 분석에서 제외.
  • 생존 추적: exact → normalized → 70% 유사도 fuzzy의 3단 캐스케이드로 세대 간 매칭, 미매칭 old를 death, 미매칭 new를 birth로 처리. 손 라벨 50건에서 precision 1.000 / recall 0.933.
  • hazard 추정: wholesale rewrite(한 커밋에 50% 이상 소실)와 파일 간 이전을 competing risk로 censoring하고, 남은 삭제 건에 Nelson–Aalen + piecewise-exponential Cox + gamma frailty(repo/file/문구 수준 클러스터)를 적용.
  • Inverse-IFEval: IFEval 항목의 명시 instruction을 숨겨 참조용 minimum cover로 삼고 verifier만 harness에 남긴 뒤, 새 maintainer가 T=15 / T=51 라운드에 걸쳐 censored·noisy 피드백만으로 cover를 재구성하게 함. Control / Placebo(주석 모양 노이즈) / Treatment(결과 기반 주석) 3군.
  • WildIFEval 역전: 기계 verifier가 없는 사람 산문 제약에 같은 역전을 적용해, 참 instruction 일부와 무관 항목에서 뽑은 노이즈 instruction을 섞고(주 설정 K=1, G=16, 64 worlds) arm-blind LLM judge가 제약·응답만 보고 채점, 두 번째 독립 judge로 재현 확인.

핵심 근거

주장근거 위치관찰/수치조건·주의claim_origin
agentic prompt는 상한 없이 자란다§1·§3 (필드 스터디)생애 중앙값 +226% 성장, 커밋당 순증 +4.9, 최종 버전 median 39 instruction영어·공개 GitHub repo 1,867개 한정. death의 76.8%는 통째 재작성에서 발생author-stated
나이가 들수록 삭제되지 않는다§3 결과log-hazard −0.032/commit, 95% CI [−0.047, −0.019]전체 death의 77.3%를 competing risk로 censoring한 뒤 남은 28,426건 기반. 저자는 matcher 오류가 기울기를 0쪽으로 편향시키므로 하한이라고 봄author-stated
주석이 초과 instruction을 거의 제거한다§4 Table 2T=51에서 Control +211.3%±105.3 → Treatment +1.4%±22.1(초과분 99.3% 제거), T=15에서도 Treatment −5.8%±6.6표준편차가 매우 크고, 정답 cover가 2~3 instruction 규모. 표 개별 셀은 미확인author-stated
실제 지시따르기도 개선된다§5 WildIFEval 역전제약 만족 50.4% → 62.0%(+11.6pp, 상대 23.1%), 노이즈 instruction은 정확도를 24.1pp 떨어뜨림K=1·G=16·64 worlds, arm-blind LLM judge 채점. 두 번째 judge에서는 +7.8pp, CI [−1.9, +9.6]로 0을 포함author-stated
hazard 감소가 imperfect recall 때문인가 content fragility 때문인가[위치 미확인] (§3 frailty 모형)해당 검정을 수행했다고 서술되나 판정 결과 수치는 확보 범위에 없음이론의 핵심 인과 주장을 지지하는 자리이므로 원문에서 반드시 확인 필요unknown

어디까지 믿을까

  • 저자 명시 한계(author-stated): 50% 재작성 임계값을 파이프라인 전체에 고정하고 민감도 스윕을 하지 않음. matcher 검증이 손 라벨 50 transition뿐. 통제 실험의 정답 cover가 2~3개인데 실제 median은 39개. WildIFEval 채점이 ground truth가 아니라 LLM judge. 범위가 영어·공개 GitHub에 한정. 다저자 분석은 사전등록 없는 탐색적 분석. 벤치마크에 초과분을 “심는 것”은 실제 파일에서 초과분이 “자라나는 것”과 다르며, 배포 시 삭제에는 사람 감독이 필요하다고 스스로 적음.
  • 분석자 판단(analyst-inference): (a) Inverse-IFEval에서 한 모델이 maintainer와 executor를 겸했다고만 적혀 있어, 자기 산출물을 자기가 평가하는 구조에서 오는 낙관 편향을 배제하기 어렵다. (b) 논문 전체에 구체 모델명이 없어 결과가 특정 모델 세대에 얼마나 묶여 있는지 독자가 판정할 수 없다. (c) 실세계 효과는 judge 교체만으로 신뢰구간이 0을 걸치므로 “최대 23.1%“는 상한으로 읽는 편이 안전하다. (d) 통제 세계의 제거율은 cover 2~3개일 때의 값이라 39개 규모로 외삽하기 어렵다.
  • 미확인(unknown): Table·Figure 내부 셀과 Appendix 전체, frailty 검정 결과, T=15/51 외 horizon, ablation의 정확한 조건, Appendix E가 언급하는 재현용 아티팩트의 실제 저장소 URL·공개 여부.

원문 읽기 지도

우선순위먼저 볼 곳확인할 질문왜 중요한가
1§4 Table 2(Inverse-IFEval 전체 셀)Control/Placebo/Treatment의 분산이 겹치는가, world 수와 seed 수는 몇인가대표 수치가 큰 표준편차를 동반하므로, 효과가 분산 안에 묻히는지가 결론을 좌우
2§2 Table 1(A1–A5)과 회수가능성 식다섯 property 중 어느 것이 실제 repo 데이터로 검증되고 어느 것이 가정인가무한 성장 결론이 ρ̄(a)→0 가정에 걸려 있어 이 가정의 지위가 이론의 강도를 결정
3§5 judge 프로토콜과 2차 judge 재현두 judge의 3.8pp 차이를 저자가 어떻게 설명하는가, K·G 스윕이 있는가실세계 개선 주장을 채택할지가 여기서 갈림
4§4 ablation(Placebo·서사형 주석·outcome-count 제거)효과의 활성 성분이 정말 “결과 카운트”인가자신의 CLAUDE.md에 무엇을 적어야 하는지를 직접 정해주는 부분

읽기 전 용어

  • catastrophic remembering: 지워야 할 지시가 계속 보존되어 prompt가 발산하는 현상. 지식이 덮어써지는 catastrophic forgetting의 역으로 저자가 명명.
  • competing-risk censoring: 개별 삭제가 아니라 파일 통째 재작성·파일 간 이전으로 사라진 instruction을 “삭제”로 세지 않고 관측 중단 처리하는 생존분석 기법. 이 논문에서 death의 대부분이 여기에 해당.
  • prompt comment: 유지보수자가 읽는 prompt에는 남지만 실행 직전 제거되는 주석. 그래서 성능 변화가 지시 추가 효과가 아니라 삭제 판단 개선 효과로 분리된다.

Wiki 연결

BibTeX

@article{chakrabarti2026claudemd,
  title   = {Why Does CLAUDE.md Keep Growing? Catastrophic Remembering in Agentic Coding},
  author  = {Chakrabarti, Kushal},
  journal = {arXiv preprint arXiv:2608.11095},
  year    = {2026},
  doi     = {10.48550/arXiv.2608.11095},
  url     = {https://arxiv.org/abs/2608.11095}
}