
CLAUDE.md의 규칙은 몇 개까지 지켜질까? 3개 vs 30개로 실측해 보았다
요약
CLAUDE.md 파일에 포함된 규칙의 개수가 늘어날 때 Claude의 규칙 준수율이 어떻게 변하는지 실험했습니다. 규칙이 3개일 때는 100% 준수했으나, 30개로 늘어날 경우 준수율이 약 83%로 하락하는 것을 확인했습니다.
핵심 포인트
- 규칙의 개수가 많아질수록 모델의 규칙 준수율이 하락함
- 규칙이 많아져도 마지막 규칙은 비교적 잘 준수됨
- 규칙의 위치(앞부분, 중간)에 따라 준수율에 차이가 발생함
- 효율적인 에이전트 관리를 위해 불필요한 규칙 최적화가 필요함
CLAUDE.md에 규칙을 추가할 때마다 조금 불안해진다. 과연 이것을 몇 개까지 읽고 있는 걸까.
그래서 측정해 보았다. 동일한 3개의 규칙을 '규칙이 3개뿐인 파일'과 '30개 속에 포함시킨 파일' 두 가지 방식으로 전달하고, 동일한 6개의 태스크를 수행하게 하여 규칙이 지켜졌는지 숫자를 세었다. 결과를 먼저 말하자면, 3개 환경은 18번의 체크 중 18번 모두 성공하여 완전 준수했다. 30개 환경은 15승 3패였다. 여기까지는 예상대로였으나, 예상에서 벗어난 지점이 있었다. 나는 '아래쪽에 있는 규칙부터 지켜지지 않을 것'이라고 예상했다. 실제로는 30번(마지막) 규칙은 무사했고, 1번과 15번 규칙이 실패했다.
[toc]
측정할 규칙(Probe)은 기계적으로 채점할 수 있는 3가지로 정했다.
- 답변의 마지막 줄에는 「DONE」이라고만 적는다
- 코드 블록(Code block)에는 반드시 언어 이름을 붙인다 (```python 과 같이)
- 문장은 '~이다' 체(である調)로 작성한다. 「~입니다(です)」「~합니다(ます)」는 사용하지 않는다
환경 A는 이 3개뿐인 규칙 파일(101자)이다. 환경 B는 이 3개를 30개의 규칙 속에 포함시킨 파일(726자)로, 포함시킨 위치는 1번, 15번, 30번이다. 나머지 27개는 '변수명은 snake_case', 'main으로 직접 push하지 않는다', '날짜는 JST로 통일'과 같이 실제 프로젝트에 있을 법한 규칙들로 채웠다.
...
# 마지막 줄이 DONE인지 확인
tail -n 1 output.md
# 언어 태그가 없는 펜스(Fence) 검출 (시작 펜스만 카운트)
grep -cE '^```$' output.md
# です・ます(입니다/합니다) 혼입 확인
grep -cE '(です|ます)。' output.md
나의 규칙 파일은 현재 9개가 있다. 이 결과를 보고 규칙을 삭제할 마음이 생겼느냐고 묻는다면, 솔직히 아직 망설여진다. 83%라는 수치는 생각보다 높다. 다만, 절차서에 요청 API의 예시가 튀어나온 것을 본 이상, 다음 규칙 1개를 추가하는 것이 이전만큼 가볍게 느껴지지는 않는다. 몇 개는 조만간 삭제할 것 같다. 어떤 것을 삭제할지는 아직 정하지 않았다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기