51万行のソースコードが暴いた「本当の強さ」
2026年3月31日、AnthropicのClaude Codeのソースコード全容が流出した。npmパッケージにソースマップファイルが誤って含まれるという、リリース工程のヒューマンエラーが原因だ。流出したのは約1,900ファイル、51万2,000行以上のTypeScriptコード。
AIインフルエンサーのチャエン氏(@masahirochaen)はこのソースコードを詳細に分析し、衝撃的な結論に達した──「Claude Codeが強い理由は『Claudeが賢いから』ではない」。強さの本質は、モデルの性能を最大限に引き出す7つの設計原則(ソフトウェアハーネス)にあった。
原則① コンテキスト組立の精度
Claude Codeのコンテキストは3つの要素で構成されている。
| 要素 | 内容 | 役割 |
|---|---|---|
| メモリ | 過去の会話・ユーザー設定 | 継続性の維持 |
| 環境状態 | Git状態・ファイル構造・OS情報 | 現在地の把握 |
| ツールリスト | 利用可能なツールと権限 | 行動範囲の定義 |
これらを精密に組み立てることで、エージェントは「今何をすべきか」を正確に判断できる。闇雲に情報を詰め込むのではなく、必要な情報だけを正しい形で渡す設計が根幹にある。
原則② ツールの権限分離設計
ソースコードから判明した権限モデルは、「読み取り自由・書き込み慎重」の2層構造だ。
全てのツール操作は低リスク・中リスク・高リスクに明確に分類される。.gitconfigや.bashrcなどの保護対象ファイルリストが定義され、高リスク操作には必ずユーザー確認が入る。
さらに、サブエージェントにも権限分離が適用されている。
- Exploreエージェント──読み取り専用。ファイルシステムの調査のみ
- Planエージェント──読み取り専用。設計・計画の策定のみ
- Verificationエージェント──コードの検証と正確性チェック
調査用のエージェントに書き込み権限を与えない。これにより無限ループや破壊的な変更のリスクがアーキテクチャレベルで排除されている。
原則③ コンテキスト窓の予算管理
長い会話はコンテキストウィンドウを圧迫する。Claude Codeはこれを「圧縮するが完全な記録は保持する」という戦略で解決している。
KAIROS_DREAMと呼ばれるメモリ管理機能は、ユーザーがアイドル状態の間に過去5セッション以上の履歴から有用なパターンを抽出し、25KBの制限内に圧縮する。コンテキストの予算を厳密に管理しながら、長期的なタスクの一貫性を維持する仕組みだ。
原則④ サブエージェントによる分業
Claude Codeのエージェントループは5つの層で構成されている。
| 層 | 処理 |
|---|---|
| ① 推論 | タスクを分析し、次のアクションを決定 |
| ② ツール選択 | 最適なツールを選択 |
| ③ 権限チェック | 操作のリスクレベルを評価 |
| ④ 実行 | ツールを実行 |
| ⑤ 観察 | 結果を評価し、次のループへ |
調査と実行を別エージェントに分離することで、各エージェントのコンテキストがクリーンに保たれる。これはまさに先日話題になった「世界レベルのエージェントエンジニア」が推奨する設計と同じだ。
原則⑤ 破壊的操作の多重防御
流出コードから判明した安全機構は想像以上に多層的だった。
- YOLOクラシファイア──機械学習モデルによるツール操作の安全性自動評価
- パス走査防御──ディレクトリトラバーサル攻撃を防ぐクライアント側バリデーション
- 保護ファイルリスト──
.gitconfig、.bashrc等の重要ファイルを明示的に保護 - 複合コマンド分解──複合コマンドは分解してからチェック
- ユーザー確認必須──破壊的操作は必ずユーザーの承認を取得
原則⑥ YAGNI原則のプロンプト制御
YAGNI(You Ain’t Gonna Need It)原則がプロンプト設計にも適用されている。必要のないツール定義や指示をプロンプトに含めない。「今この瞬間に必要な情報だけを渡す」ことで、モデルの推論精度を最大化する。
これは「Undercover Mode」にも表れている。Claudeが内部情報(プロジェクトコード名「Tengu」やSlackのチャンネル名等)を外部に漏らさないよう、動的にシステムプロンプトに制約を注入する仕組みだ。必要な制約だけを、必要な時に挿入する。
原則⑦ プロンプトキャッシュの最適化
静的コンテンツと動的コンテンツの境界にマーカーが配置されている。
| コンテンツ種別 | 例 | 処理方法 |
|---|---|---|
| 静的 | ツール定義、行動原則 | キャッシュして再利用 |
| 動的 | Git状態、ユーザー入力 | 毎回再構築 |
これにより、毎ターンの処理で「変わらない部分」を再処理しない。API消費を最適化しつつ、推論の連続性を維持する巧みな設計だ。
まとめ──他モデルでも再現可能な「設計の力」
チャエン氏はこの分析から重要な示唆を導いている。「理論上はこの設計思想をDeepSeek、Gemini、GPT等に適用しても、同等レベルのコーディングエージェントが作れる可能性がある」。実際、流出コードをベースにしたOSSプロジェクトがすでに動き始めている。
| 原則 | 自作エージェント開発への応用 |
|---|---|
| ①コンテキスト組立 | メモリ+環境状態+ツールリストの3要素を精密に構成 |
| ②権限分離 | 「読み取り自由/書き込み慎重」の2層構造を採用 |
| ③予算管理 | 圧縮するが完全な記録は保持。コンテキスト上限を常に意識 |
| ④サブエージェント分業 | 推論→選択→権限→実行→観察の5層ループ |
| ⑤多重防御 | 複合コマンド分解+破壊的操作は必ずユーザー確認 |
| ⑥YAGNI制御 | 今必要な情報だけをプロンプトに含める |
| ⑦キャッシュ最適化 | 静的/動的コンテンツを分離し、変わらない部分は再処理しない |
Claude Codeの強さは「Claudeが賢いから」ではなかった。モデルの性能を最大限に引き出す「ソフトウェアハーネス」の設計こそが本質だ。そしてその設計思想は、自作エージェント開発のチェックリストとしてそのまま使える。
流出コードに隠されていた驚愕の要素
設計原則だけでなく、流出したソースコードには一般に知られていない隠し要素が大量に含まれていた。開発者のfaded氏(@fadedentry)がGitHub上で公開されたコードを解析し、その全容を明らかにしている。
隠しTamagotchiシステム「BUDDY」
コードの中に完全な仮想ペットシステムが組み込まれていた。
- 18種のペット──アヒル、ドラゴン、カピバラなど
- ガチャのレア度と1%のシャイニー確率
- 帽子アクセサリー、CHAOS / WISDOM / SNARKなどのステータス
- ユニークなパーソナリティと名前を生成し、セッションに反応する
- ユーザーIDから決定論的に生成 → リロール不可
- 発売予定日:2026年4月1日
アンダーカバー・モード
Claudeが公開リポジトリで使用された場合、完全な潜入モードが強制的に有効になる。
- AIであることを言及できない
- Claudeだと明かせない
- co-authored-byのヒントを残さない
- リポジトリが内部でない限り強制ON・無効化不可
流出した内部コードネーム
ソースコード全体に散らばっていた内部コードネームが明らかになった。
| コードネーム | 実態 |
|---|---|
| Tengu | アナリティクスシステム |
| Capybara | モデルコードネーム |
| Marble Origami | コンテキスト・コラプス(圧縮)システム |
| Cobalt Raccoon | フィーチャーフラグシステム |
| Kairos | 高度な自律進化機能 |
| Feldspar | テストフレームワーク |
| Starling | 設定管理システム |
注目すべきは、「capybara」などのコードネームが16進数エンコードされていた点だ。自社のリーク検知システムを回避するための措置だったとみられる。
プライベートリポジトリと隠しコマンド
ハードコードされた許可リストから、Anthropicの内部プロジェクトが判明した──claude-cli-internal、forge-web、labs、argo-rollouts、terraform-config、dbt、infra-manifests等。
さらに、以下の隠しコマンドも発見された。
- /stickers → 本物のマーチャンダイズストアが開く
- /x402 → HTTP 402経由のクリプト決済システム
- /good-claude → 内部報酬トリガー
- auto-dream → バックグラウンドでメモリを統合するシステム
51万行のソースコードが暴いたのは、設計原則だけではなかった。AnthropicがAIエージェントの「人格」と「生態系」をどこまで深く設計しているかが、このリークで明らかになったのだ。
専門家の分析──「実際のところ、どれほど深刻か?」
AI研究者のChubby氏(@kimmonismus)がこの流出事件を44万表示を超える長文記事で詳細に分析している。その評価は意外にもバランスの取れたものだった。
流出の原因──「5秒のミスが5アラームの結果を生んだ」
Chubby氏は流出のメカニズムを明確に解説している。Claude CodeはBunでビルドされており、Bunはデフォルトでソースマップを生成する。誰かがビルド設定でsourcemap: "none"を設定し忘れたか、.npmignoreに*.mapを追加し忘れた。それだけだ。
「バッファオーバーフローでもない。S3バケットの設定ミスでもない。『ここに全コードがあります、楽しんで』と書いてあるJSONファイルだ」
── Chubby氏(@kimmonismus)
そして最大の皮肉──リーク防止のために構築された「Undercover Mode」のソースコード自体がリークした。リークを防ぐコードがリークしたのだ。
被害の評価──3段階の影響度
| 領域 | 影響度 | Chubby氏の評価 |
|---|---|---|
| 戦略的ダメージ | 中〜高 | 未発表のロードマップが全公開。KAIROS、ULTRAPLAN、Coordinatorモード等の設計が競合の手に |
| セキュリティリスク | 実在するが限定的 | 権限システムの構造は公開されたが、実際の強制はサーバー側API。プロンプトインジェクションの障壁は低下 |
| 競争力への影響 | 重大だが致命的ではない | 設計パターンは移植可能だが、モデル品質・API基盤・反復速度・エコシステムは流出していない |
「本当の競争優位はCLIではない」
Chubby氏の分析で最も重要な指摘は、Claude Codeの本当の競争優位はソースコードの中にないという点だ。
- モデル自体──Claudeの基盤能力、学習データ、RLHFプロセス。流出していない
- APIインフラ──サーバー側のキャッシュ、トークン予算、モデルルーティング。CLIコードに含まれない
- 反復速度──Anthropicがどれだけ速く出荷・学習・反復できるか。スナップショットでは捕捉できない
- ユーザー信頼とエコシステム──市場ポジション、MCP統合、開発者マインドシェア。ソースコードに住まない
「競合がCLIアーキテクチャをクローンしても、背後に同等のモデルがなければ、性能の劣るAIの上に非常によく設計されたラッパーがあるだけだ」──この一文が、流出の本質的な影響を的確に要約している。
今後の予測──5つのシナリオ
- ① 短期的な恥ずかしさ──「安全第一のAI企業」がソースを丸ごと公開した事実は、インターネット上で忘れられない
- ② 機能リリースの前倒し──KAIROSやBUDDYの設計が公開された以上、フィーチャーフラグの裏に隠しておく意味がなくなった
- ③ セキュリティ監査──ビルド・公開パイプライン全体のプロセス変更が行われる
- ④ 競合のインスピレーション──クローンではなく、Dream統合やCoordinator-Workerオーケストレーションなどの設計パターンが業界全体に浸透する
- ⑤ 市場ポジションへの永続的ダメージなし──ユーザーはCLIの内部レジストリではなく、Claudeがいいコードを書くかどうかを気にしている
「Anthropicはこの件から回復する。コードは印象的で、機能は革新的で、モデルは依然として最高クラスだ。しかしサンフランシスコのどこかで、DevOpsエンジニアがとても、とても辛い一日を過ごしている」
── Chubby氏(@kimmonismus)44万表示の分析記事より


コメント