Claude Code Deep Dive:実践者が語る内部構造と高度な活用法

Claude Codeの内部構造(.claudeディレクトリ、JSONLログ)と実際の開発での使い方をエンジニアが共有

Claude Code Deep Dive:実践者が語る内部構造と高度な活用法

2025年6月30日、カルタホールディングスが主催した「Claude Code Deep Dive」イベントが開催され、多数の参加者を集めました1。このイベントでは、Claude Codeの内部構造や実践的な活用法について、実際に使い込んでいるエンジニアたちが詳細な知見を共有しました。

登壇者には、hiragram(@hiragram)氏(akippa株式会社 Developer Experienceチーム エンジニア)、mizchi(@mizchi)氏(ソフトウェアエンジニア・技術発信者)、t-wada(@t_wada)氏(タワーズ・クエスト株式会社 取締役社長、テスト駆動開発の第一人者)が参加し、suzu_v(@suzu_v)氏(株式会社CARTA HOLDINGS 執行役員CTO)がモデレーターを務めました2。Claude Codeの深い部分まで踏み込んだディスカッションが展開され、特に注目すべきは、Claude Codeの内部構造の解析と、実践的な開発における具体的な活用方法です。

Claude Codeの内部構造 - 知られざる仕組み

hiragram氏は、ホームディレクトリに生成される.claudeディレクトリの構造について詳細に解説しました。このディレクトリには以下のようなサブディレクトリが含まれています:

  • commands: カスタムコマンドを定義したマークダウンドキュメント
  • projects: チャットセッションの会話ログ(JSONL形式)
  • todo: Todoツールのデータストレージ
  • claude.md: インストラクション設定
  • settings.json: アプリケーション設定

JSONLines形式による会話ログの管理

Claude Codeは、各セッションの会話ログをJSONLines(JSONL)形式で保存しています。これは1行ごとに1つのJSONオブジェクトが記録される形式で、ストリーミング処理に適しています1

hiragram氏は自作のJSONLビューアーを使用して、これらのログを解析することで、CLIには表示されない内部的なやり取りが確認できることを実証しました。例えば、メインエージェントがサブエージェントに送る具体的なプロンプトや、標準コマンドの内部定義などが明らかになりました。

サブエージェントの仕組みと戦略的活用

サブエージェントは、メインのClaude Codeが自身のタスクの一部を別プロセスで起動したClaude Codeに委託する仕組みです。重要な特徴として:

  1. 一方向の通信: メインからサブへの初期指示と、完了報告のみ
  2. コンテキスト節約: サブエージェントの記憶はメインに戻らない
  3. 並列実行: 複数のサブエージェントを同時に実行可能
  4. 設定の継承: メインのclaude.mdやモデル設定がサブに引き継がれる

サブエージェントの実践的な使い方

パネルディスカッションでは、t-wada氏が具体的な活用例を紹介しました:

  • リファクタリング案の並列検証: 4つの異なるアプローチを同時に試し、最適な結果を選択
  • ADR(Architecture Decision Records)の検証: 複数の技術選択肢を並列で評価
  • 小さなタスクへの分解: 明確なスコープを持つタスクを個別に実行

mizchi氏は、「タスクを100から200個に分割する」という具体的な指示を出すことで、より効果的なタスク管理が可能になると述べました1

実践者が語る高度な活用テクニック

1. ボイラープレートの重要性

パネリストたちは、プロジェクトの初期設定が最終的な品質に大きく影響することを強調しました。hiragram氏は「3万行を一気に生成することもあるが、破綻するまでの時間は2-3時間」と指摘し、初期の構造設計の重要性を訴えました1

2. テスト駆動開発(TDD)の新しいアプローチ

t-wada氏は、AI時代のTDDについて興味深い観点を提供しました:

  • 最初のテストは人間が書く: AIに全てを任せると「爆発的」になりがち
  • 段階的なテスト追加: テストケースの観点を一緒に考えてから増やす
  • パブリックAPIに焦点: Kent Beckの教えに従い、外部インターフェースのテストに集中

3. 定量的な目標設定

mizchi氏は、AIに対して具体的な数値目標を設定することの重要性を強調しました:

  • 「5000行削減してください」
  • 「カバレッジ90%を目指してください」
  • 「重複度を10%以下にしてください」

曖昧な指示では効果が薄く、明確な数値目標を示すことで、AIの力を最大限に引き出せるとのことです。

AI向けツールキット - similarity-ts

mizchi氏が開発した「similarity-ts」は、コードの重複を検出するツールで、AI開発に特化した設計となっています1。このツールの特徴は:

  • ヒューリスティックな重複検出: ASTレベルで形状の類似性を判定
  • 意味的な判断はAIに委譲: 削除すべきかどうかの最終判断はAI
  • 大規模な削減が可能: 実際に5万行から1万2000行を削減した実績

このアプローチは、「AI向けのツールは物量で殴る前提で作れる」という新しい設計思想を体現しています。similarity-tsは、TypeScript/JavaScriptだけでなく、Python、Rust、Elixirなど多言語に対応したバリエーションも提供されています3

現在の限界と将来への展望

GUI開発の課題

hiragram氏は、iOS開発における画面設計の難しさを指摘しました。Claude CodeはCLI中心の設計のため、GUIの評価サイクルが遅いという課題があります。Figmaの公式MCP(Model Context Protocol)への期待も語られましたが、現状では手動でのデザイン指示が必要です。

言語サービスの再設計

mizchi氏は、現在のLSP(Language Server Protocol)が人間向けすぎてAIに適していないと指摘しました。「行とカーソル位置で指定するのは無駄。AST(抽象構文木)を直接操作するインターフェースが必要」との見解を示しました1

セキュリティの懸念

将来的なデータポイズニング攻撃への懸念も議論されました。mizchi氏は「今はまだ大丈夫だが、狙ってポイズニングされる前に、安全なサンドボックス環境を整備する必要がある」と警鐘を鳴らしました。

Claude Maxの持続可能性

イベントの最後には、Claude Maxの月額200ドルという価格設定の持続可能性について議論が交わされました。一部のユーザーは1日10万円(月300万円相当)も使用しているとの報告があり、現在の価格設定が維持できるかは不透明です1

パネリストたちは「止まるまで走らせればいい」という共通認識を持っており、現在の環境を最大限活用することの重要性を訴えました。

これらの議論をより深く理解したい方のために、いくつかのリソースを紹介します。イベントの動画には、実際のデモや具体的なコード例、パネリストたちの生の議論が含まれています。特に、hiragram氏のJSONLビューアーの実演や、mizchi氏のsimilarity-tsによる重複コード削減のデモは、本記事では伝えきれない実践的な内容です。

hiragram氏が公開しているccraw(Claude Code Raw)を使えば、自分のClaude CodeセッションログをWebブラウザで解析できます。また、Claude Codeの最新バージョンは/releaseコマンドで確認可能です。

Sources

  1. Claude Code Deep Dive - YouTube Live - カルタホールディングス主催イベント
  2. Claude Code Deep Dive - connpass - イベント詳細情報
  3. similarity-ts - GitHub - mizchi氏によるコード重複検出ツール

最新のAIニュースを毎日お届けしています。

RSSで購読する 更新をいち早くチェックできます。

他のキーワードで探す →