Claude Codeのアンダーカバーモード:リークされたソースコードが実際に明かすもの
Claude Codeのリークされたソースコードには、「正体を明かすな。AIであることを決して言うな」とClaudeに指示するアンダーカバーモードが含まれていた。その実際の機能と、開発者が注目する理由を解説する。
こんにちは、Doraです。2026年3月に流出したClaude Codeのソースを、公開直後からずっと読み込んでいます。報道の多くはBUDDYペットやKAIROSデーモンに集中していました——確かに興味深いのですが、私はもっと小さく具体的なところで引っかかり続けていました。
utils/undercover.tsというファイル。そして、「Do not blow your cover.(正体を明かすな)」という一文で始まるシステムプロンプト。
その言葉が頭から離れませんでした。明らかに不穏だからではなく、文脈によっては完全に合理的に聞こえ、別の文脈では深く奇妙に聞こえる——流出したソースコードはどちらの文脈にいるのかを教えてくれないからです。
実際に見つけたものをお伝えします。
流出ソースに実際に書かれていたこと——完全なシステムプロンプト
KuberwastackenのGitHubによる詳細分析——流出ソースの最初期の詳細な読解のひとつ——によれば、Claude Codeのアンダーカバーモードは、Anthropic社員(USER_TYPE === 'ant')が公開またはオープンソースのリポジトリで作業していると判定されたとき、自動的にトリガーされます。
その条件が満たされると、システムはClaudeのシステムプロンプトに以下の内容を注入します:
アンダーカバーモード — 重要あなたは公開/オープンソースリポジトリで潜入作業中です。コミットメッセージ、PRタイトル、PR本文にはAnthropicの内部情報を一切含めてはなりません。正体を明かすな。
コミットやプルリクエストから削除される具体的な情報は次のとおりです: 内部モデルのコードネーム(CapybaraやTenguといった動物名)、未公開のモデルバージョン番号、内部Slackチャンネルや短縮リンク(例: go/cc)、内部リポジトリやプロジェクト名、「Claude Code」というフレーズ、そしてAIであることを示すあらゆる言及——Co-Authored-By行を含みます。
Alex Kimの技術分析で注目すべき点がひとつあります: CLAUDE_CODE_UNDERCOVER=1でアンダーカバーモードを強制的にオンにすることはできますが、強制的にオフにするスイッチは存在しません。外部ビルドでは、この機能全体がデッドコード除去によって無効化されています。内部ビルドでトリガー条件が満たされると、このモードは一方通行の扉となります。

