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