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개를 추가하는 것이 이전만큼 가볍게 느껴지지는 않는다. 몇 개는 조만간 삭제할 것 같다. 어떤 것을 삭제할지는 아직 정하지 않았다.