Your Claude Code Setup Gets Bloated If You Ignore It — Weekly Auto-Slimming by Watching Injected Bytes, Agent Count, and Frustration Words

개요

Claude Code 환경의 성능 저하 및 비효율성 문제를 해결하기 위해, 일주일에 한 번씩 시스템 상태를 자체 감사하고 claude -p를 통해 자가 수정하는 자동화 시스템인 cc-self-audit.sh 스크립트가 개발되었습니다.

주요 내용

  • 환경 부패 (Environment Decay) 문제: Claude Code 설정은 시간이 지남에 따라 규칙, 에이전트, 훅 등에서 비효율성이 누적되어 성능 저하를 유발합니다. 이는 "느려지는 느낌"이나 "동일한 실수 반복"과 같은 현상으로 나타나며, 원인 파악에 많은 시간을 소모하게 합니다.
  • 자동 감사 시스템 cc-self-audit.sh: 이 스크립트는 5가지 지표를 측정하여 환경 부패를 감지하고, 임계값을 초과할 경우 claude -p를 호출하여 자체적으로 수정합니다.
  • 측정 지표:
  • 정적 지표 (Static Metrics):
  • inject_bytes: 규칙 파일(.md) 및 CLAUDE.md, MEMORY.md 파일의 총 바이트 크기. (임계값: 40,000)
  • agents_loaded: ~/.claude/agents/ 디렉토리 하위의 .md 파일 개수 (도트 디렉토리 포함 재귀적 탐색). (임계값: 60)
  • 동적 지표 (Dynamic Metrics):
  • stopspam: 감사 훅이 일주일에 실행된 횟수. (임계값: 15)
  • frustration: 트랜스크립트 내 불만족 단어(예: "何回も言", "いい加減にし") 발생 횟수. (임계값: 8)
  • toolerr: 트랜스크립트 내 "is_error":true 발생 횟수. (임계값: 400)
  • 자가 수정 프로세스:
  • 모든 지표가 임계값 이하일 경우 Discord에 "✅ GREEN"을 알립니다.
  • 하나라도 임계값을 초과하면 claude -p를 호출하여 수정합니다.
  • 수정 프롬프트는 ~/.claude 내에서만 작업하도록 제한하며, 각 부패 패턴에 대한 수정 정책을 포함합니다. (예: agents_loaded 초과 시 .deprecated와 같은 도트 디렉토리 에이전트를 agents-archive/로 이동)
  • 수정 기록은 ${CHANGELOG}에 "날짜/대상/이유/복구 방법" 형식으로 저장됩니다.
  • 실행 및 확인:
  • 수정 후에는 외부 독립적인 collect() 함수를 다시 호출하여 개선 정도를 수치로 확인합니다. (자기 보고식 "수정 완료"는 신뢰하지 않음)
  • 수정 후에도 위반 사항이 남아있으면 Discord에 "🚨" 알림과 함께 사용자에게 전달합니다.
  • 모든 측정값은 ~/.claude/self-audit/history.jsonl에 기록되며, 추세 파악을 위해 최근 5개 항목이 프롬프트에 포함됩니다.
  • 실행 방식: launchd를 통해 매주 일요일 오전 8:30에 자동 실행됩니다. 수동 실행은 --collect-only (측정만) 또는 SELF_AUDIT_DRY=1 (위반 표시만) 옵션을 사용합니다.
  • 잠재적 문제점 (Pitfalls): 도트 디렉토리의 포함, 트랜스크립트 검색 속도, 일본어 문자셋 문제, launchd의 기본 PATH 설정 등이 있었습니다.
  • 스크립트 안정성: 스크립트 자체는 fail-open 방식으로 설계되어, 감사 실패 시 시스템이 중단되지 않도록 합니다.

시사점

Claude Code 환경의 지속적인 성능 유지 및 관리 자동화를 통해 개발자는 환경 부패로 인한 문제 해결 시간을 줄이고, 전반적인 시스템의 안정성과 효율성을 향상시킬 수 있습니다. 이 시스템은 "fail-closed" 원칙을 통해 의존 시스템의 오류를 감지하고 인간의 개입을 통해 문제를 해결하는 강력한 자동화 루프를 구축합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions