Claude Code ソースコードから判明した8つの事実

Claude Code ソースコードから判明した8つの事実【2026年最新】

Claude Code ソースコードが、npmパッケージのミスで世に出た。51万2千行のTypeScript。約1,900ファイル。

2026年3月31日、朝4時23分(ET)。Solayer Labsのインターン、Chaofan Shou氏がXに投稿した。「Claude Codeのソースマップファイルが丸見えになってる」——その瞬間から、AI開発の常識がひっくり返った。

npmパッケージのv2.1.88に、59.8MBのソースマップファイル(.map)が混入していた。.npmignore*.mapの記載漏れ。Bunビルドツールのバグで本番ビルドにもソースマップが生成されていた。

Anthropicは声明を出した。「顧客データや認証情報の漏洩はない。パッケージングのヒューマンエラーだ」と。

だが、そこから判明した事実は、Claude Codeを使う全員にとって価値がある。


1. エージェントループは驚くほどシンプル

51万行のコード。さぞ複雑な仕組みかと思いきや、コアのエージェントループはわずか約20行のwhileループだった。

ツール呼び出しを繰り返す、不変のメッセージ履歴を持つシンプルなwhileループ。残りの51万行は何か。コンテキスト管理、権限システム、ツール定義、エラー回復、圧縮機構——つまり「ハーネス」だ。

モデルを囲む制御装置が、真の開発価値がある場所。別のモデルをClaude Codeのインフラに投入しても、同等のコーディング能力が出るだろう——そう分析されている。


2. サブエージェント5個起動≒1個のコスト

ここが一番衝撃的だった。

サブエージェントを生成すると、親のコンテキストがバイト単位で同一のコピーとして引き継がれる。プロンプトキャッシュがそのまま共有されるため、キャッシュされたトークンは通常の90%OFFで処理される。

モデル 通常入力 キャッシュ入力
Opus 4.6 $5.00/MTok $0.50/MTok
Sonnet 4.6 $3.00/MTok $0.30/MTok
Haiku 4.5 $1.00/MTok $0.10/MTok

長いOpusセッション(100ターン+圧縮)のコスト比較:

  • キャッシュなし:$50〜100
  • キャッシュあり:$10〜19(80%以上の節約)

ヘビーセッションの90%以上のトークンがキャッシュ読み取り。並列処理を怖がる必要はない。

実務ティップス: 「コストが心配でサブエージェントを使わない」は完全に間違った判断。むしろ1つの長いセッションよりサブエージェントを分けて使う方が安い。コンテキストが短いので圧縮コストも少なく、キャッシュのおかげで入力コストもほぼゼロ。

「このプロジェクトの認証モジュール、DB モジュール、APIモジュールを
それぞれ別のサブエージェントで並列リサーチして」

こう指示すれば3つのサブエージェントが同時に調査し、メインエージェントが結果を統合する。コストは順番にやるのと同程度で、速度は3倍。


3. システムプロンプトは動的に組み立てられている

1つの巨大なプロンプトではなかった。30以上の条件付きレイヤーが動的に組み合わされていた。

常に含まれる要素:

  • イントロ(エージェントの人格とトーン)
  • システムルール(ツール使用、権限、コンテキスト圧縮)
  • タスク実行(コーディング哲学)
  • 慎重な実行(「すべてのアクションの可逆性と影響範囲を評価せよ」)

条件付きで含まれる要素(30+):

  • ユーザータイプ別(Anthropic社員 vs 外部ユーザー)
  • ツール可用性セクション
  • 機能ゲーテッドセクション(メモリシステム、Skills、MCP)

ここで重要なのがSYSTEM_PROMPT_DYNAMIC_BOUNDARYという境界線。この前のすべて(指示、ツール定義)は全組織で共有キャッシュされる。この後(CLAUDE.md、gitステータス、日付)はセッション固有。これがプロンプトキャッシュの最適化の核心だ。


4. CLAUDE.mdは「秘密兵器」——ただし200行以内

複数のアナリストがCLAUDE.mdを「Claude Codeで最も重要な設定」と呼んだ。

CLAUDE.mdの内容はSYSTEM_PROMPT_DYNAMIC_BOUNDARYの後に配置される。つまりセッション固有で、グローバルキャッシュされない。CLAUDE.mdの1行は、すべてのターンでトークンコストを発生させる

