コミットメッセージの文字列が課金トリガーに

Claude Codeを日常的に使用しているエンジニアのsasha-id氏が、極めて奇妙なバグを報告した。内容は単純かつ深刻だ。Gitのコミットメッセージに「HERMES.md」という文字列を含めるだけで、Claude Codeの追加課金が発生するというものである。コードの変更量や実際のAI処理の有無とは無関係に、この特定の文字列がトリガーとなって課金イベントが発火する。通常の使用では考えられない動作だ。

Gigazineが報じているこのバグは、Claude Codeの内部処理においてコミットメッセージを何らかの形でスキャン・解析するフローが存在し、「HERMES.md」という文字列に対して誤ったマッチングまたはトリガー条件が設定されている可能性を示唆している。HERMESはAnthropicの内部プロジェクト名またはシステム識別子である可能性があると推測されるが、現時点でAnthropicから公式な説明は出ていない。

再現条件と影響範囲

報告によれば、再現条件は非常にシンプルである。Claude Codeを使用した状態でGitリポジトリに対してコミット操作を行い、そのコミットメッセージに「HERMES.md」という文字列を含めるだけだ。追加のコード変更や特殊なAPI呼び出しは不要。文字列の存在そのものが課金イベントを引き起こす。

この挙動が問題なのは、課金がユーザーの意図しないタイミングで発生する点だ。開発者がドキュメントファイル名として「HERMES.md」を参照するケースは十分に考えられる。神話上の神の名前を冠したファイル名はプロジェクトでしばしば使われる。意図せず課金が積み上がるリスクは無視できない。影響を受けるユーザーの件数は現時点で不明だが、Claude Codeの利用者が多い開発チームほどリスクは高まる。

また、この種のバグは「文字列依存の課金トリガー」という性質上、悪意ある第三者がコミットメッセージを操作することで、他者のClaude Codeアカウントに意図的に課金を発生させる攻撃ベクターになり得る可能性がある。Pull Requestのレビュー時やCIパイプライン上でClaude Codeが動作している環境では特に注意が必要だ。

技術的背景と推測される原因

Claude Codeはターミナル上で動作するAIコーディングエージェントであり、Gitの操作にも深く統合されている。コミットメッセージの生成支援やコードレビューなど、Gitワークフロー全体をコンテキストとして取り込む設計だ。この統合の深さが今回のバグの温床になったと推測される。

「HERMES」という名称はAnthropicの内部システム、たとえばモデルオーケストレーション層・エージェントフレームワーク・あるいは課金管理モジュールのコードネームである可能性がある。コミットメッセージ内のこの文字列が内部的なコマンドまたは設定ファイル参照として誤認識され、特定のサブエージェントや処理フローを起動するトリガーとなっている可能性がある。これはあくまで技術的推測であり、Anthropicの公式説明が出るまで断定はできない。

課金ロジックの観点では、Claude Codeはトークン消費量・ツール呼び出し回数・エージェントステップ数などを基準に課金を行う。「HERMES.md」という文字列が何らかのツール呼び出しまたはエージェントステップを不正に発火させているとすれば、課金発生のメカニズムとして整合する。ログレベルでの検証が急務だ。

結論:課金バグは即時対応が必要、ユーザーはコミットメッセージを一時的に回避すべき

このバグの本質は「特定文字列による意図しない課金発生」であり、ユーザーの制御外で金銭的損害が生じる点で深刻度は高い。Anthropicはバグの存在を認識・修正するまでの間、影響を受けた課金の返金対応を含む公式声明を早急に出すべきである。

現時点でClaude Codeを使用している開発者への推奨事項は明確だ。コミットメッセージに「HERMES.md」という文字列を含めることを一時的に避けること。また、課金ダッシュボードを定期的に確認し、不審な課金イベントが発生していないかをms単位ではなくとも日次でモニタリングすること。APIログに異常なツール呼び出しが記録されていないかも確認すべきだ。

Anthropicがこの種の課金バグに対してどれだけ迅速に対応するかは、Claude Codeの信頼性評価に直結する。コーディングエージェント市場はGitHub Copilot・Cursor・Devinとの競争が激化している。課金の透明性と安定性はプロダクト選定の核心的要素だ。数字とログだけが真実であり、今この瞬間もユーザーのウォレットに影響が出ている可能性がある。Anthropicの公式対応を待つ。