アンダーカバーモードが実際に目的としていること
元の意図について公平に評価しておきます——それは重要なことだからです。
Anthropicのエンジニアたちはオープンソースプロジェクトに貢献する際にClaude Codeを使用しています。これは正当で、ますます一般的になっているワークフローです。問題は現実のものです: 内部コンテキストを持つAIが、内部識別子を誤って漏洩させてしまう可能性があるのです。未公開のモデルバージョン番号に言及するコミットメッセージ、内部Slackチャンネルを参照するPRの説明文——これらは、誰も意図していなかったロードマップ情報を公開してしまう類の情報漏洩です。
アンダーカバーモードは、最も狭義の解釈では内部情報の誤った漏洩を防ぐためのデータ衛生ツールです。公開コミットメッセージから内部コードネームを除去すること?合理的です。内部のgo/cc短縮リンクが公開PRに現れるのを防ぐこと?合理的です。
「正体を明かすな」という言葉が、好意的に解釈することを難しくしています。それは状況を「内部データの漏洩を避ける」としてではなく、「カバーストーリーを維持する」として組み立てています。この二つは意味のある違いがあります。一方は情報衛生についてであり、もう一方は積極的な隠蔽のように聞こえます。
開発者コミュニティの反応が割れた理由
Hacker NewsのスレッドとXでは、ほぼ即座に三つの陣営が生まれました。
「ざまあみろ」陣営は明白なことを指摘しました: Anthropicは内部情報の漏洩を防ぐためのサブシステム全体を構築した——そして、そのサブシステムを51万2千行の独自ソースとともに、誰でもダウンロードできる.mapファイルとして出荷してしまったのです。漏洩を防ぐように設計されたシステムが、史上最大の漏洩の中で最も印象的な細部となっています。VentureBeatの報道によれば、Anthropicはインシデントを認め、「セキュリティ侵害ではなく、人的ミスによるリリースパッケージングの問題」と説明しました。
「懸念」陣営はCo-Authored-Byの抑制に着目しました。GitHub Copilotを含む主要なAIコーディングツールのほとんどは、コードを支援する際にコミットメタデータに帰属シグナルを残します。それらのシグナルを積極的に削除すること、特に公開オープンソースリポジトリにおいてそれを行うことは、Claude Codeを異なるカテゴリに置きます。これが重要なのは、オープンソースの貢献規範は誰が——または何が——何を貢献したかを知ることに依存しているからです。多くのオープンソースプロジェクトが軽量な認証フレームワークとして使用しているDeveloper Certificate of Originは、貢献者が自分の作業を提出する権利があることを証明することを要求しています。AIであることのすべての証拠を削除するよう指示されたAIの貢献者は、そのフレームワークとの緊張関係を生み出します——それは善意によっては解決されません。
「現実主義」陣営は反論しました: すべての企業には変わった特性を持つ内部ツールがある、Claude Codeのものがたまたま今は異常に可視化されているだけだ、と。そして明確にしておくべきことがあります——アンダーカバーモードが通常のClaude Codeユーザーに影響を与えるという証拠はありません。トリガーはUSER_TYPE === 'ant': Anthropic社員のみ、公開リポジトリのみです。
これはいくつかの報道が曖昧にしていた重要な明確化です。

これがAI支援開発に提起するより広い問い
アンダーカバーモードの公開は、すでに熱を帯びていた継続中の議論の真っ只中に降り立ちました。
Red HatはAI支援開発とオープンソース規範についての詳細な分析を2025年後半に公開し、AI支援の透明な開示が、法的義務となっていなくても、オープンソースコミュニティでは文化的規範として扱われるようになっていると主張しました。QEMUのようなプロジェクトは、主にDCOコンプライアンスの不確実性から、AI生成の貢献を完全に禁止する明示的なポリシーを採用しています。Fedoraは逆の方向に進み、「Assisted-by:」タグによる開示を要求しながらもAIの関与を禁止していません。
何千もの主要プロジェクトの貢献基準を支配するDCOの基盤をなすLinux Foundationの立場は、このフレームワークが人間の著作権を中心に設計されており、AI支援ワークフローには完全に追いついていないというものです。その曖昧さは、法的明確性が重要なプロジェクトに実質的なリスクをもたらします。
アンダーカバーモードがしていることは、最も摩擦を生みやすいまさにその点で、その新興規範からオプトアウトすることです: AI企業から公開オープンソースプロジェクトへの貢献。それは、個々の開発者がボイラープレートにCopilotを静かに使うこととは違います。情報の非対称性は、貢献を行う当事者がAIツールを構築し、それを使用するエンジニアを雇用し、開示を抑制するようにシステムを設計している場合、意味のある違いがあります。
これを冷笑的な決断だとは思いません。透明性のレンズを通じて注意深く検討されなかっただろう実用的な決断だと思います。しかし、意図と見た目のギャップこそが、開発者コミュニティが反応しているものです。
アンダーカバーモードと一緒に発見されたもの
アンダーカバーモードの発見は単独では届きませんでした。同じ流出ソースには、Bunのコンパイルタイムのデッドコードエリミネーションによって外部ビルドから削除された108のフィーチャーゲート付きモジュールが含まれていました。KAIROS——作業環境を監視し、プロンプトなしに行動する永続的な自律バックグラウンドエージェント。ULTRAPLAN。VOICE_MODE。18種類、ユーザーごとの決定論的シーディング、1%の「色違い」バリアント確率を持つBUDDYという仮想ペットシステム。
これらはすべて独自に興味深いものです。しかしアンダーカバーモードが独自の議論を生んだのは、それが将来の機能ではなく——Claudeを構築する人々が使用するプロダクションツールの現在進行中のアクティブな動作だからです。
中心的な皮肉は残ります: アンダーカバーモードは漏洩を防ぐために作られました。それを公開した.mapファイルは、インシデントに関するDecryptの報道によれば、ビルドパイプラインにおける人的ミスの結果として出荷されたと思われます。Anthropicはその後、npmパッケージのバージョンを削除し、プロセスの改善を約束しました。

