世界を動かす技術を、日本語で。

コミットメッセージとPRの説明にデフォルトで追加されるClaudeセッションURL

2026年8月30日原文(github.com)

概要

Claude Codeが自動でセッションURLをコミットメッセージやPR説明文に追加する問題。 ユーザーへの事前通知や選択肢がなく、履歴が意図せず汚染される懸念。 理想はオプトイン方式での明示的な許可取得。 既存の抑止策は非直感的で発見しづらい。 より良いユーザー体験と履歴管理のための改善提案。

Claude Codeコミットメッセージ自動URL挿入問題とその解決案

  • Claude Code によるコミットメッセージ・PR説明文への セッションURL自動挿入問題
    • 例: https://claude.ai/code/session_... のリンク自動付与
  • ユーザーへの事前通知や同意取得が一切ない 現状
    • オンボーディング時の説明やオプトイン選択肢が未提供
    • 実際に履歴へ追加されて初めて気づくケース多数
  • 開発現場での実害
    • 履歴の汚染、コードレビュー時の 不自然な情報混入
    • チームやOSS貢献時に 不適切・非プロフェッショナルな印象 を与える恐れ
  • 既存の抑止策
    • .claude/settings.json内のattribution.commit: ""記述による抑制
    • commit-msg gitフックによる除去(ただしリモート/クラウド環境での信頼性低)
    • いずれも 発見性・ユーザビリティが低い

理想的な解決策の提案

  • オプトイン方式の導入
    • 初回利用時に「コミットメッセージにClaudeセッションへのリンクを含めますか?」と 明示的に確認
    • ユーザーの 明確な意思表示 がない限り自動挿入しない
  • オプトアウト方式の改善
    • 初回コミット時に「今後このリンクを追加しない」等の 分かりやすい選択肢表示
    • 設定変更の 導線明示
  • 完全削除案
    • URL挿入自体を廃止し、既存のCo-Authored-By: Claudeトレーラーのみに帰属情報を集約

優先度・カテゴリ・ユースケース例

  • 優先度: Medium(開発体験・履歴管理の観点から有用)
  • カテゴリ: その他
  • ユースケース例
    • 開発者がClaude Codeで新機能実装→コミット・PR作成
    • チームメンバーやOSSコントリビューターが 意図しないセッションURL を履歴で発見
    • 不自然な履歴の混入 により、プロジェクト全体の印象悪化リスク

追加コンテキスト

  • .claude/settings.jsonattribution.commit: ""で抑制可能だが 周知不足
  • commit-msg gitフックによる自動除去も 環境依存・完全ではない
  • ユーザー体験の向上履歴の健全性維持 のため、UI/UX面からの抜本的な見直しが必要

Hackerたちの意見

おそらく、みんながアトリビューションをオフにしてたから、静かにデフォルトでオンにされたんだろうね。もし「それは俺のハーネスの指示から来た」と反論しても、記憶の中でそれをしないように言うのは、他の指示と同じくらい成功率が60%くらいなんだよね。

これ、ちょっと物議を醸す意見かもしれないけど、俺はこれが好きだな。クラウドコードの初期の頃、セッションIDを取り出して、すべてのコミットに追加するスクリプト(まあ、クラウドが書いたんだけど)を作らなきゃいけなかったんだ。古いコミットをデバッグして、そのコミットを書いたチャットセッションを引き出すときに、これが本当に助かるんだよね。

それは合理的だと思う。アンソロピックが、クロードにクレジットを与えずに使うのが難しくなる大きなトレンドの始まりだと思う。倫理的な理由じゃなくて、ビジネス的な理由でね。フィンガープリンティングもそれを支持してるし。俺は推測してるけど、これらはそれ自体では合理的な小さなことだよ。倫理的でもあるし。でも、アンソロピックは最終的にクロードが誰かの仕事に統合されるようなツールになってほしくないんだと思う。つまり、論文や本を書くためにクロードを使うことにはあまり関心がないんじゃないかな。彼らはクロードが圧倒的に多くの作品を出版することには興味があるし、「盗作」されることは避けたいんだろうね。

これにイライラして、opencodeのデータベースを検索できるPythonスクリプトを作ったんだ。それを使って、考えていたセッションを見つけるスキルも作った。例えば「4日前にQt6のドロップダウンで問題があったから、そのセッションを見つけて」って言えるのがいいね。時間とトークンを大幅に節約できる。

タイトルには書いてないし、ほとんどの人が最後までスクロールしないから言っておくけど、これはウェブとリモートコントロールセッションでしか有効じゃないらしいよ、メンテナーによると。

問題なのは、一つのセッションでリモートコントロールを有効にすると、全てのセッションでグローバルに有効になっちゃうことだね(俺は、スマホから全てのセッションにアクセスしたいから、個人的にはそれが好きだけど)。

それは違うよ。デスクトップで普通のCLIを使ってた(ウェブもリモートコントロールもなし)けど、ClaudeがコミットにセッションURLを追加したんだ。

これに関しては全く問題ないと思う。最近気づいたけど、便利だなって思った。エージェントにPRやコミットに名前をタグ付けさせるのと同じ感じだね。何が使われたか知りたいし、実際に使われたモデルを特定してほしいと思ってる。LLMの使い方に恥じることはないし、将来のために完全な監査トレイルを提供したいんだ。追記:クラウドは30日後に古い会話をコンピュータにアーカイブするよ。俺も将来使うかもしれないから、横にアーカイブし始めたところなんだ。

なんか「iPhoneから送信」みたいな感じだよね。ソフトウェアを開発するためにいろんなツールを使ってるけど、もし俺のIDEが静かに「このコミットはIntelliJ IDEA Ultimateで作成されました」って追加し始めたら、うざくて迷惑だと思うよ。

「クロードは古い会話をアーカイブするの?アーカイブするの?それとも削除するの?」

何が使われたのか知りたいけど、「Claude Codeとの共著」ってのはAnthropicのマーケティングにしかならないよね。セッションは確かにもっと役立つけど、単一のプロバイダーからの単一エージェントを使ってるときだけだね。

「PS: Claudeは古い会話を30日後にコンピュータにアーカイブするよ。これをClaudeのsettings.jsonに追加してももう効かないの?」

Hacker Newsで議論の続きを見る