PaPoo
cover

user.email=audit@example.invalid が絡む Claude Code の security-guidance で起きる2つの不具合

この症状クラスタは、user.email=audit@example.invalid そのものが原因というより、security-guidance が Git の差分を読むところで崩れる2件の不具合として見るのが近いです。報告されているのは #101547 と #101548 です。どちらも open のままで、少なくとも提示された issue 文面の時点では解決済みではありません。

最初に切り分けたいのは、差分に「変わったファイル名」が入っているか、それとも「ファイルの中身に diff --git という文字列が入っているか」です。今回の2件はそこが分岐点です。

#101547 では、Git の diff ヘッダーが quoted path になると source file を silently に落とすと報告されています。issue の要約には、core.quotePath=true の既定環境で café.py のようなファイル名が quoted header になり、parser がそれを認識できないとあります。つまり、ファイル名に非 ASCII が混ざるケースで、security-guidance の対象から外れる可能性があります。

#101548 は別の壊れ方です。parse_diff_into_files が diff 全体を diff --git で分割していて、その文字列がソース行の中に出てくると、そこで diff 自体を途中で切ってしまうと報告されています。こちらはファイル名ではなく、ソースコード中の文字列によって発生します。普通の string literal でも起こりうる、と issue に書かれています。

代表 issue のコメントでは、両方を手元で再現できたという報告があり、対象は official main 3deb873687379f0c199a69fdaccc65f0865f7a29、macOS、Python 3.11.15、実際の一時 Git リポジトリだとされています。さらに、修正案としては「実際の行頭の file header でだけ分割し、Git の C-quoted UTF-8 bytes の destination path decoding を共有する」と説明されています。ただし、これはコメント中の提案であって、この記事で確認できているのは issue 文面とコメント文面までです。

筆者の環境で得られている実測値は、OS と Python の情報だけです。

[env_summary]
OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-10-14T08:51:40+09:00

このため、少なくとも筆者環境では Python 3.8.13 の Linux 上で確認作業を進めていることまでは言えますが、実際に issue の再現確認まではここからは断定できません。分からない部分は分からないままにしておきます。

自分のケースかどうかを見分けるなら、まず次の2点だけ見れば足ります。ひとつは、変更対象に café.py のような quoted path になりそうなファイル名があるかどうか。もうひとつは、差分に diff --git という文字列がソース本文として入っていないかどうかです。前者なら #101547、後者なら #101548 の可能性が高いです。

現時点で確認できる範囲では、どちらも「security-guidance が差分を正しく読めず、レビュー対象を取りこぼす」不具合です。CLI の設定変更や回避策について、issue 文面から裏が取れていないものは書けません。少なくとも今ある情報だけで言えるのは、対象ファイル名と差分中の文字列を点検すること、そして open の2件を追うことです。


検証環境

OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-10-14T08:51:40+09:00

参照した Issue(anthropics/claude-code): #101547, #101548

同じ著者の記事