ベストプラクティス:

  • 200行以内に収める
  • 各行について「これがなかったらClaudeがミスするか?」を自問する
  • Claudeが正しくやっていることを書いても、ノイズにしかならない
  • 専門的な指示はSkillsに分離する

5. 権限チェックにHaikuモデルを使用

コスト最適化が徹底されていた。

  • 権限チェック:最安のHaikuモデルで処理
  • ユーザー感情検知:LLMを使わずRegexパターンで判定(コスト$0)
  • コンテキスト圧縮:まずローカルで処理し、必要な場合のみモデル呼び出し

「AIツールだからすべてAIで処理する」のではなく、Regexで済むことはRegexで——この設計思想はコスト管理の参考になる。


6. 5段階のコンテキスト圧縮戦略

/compactの中身が見えた。

  1. MicroCompact:古いツール出力のローカルトリミング(API呼び出しゼロ)
  2. AutoCompact:コンテキスト上限付近で発火。最大20,000トークンの要約を生成
  3. Full Compact:包括的な圧縮。最近アクセスしたファイル(最大5,000トークン/ファイル)を再注入

ちなみに、2026年3月10日のBigQuery分析で1,279セッションが50回以上連続で圧縮に失敗(最大3,272回)し、1日25万回のAPI呼び出しが無駄になっていたバグが見つかった。3行の修正(MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3)で解決。


7. 出力制限はA/Bテストで最適化されていた

Claude Codeの応答が短い理由が判明した。

  • ツール呼び出し間:最大25ワード
  • 最終応答:最大100ワード

「簡潔に」と書くだけでは不十分で、明示的なワード制限を入れると出力トークンが約1.2%削減されるとA/Bテストで確認されていた。


8. まだ見ぬ機能——KAIROS自律バックグラウンドエージェント

ソースコード内に150回以上参照されていた「KAIROS」。古代ギリシャ語で「好機」を意味する名前だ。

  • 常時稼働のバックグラウンドエージェント(デーモンモード)
  • 定期的な<tick>プロンプトを受けて、自発的に行動するかを判断
  • 1判断サイクルあたり15秒のブロッキング予算
  • 追記専用の監査ログ(自己消去不可)
  • 5分ごとのcron更新

「AIが寝ている間にPRをレビューして、朝にはSlackに結果が来ている」——そんな未来がもうすぐそこにある。


9. 検証エージェントはAIが書いたコードを信用しない

ソースコード内に「Verification Agent(検証エージェント)」が存在していた。その指示にはこう書かれていた:

「実装者はLLMである。独立して検証せよ」

AIが書いたコードを、別のAIが「これはLLMが書いたものだから信用するな」とチェックする構造。合理化パターン(「たぶん大丈夫」「テスト通ったから」)に陥らないよう、明示的に警告していた。

実務上の教訓: AIが作成したコードは必ず別途検証すべきだ。Anthropic自身が自社AIを信用していない。我々もそうすべきだ。


10. セキュリティチェックは23項目を毎回実行

bashSecurity.tsというファイルが、すべてのシェルコマンドに対して23のセキュリティチェックを実行していた。

  • 18個のZsh組み込みコマンドをブロック
  • Unicodeゼロ幅文字インジェクション防御
  • IFS null-byteインジェクション防御
  • 4段階の権限ティア(Plan / Standard / Auto / Bypass)

Claude Codeがターミナルコマンドを実行するたびに、この23チェックを通過しなければならない。「AIが危険なコマンドを実行したらどうしよう」と心配する人が多いが、内部的にはここまで徹底したセキュリティ体制が動いている。


まとめ——モデルはコモディティ、ハーネスが競争優位

51万行のコードが教えてくれたのは、こういうことだ。

Claude Codeの強さの源泉は、Claudeモデルそのものではない。モデルを囲む51万行の「ハーネス」——コンテキスト管理、プロンプトキャッシュ、メモリシステム、権限レイヤー、エージェント協調——ここに本当のエンジニアリング価値がある。

Claude Codeの開発責任者Boris Chernyが語った一言が印象的だった:「Claude Codeへの自分の貢献は、100%がClaude Codeで書かれた」。

AIエージェントの時代、差別化はモデルではなくハーネスにある。


参考ソース


著者: VibeCoding Tailor(Lovable公式アンバサダー)
運営: テイラーの隠れ家(shuntailor.net)

JAKO