---
title: "클로드 코드, 커밋 메시지의 'HERMES.md' 때문에 요금제가 엉뚱하게 빠진다는 이슈"
published: 2026-04-29T18:54:31.000Z
canonical: https://jeff.news/article/1962
---
# 클로드 코드, 커밋 메시지의 'HERMES.md' 때문에 요금제가 엉뚱하게 빠진다는 이슈

클로드 코드 사용자가 최근 깃 커밋 메시지에 대소문자까지 정확히 맞는 'HERMES.md' 문자열이 있으면, 맥스 요금제 기본 사용량이 아니라 추가 사용량 과금으로 라우팅된다고 보고했어. 실제로 월 200달러짜리 맥스 20배 요금제의 주간 사용량은 13퍼센트 수준이었는데, 추가 사용량 크레딧 200.98달러가 조용히 소진됐다고 함.

- 클로드 코드에서 꽤 이상한 과금 버그가 제보됐음. 최근 깃 커밋 메시지에 `HERMES.md`라는 문자열이 있으면 요청이 맥스 요금제 기본 사용량이 아니라 '추가 사용량' 쪽으로 빠진다는 내용임
  - 제보 환경은 클로드 코드 2.1.119, 애플 실리콘 맥, 월 200달러짜리 맥스 20배 요금제
  - 모델은 `claude-opus-4-6`에서 재현됐고, `claude-opus-4-7`에서도 같은 현상이 나온다고 함

- 핵심은 파일명이 아니라 커밋 메시지임. 저장소에 실제 `HERMES.md` 파일이 없어도, 최근 커밋 히스토리에 그 문자열이 있으면 트리거된다는 주장임
  - `HERMES.md` 또는 `test HERMES.md test`는 실패
  - `hermes.md`, `HERMES`, `HERMES.txt`, `AGENTS.md`, `README.md`는 정상
  - 같은 저장소라도 히스토리가 없는 고아 브랜치에서는 정상

> [!IMPORTANT]
> 제보자는 맥스 20배 플랜의 주간 사용량이 13퍼센트 정도만 쓰인 상태였는데도, 추가 사용량 크레딧 200.98달러가 소진됐다고 함. 과금 버그가 맞다면 꽤 아픈 종류의 버그임.

- 추정 원인은 클로드 코드가 최근 커밋 내용을 시스템 프롬프트에 넣고, 서버 쪽 어딘가에서 이 문자열을 보고 요청 라우팅을 다르게 처리한다는 것임
  - 사용자는 '프로젝트 파일이 없어도 재현된다'고 강조함
  - 즉 코드 내용이나 설정 파일이 아니라, 깃 히스토리의 텍스트가 모델 요청의 과금 경로에 영향을 준다는 얘기임

- 더 골치 아픈 부분은 에러 메시지가 원인을 전혀 알려주지 않는다는 점임
  - 추가 사용량이 바닥나면 '추가 사용량 부족'류의 메시지만 보이고, 왜 기본 플랜 할당량을 안 쓰는지는 드러나지 않음
  - 대시보드에는 주간 사용량이 86퍼센트 이상 남아 있는 것처럼 보였다고 함
  - 그래서 여러 프로젝트가 갑자기 못 쓰는 상태가 됐고, 사용자는 커밋 메시지까지 의심해야 했음

- 개발자 입장에서는 이 이슈가 사실인지와 별개로, 코딩 에이전트의 컨텍스트 수집 범위를 다시 생각하게 만듦
  - 최근 커밋 메시지, 브랜치명, 파일명 같은 '주변 텍스트'도 모델 요청의 일부가 될 수 있음
  - 그러면 프롬프트 인젝션뿐 아니라 과금, 정책, 라우팅 같은 비즈니스 로직에도 영향을 줄 가능성이 생김

---

## 기술 맥락

- 여기서 중요한 건 `HERMES.md`가 코드 파일이 아니라 커밋 메시지에 있었다는 점이에요. 코딩 에이전트는 저장소 상태를 이해하려고 최근 커밋 로그까지 모델 컨텍스트에 넣을 수 있거든요. 그래서 사용자가 직접 입력하지 않은 텍스트도 요청의 일부가 돼요.

- 과금 라우팅은 보통 사용자의 플랜, 모델, 조직 설정 같은 명시적 메타데이터로 결정돼야 해요. 그런데 본문 주장처럼 프롬프트 안 문자열이 라우팅에 영향을 줬다면, 데이터 평면의 텍스트가 과금 제어 평면을 건드린 셈이라 경계가 흐려져요.

- 재현 표에서 대소문자와 확장자가 정확히 맞아야 한다는 점도 흥미로워요. `hermes.md`나 `HERMES.txt`는 괜찮고 `HERMES.md`만 문제라면, 일반적인 의미 분석보다 특정 문자열 매칭이나 내부 플래그 처리 가능성을 의심하게 되거든요.

- 팀에서 비슷한 코딩 에이전트를 쓴다면 커밋 메시지, 브랜치명, 이슈 제목이 도구 컨텍스트에 들어가는지 확인해보는 게 좋아요. 이런 값들은 원래 사람이 읽는 히스토리지만, 에이전트 환경에서는 모델과 서버 로직이 함께 소비하는 입력이 되기 때문이에요.

## 핵심 포인트

- 트리거는 파일 존재가 아니라 최근 깃 커밋 메시지 안의 특정 문자열임
- 문자열이 시스템 프롬프트에 포함되면서 서버 쪽 과금 라우팅이 달라지는 것으로 추정됨
- 소문자, 확장자 없는 문자열, 다른 파일명은 재현되지 않았고 대소문자를 맞춘 특정 문자열만 실패함
- 추가 사용량이 바닥나면 프로젝트가 막히지만 대시보드에는 기본 플랜 사용량이 남아 있어 원인 파악이 어려움

## 인사이트

코딩 에이전트가 저장소 히스토리까지 프롬프트에 넣는 시대라서, 이제 '커밋 메시지는 그냥 메타데이터'라고 보기 어려워졌어. 이게 사실이라면 기능 버그를 넘어 과금 경계가 입력 텍스트에 흔들린다는 꽤 찝찝한 문제임.