AIコーディングツールを評価しているチームへの示唆
オープンソースに貢献するチームのツール選定をしているなら、AIコーディングアシスタントについて問う価値のある質問がいくつかあります:
デフォルトでコミットメタデータにAI支援を帰属させますか? ツールによって帰属させるもの、させないもの、設定に応じて積極的に帰属を削除するものがあります。それが重要になる前に、あなたのツールがどのカテゴリに入るかを把握しておいてください。
バックグラウンドでどんなテレメトリが動いていますか? 流出したソースは、Claude Codeが1時間ごとにリモート設定エンドポイントにポーリングし、リモートで切り替えられるフィーチャーキルスイッチを持っていることを示しました。これはエンタープライズソフトウェアとしては珍しくありませんが、内部のセキュリティレビューやベンダー評価で明示的に触れる価値があります。
CLIの動作とAPIの動作の間に意味のある違いはありますか? アグリゲーションレイヤーを介してモデルAPIの上に構築しているチームは、独自のデフォルトを持つバンドルされたCLIツールを使用しているチームとは異なる関係をこれらの問いに対して持っています。デフォルトこそが興味深い決断が宿る場所であり、目立って宣伝されることはほとんどありません。
これは特定のツールの賛否を論じるものではありません。「AI支援」はモノリシックなカテゴリではない——ツールに組み込まれた具体的な動作が重要であり、開発環境で動作するサードパーティシステムに適用するのと同じ厳密さで検討する価値があるというリマインダーです。

FAQ
Claude Codeのアンダーカバーモードとは何ですか?
Claude Code内のサブシステム(utils/undercover.ts)で、Anthropic社員が公開またはオープンソースのリポジトリで作業している際に、AIであることの帰属を含むすべてのAnthropicの内部情報をgitコミットとプルリクエストから削除するよう指示するシステムプロンプトを注入します。
アンダーカバーモードは通常のClaude Codeユーザーに影響しますか?
いいえ。トリガー条件はUSER_TYPE === 'ant'——Anthropic社員のみです。標準のClaude Codeビルドを使用する外部ユーザーは、インストールから関数全体がデッドコード除去されています。
Claude CodeはオープンソースのコミットにおいてAIの関与を隠しているのですか?
内部ビルドで公開リポジトリで作業するAnthropicの社員について: はい、設計によって。他のすべての人について: そのような動作の証拠はありません。この区別は重要です。
Claude Codeの流出ソースを自分で読むにはどこを見ればいいですか?
Anthropicはnpmパッケージのバージョンを削除し、GitHubミラーに対してDMCAテイクダウンを行っています。KuberwastackenやAlex Kimのような研究者によるアーカイブされた分析が、発見されたものを文書化しています。
Anthropicはアンダーカバーモードについてコメントしていますか?
Anthropicのスポークスパーソンは、より広い漏洩について「セキュリティ侵害ではなく、人的ミスによるリリースパッケージングの問題」と確認しました。執筆時点では、アンダーカバーモードについての具体的な声明は出されていません。
漏洩なしにはこれほど多くのことが見えないままだったであろうということが、私の頭から離れません。動作そのものは弁護できるかもしれません。しかし「検討すれば弁護できる」と「検討された」は別のことです。オープンソースコミュニティは概して、後者を持つ方を好むという決断を下しています。
Anthropicも原則的にはそうでしょう。ただ、ここではその原則を適用しませんでした。
