2026年3月31日、開発者コミュニティで前代未聞の出来事が起きました。Anthropicが自社最大の売上製品であるClaude Codeの全ソースコードをnpmに誤って公開してしまったんです。 59.8MBのソースマップファイル1つが流出したことで、51万2,000行のTypeScriptコードが世界中の開発者の前にさらされました。
発見からわずか数時間でGitHubに8,100以上のミラーリポジトリが作られ、AnthropicはDMCAで大部分を削除しましたが、もう手遅れでした。年間売上高(ARR) 25億ドル規模の製品の設計図が公開されてしまったわけです。
これは何?
Claude Codeはターミナルから直接コードを読み、修正し、実行するAnthropicのAIコーディングエージェントです。多くの人は「Claude APIをラップしたCLIツール」程度に思っていましたが、流出したソースが示したのはまったく違うものでした。
51万2,000行、1,900ファイルに及ぶ精巧なソフトウェアシステムだったんです。Reactベースのターミナルレンダラー、60以上の権限管理ツール、マルチエージェントオーケストレーション、バックグラウンドメモリ統合エンジンまで。
流出はどうして起きたのか?
Claude Codeバージョン2.1.88をnpmに公開する際、内部デバッグ用のソースマップファイル(.map)がパッケージに含まれてしまったんです。.npmignoreの設定漏れ、またはpackage.jsonのfilesフィールドの設定ミスが原因と見られています。AnthropicのBoris氏(Claude Codeリード)は「開発者のミスであり、Bunのバグでもなく、ハッキングでもない」と確認しました。
面白いのはタイミングです。エイプリルフールの前日に起きた事件だったため、最初はジョークだと思った人も多かったんです。しかも同じ日に、axios npmパッケージが北朝鮮系ハッカーグループによって侵害されるという別の事件も起きていました。
何が変わるのか?
「ただのAPIラッパー」という認識と実際のアーキテクチャのギャップが核心です。流出したコードが示したのは、AIコーディングエージェントにおける本当の競争力はモデルではなく「ハーネス(harness)」にあるという事実です。
| 領域 | 一般的なAI CLIツール | Claude Codeの実際の実装 |
|---|---|---|
| コアループ | while + await model.chat() | 7つの分岐点を持つasync generatorステートマシン |
| メモリ | 全会話を保存 or 単純なカットオフ | 3階層: インデックス(MEMORY.md) + トピックファイル + 元データ検索 |
| コンテキスト管理 | 古いメッセージを削除 | 5つの圧縮戦略(Snip、Microcompact、Autocompactなど) |
| ツール読み込み | 全ツールスキーマを毎回送信 | ToolSearchで必要なツールだけを動的ロード |
| 権限管理 | 全許可 or 全拒否 | Default-deny + 拒否追跡 + 優雅なフォールバック |
| UIレンダリング | console.logベース | React + Ink + Yogaレイアウト(ターミナル用React) |
| コスト最適化 | 特別な戦略なし | プロンプトキャッシュの14状態追跡、スキーマ安定化 |
ひとつずつ詳しく見ていきましょう。
1. エージェントループ: 7段階のステートマシン
コアロジックはquery.tsにあります。正確に1,729行で、queryLoopというasync generator関数がwhile(true)ループを包んでいます。
多くのエージェントフレームワークは「プロンプト送信 → 応答受信 → ツール実行 → 繰り返し」というシンプルな流れで動きます。一方、Claude Codeのgeneratorパターンは7つの明示的な分岐点(continue site)で制御を委譲しながら状態を保持します。セッションの一時停止、再開、シリアライズ、エラー回復がすべて可能な構造です。
2. 自己修復メモリ: 「疑う記憶」
VentureBeatはこれを「context entropyの解決策」と呼んでいました。
- MEMORY.md — 常にコンテキストにロードされる軽量インデックス。1行あたり約150字のポインタのみを保存
- トピックファイル — 実際のプロジェクト知識が入ったファイル。必要なときだけ参照
- 元データ探索 — 会話履歴は読み返さず、特定の識別子だけgrepで検索
最も印象的なのが「Strict Write Discipline」です。エージェントがファイル書き込みに実際に成功した後でのみ、インデックスを更新します。失敗した試みがメモリを汚染するのを防ぐ仕組みです。また、エージェントは自分のメモリを「ヒント」として扱うよう指示されています。必ず実際のコードベースで検証してから行動する構造です。
3. 5つのコンテキスト圧縮戦略
長時間セッションでコンテキストウィンドウが埋まったらどうするのか? Claude Codeは状況に応じて5つの戦略を組み合わせます。
Snip — 古いメッセージを素早くカット。スピード優先。
Microcompact — ツール出力だけを対象。5,000行のファイル読み込み結果をディスクに保存し、要約だけ残す。
Context Collapse — 古い会話区間を段階的に圧縮。(まだフィーチャーフラグの裏にある)
Autocompact — 設定されたトークン閾値に達したら会話全体の要約に切り替え。
Reactive Compact — APIが413(ペイロード超過)を返したときに発動する非常ブレーキ。
4. 権限システムの「46行の哲学」
すべてのツールはisReadOnlyとisDestructiveを宣言する必要があります。デフォルト値はどちらもfalse — default-denyです。
最も興味深いのがdenialTracking.tsという46行のファイルです。
ユーザーが「いいえ」を押し続けると、システムが自動モードをオフにして毎ステップで許可を求めます。多くのエージェントは繰り返し再試行するか、完全に止まってしまいますが、Claude Codeは「ユーザーが不満を示したら、より慎重に行動する」という原則をコード46行で実装しているんです。
5. 隠し機能の数々
流出したコードで発見された未公開機能も話題を呼んでいます。
- KAIROS(自律デーモンモード) — 「適切な時」を意味するギリシャ語が由来。ユーザーが離席している間に
autoDreamというプロセスがメモリを整理し、論理的矛盾を取り除き、曖昧な観察を確定的な事実へと変換します。 - /buddy(たまごっちペット) — ターミナルに住むASCIIの相棒。18種のキャラクター、ガチャ確率(Legendary 1%)、RPGステータス(DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK)。エイプリルフールのサプライズとして用意されていたのに、1日早くバレてしまいました。
- Undercover Mode — Anthropicが公開オープンソースリポジトリにステルス貢献する際に使う機能。コミットからAIの痕跡を消します。
- Proactive Mode — プロンプトなしでAIが自律的に動作するモード。
- 不満・怒り検知 — キーワードパターンでユーザーのネガティブ感情を検知し、内部分析に反映。
6. 競合他社へのコピー対策: Anti-Distillation & DRM
公開されたコードから発見されたのは単なる機能だけではありませんでした。Anthropicが競合他社による模倣を技術的に阻止しようとする取り組みまで実装していたんです。
- Anti-Distillation — APIリクエストに偽のツール定義を注入し、競合他社がClaude Codeのトラフィックを録画して自社モデルを学習させようとすると、汚染されたデータが入り込む仕組みです。ツール呼び出し間の推論プロセスも、暗号化署名されたサマリーとしてのみ渡されます。
- DRMレベルのクライアント認証 — JavaScriptレイヤーの下、BunのZigネイティブHTTPスタックでAPIリクエストごとにハッシュを埋め込みます。本物のClaude Codeバイナリから送られたリクエストであることを暗号学的に証明する構造です。JSをパッチして回避できないよう、意図的に下位レイヤーに実装されています。
7. claw-code: AIがAIを複製する
流出直後に最も注目を集めたのがclaw-codeというプロジェクトです。韓国人開発者のSigrid JinがOpenAI Codexを使って、Claude CodeのアーキテクチャをPythonでクリーンルーム再実装したものです。元のコードを直接コピーせず、構造とパターンだけを参考にして新たに書き起こしました。
法的に興味深いポイントがあります。AIが既存のコードを見て別の言語で再実装した結果は著作権侵害になるのか? 従来、「クリーンルーム再実装」とは2つのチームが数ヶ月かけて行うコストのかかるプロセスでした。ところが今やAIが一晩でやってのけるため、まだ法的な判例がないんです。Gergely Orosz(The Pragmatic Engineer)は「Anthropicが訴訟を起こしても、AIによる変換著作物に対するIP争いで勝てるかどうかは不明確だ」と指摘しています。
重要ポイント: ここから学べること
この流出から、ビジネスパーソン、開発者、プロダクトマネージャーが持ち帰れる教訓をまとめました。
- AI製品の堀(moat)はモデルではなくハーネスにある
Claude Codeが証明したのはこれです。同じClaudeモデルを使っていても、エージェントループ・メモリ・権限・コスト最適化をどう設計するかが製品の品質を決めます。AI製品を作るなら「どのモデルを使うか」よりも「モデルを包むシステムをどう組み立てるか」に投資しましょう。 - コンテキスト管理を軽く見ないこと
Anthropic自身が5つの戦略を作り、うち2つはまだ実験中です。長時間のエージェントセッションにおけるコンテキスト管理は未解決の課題です。特にツール出力(ファイル読み込みなど)がコンテキストウィンドウの半分を食い潰す問題 — Microcompactパターンを参考にしてください。 - ツールが20個以上なら遅延ロード(deferred loading)は必須
Claude Code、OpenAI Agents SDK、CrewAIが独立して同じパターンにたどり着いています。すべてのツールスキーマを毎回送るのはトークンの無駄遣いです。ToolSearchのようなメタツールで必要なものだけを動的に注入しましょう。 - 権限システムは「優雅な劣化」を設計すること
ユーザーが不満を示したらより慎重に行動する、46行の原則。AI製品において信頼(trust)は機能よりも重要です。繰り返し拒否を追跡し、自動から手動へ滑らかに移行するUXを取り入れてみてください。 - 流出が致命的でない理由も考えてみること
Star Historyは「コードのスナップショットは写真であり、カメラマンではない」と書いています。 本当の堀は、それを作ったチームと継続してリリースするスピードです。ソースが公開されてもAnthropicの株価や利用者数に大きな影響がなかったことが、それを証明しています。




