최근 git 커밋 메시지에 HERMES.md 문자열이 들어가면 Claude Code 요청이 Max 플랜 쿼터 대신 extra usage 과금 경로로 보내짐
이 트리거는 디스크의 파일 존재와 무관하고 커밋 메시지 내용 자체에서 발생하며, add HERMES.md는 실패하지만 add hermes.md는 정상 처리됨
재현 테스트에서는 claude-opus-4-6[1m]와 claude-opus-4-7 에서 API Error: 400 "You're out of extra usage..."가 확인됐고, HERMES, HERMES.txt, README.md 등은 같은 현상을 만들지 않음
영향을 받은 환경에서는 주간 플랜 용량이 남아 있는데도 $200.98 extra usage 크레딧이 소진됐고, extra usage가 바닥난 뒤에는 여러 프로젝트가 사용 불가 상태가 됨
원인은 과도하게 동작한 anti-abuse system으로 확인돼 이미 수정됐고, 이후 이슈는 completed로 닫히면서 환불과 추가 usage credits 지급 공지도 이어짐
문제 개요
최근 git 커밋 기록에 HERMES.md 문자열이 들어가면 Claude Code 요청이 Max 플랜 쿼터 대신 extra usage 과금 경로로 라우팅됨
디스크에 HERMES.md 파일이 있는지와는 무관하고, git commit message 내용 자체가 트리거로 작동함
Claude Code가 최근 커밋을 system prompt에 포함하는 상태에서, 이 문자열이 있을 때 서버 측 라우팅이 달라지는 것으로 좁혀짐
포함된 Max 20x 플랜 주간 사용량이 13% 수준으로 쓰인 상태인데도 extra usage 크레딧 $200.98이 소진됐고, extra usage가 고갈된 뒤에는 여러 프로젝트를 완전히 사용할 수 없게 됨
같은 시점에 플랜 대시보드에는 주간 용량이 86% 이상 남아 있음으로 표시돼, 실제 과금 경로와 표시 상태가 어긋남
재현 조건과 판별 결과
재현 환경은 Claude Code v2.1.119, macOS Apple Silicon, Max 20x plan $200/month, 모델 claude-opus-4-6[1m]이며 claude-opus-4-7에서도 재현됨
최소 재현 절차에서는 git commit -m "add HERMES.md" 뒤 claude -p "say hello" --model "claude-opus-4-6[1m]" 실행 시 API Error: 400 "You're out of extra usage..."가 반환됨
같은 절차에서 커밋 메시지를 add hermes.md로 바꾸면 플랜 쿼터 경로로 처리되며 "Hello!"가 반환됨
재현 스크립트는 /tmp/test-fail, /tmp/test-pass 디렉터리를 만든 뒤 git init, 파일 추가, 커밋, claude -p 실행, 마지막에 rm -rf로 정리하는 흐름으로 제시됨
트리거 판별 결과는 "HERMES.md"와 "test HERMES.md test"에서 실패하고, "hermes.md", "HERMES", "HERMES.txt", "AGENTS.md", "README.md"는 정상 동작함
디스크에 HERMES.md 파일이 있어도 커밋 메시지가 깨끗하면 정상 동작하고, 같은 저장소라도 orphan branch로 히스토리가 없으면 정상 동작함
원인 추적과 기대 동작
원인 추적은 영향을 받은 저장소 복제, orphan branch 테스트, 개별 커밋 메시지 문자열을 하나씩 분리하는 systematic binary search 순서로 진행돼 최종적으로 HERMES.md가 정확한 트리거로 좁혀짐
API 요청 과금이 system prompt 안의 git commit message 내용에 의존하면 안 되며, Max 플랜 구독자 요청은 우선 포함 플랜 쿼터로 라우팅돼야 함
에러 메시지 out of extra usage에는 콘텐츠 기반 라우팅이 원인이라는 단서가 없어 진단이 매우 어려워짐
최근 git 커밋에 HERMES.md가 들어간 사용자는 사용량이 조용히 extra credits로 과금될 수 있는 상태였음
처리 경과와 최종 상태
협업자는 이 문제가 과도하게 동작한 anti-abuse system 때문이었고 이미 수정 완료됐다고 답변함