tech-book-labs
言語 / 開発ツール · 最終検証 2026-05-16 · @anthropic-ai/claude-code 2.x · 初公開 2026-05-16

大規模コードベースの Claude Code — モデルではなくハーネスを設計する

Anthropic が「数百万行のモノレポ / レガシー / マイクロサービス分散」で Claude Code を回している企業を観察してまとめたベストプラクティスの日本語要約。CLAUDE.md / フック / スキル / プラグイン / LSP / MCP / サブエージェント の 7 層ハーネス、成功 3 共通パターン、そして同名スキルの優先順位(Enterprise > Personal > Project)の実用ルールまで。

claude-code ai-agents harness skills monorepo best-practices anthropic

検証日: 2026-05-16

出典: Best Practices for Claude Code in Large Codebases — Anthropic(2026-05 公開、本記事は Anthropic 公式ブログの要約 + 実用追補)

対象: モノレポ / レガシー / 分散サービスのいずれかを抱える環境で Claude Code をチーム導入 したい開発リーダー、Developer Productivity / DX 担当

Anthropic が公開した「大規模コードベース版」のベストプラクティス記事を、実務に効く粒度 で日本語にまとめ直したもの。読み終えた時点で次の 3 つが手に入る:

  • Claude Code が 大規模 repo でどう動いて、なぜ RAG 系ツールと違う失敗の出方をするか
  • モデルではなくハーネス(model を取り巻くエコシステム)に投資すべき理由と、7 つの拡張ポイント
  • 「同名スキルが複数箇所にある時、どれが勝つか」 の優先順位ルール(地味だが踏み抜きやすい落とし穴)

ハーネスの全体像 — まずはこの図

Claude Code 単体は LLM クライアントに過ぎず、現場で「使える」状態にするには モデルの周りに 7 層の拡張(ハーネス、harness、ボディフレーム)を組む。各レイヤーは独立に強化でき、組み合わせて効く。

Claude Code の 7 層ハーネス — 中心の Model は固定資産、周辺レイヤーで現場適応する (クリックで拡大)

なぜ「agentic search」が大規模で効くか

Claude Code は 人間のエンジニアと同じ流儀でコードを探す: ファイルシステムを辿り、grep で必要箇所を見つけ、参照関係を追う。全部 開発者のローカルマシンで動作 し、コードベースを事前に server へアップロードしない。

これは RAG(Retrieval-Augmented Generation、検索拡張生成。コードを埋め込みベクトル化して類似検索する方式)型ツールとの最大の違い:

観点RAG 型Claude Code(agentic search)
鮮度埋め込みパイプラインの更新待ち常に最新(その場で読む)
大規模 repoembedding テーブルが巨大化local fs を辿るだけ
失敗モード「数日前の古いコード」を返すスタート地点が無いと コンテキスト枯渇
対策embedding 更新頻度を上げるCLAUDE.md / skill で道標を置く

トレードオフ:Claude が「どこを見ればよいか」のスタート地点を持っていないと、巨大 repo 全体を漠然と探って context window を使い切る。だからこそ CLAUDE.md などへの初期投資がリターン比で大きい。

7 層ハーネスの中身

1. CLAUDE.md(まず最初に整える)

セッション開始時に 自動で読み込まれるコンテキストファイル

  • リポジトリ root には全体像、サブディレクトリにはローカル規約を書く
  • 毎回読まれるので、簡潔に保つ(数百行を超えたら分割)
  • Claude は親方向にディレクトリを辿るので、サブディレクトリで初期化しても root の CLAUDE.md は失われない

2. Hooks(event 連動スクリプト)

「Claude が間違ったことをしないようにする防御策」だけでなく:

  • セッション終了時に学びを CLAUDE.md に追記 → 自己改善ループ
  • 開始時に動的にコンテキストを読み込ませる(git status / open ticket 等)
  • linter / formatter のように 決定的に走らせるべきもの は LLM に頼まずフックで確実に

3. Skills(必要時だけ呼び出す専門知)

すべての知識を session に常駐させると context を圧迫する。

  • セキュリティレビュー用 / ドキュメント更新用など、タスク文脈に応じて段階読み込み
  • 特定の ディレクトリにスコープを限定 することも可能(allowed-pathsapps/web/** のみ等)

4. Plugins(skill + hook + MCP の bundle)

「良い設定」が tribal knowledge(部族知、属人化したノウハウ)になるのを防ぐ仕組み。skill / hook / MCP 設定を 1 パッケージにまとめて社内配布できる。

  • 新人エンジニアが 初日からベテランと同じ環境 を手にできる
  • バージョン管理可能、roll-back 可能
  • plugin 由来の skill は plugin-name:skill-name という namespace を持ち、他階層と名前衝突しない設計

5. LSP 連携(シンボル単位の検索)

IDE の「定義へジャンプ」「参照を探す」と同等の能力を Claude に与える。

  • テキストマッチング(grep)だけだと 同名関数の取り違い が起きる
  • 特に C / C++ / 多言語混在 の codebase で効果が大きい
  • TypeScript 系でも、interface 実装の探索 / リネームの安全性で効く

6. MCP サーバー(社内データ源への接続口)

MCP(Model Context Protocol、Anthropic 由来のオープン標準)サーバーを介して、外部の社内ツール / データソース / API に Claude を接続する。

  • 構造化検索(社内 wiki / chat / ticket)を MCP ツールとして提供
  • 分析基盤(BigQuery / Snowflake)接続で 「prod のメトリクス見ながらコード書く」
  • セキュリティスキャナ / ライセンスチェッカの起動

7. Subagents(独立 context の別 Claude)

サブエージェント(subagent、独立 context window を持つ別 Claude インスタンス)で「探索と編集の分業」が可能。

  • 探索専用の subagent にサブシステムを調査させ、結果ファイルを書かせる
  • 本体のエージェントはその結果を読んで編集に集中
  • 本体の context が探索ノイズで埋まらない

成功している組織に共通する 3 つのパターン

パターン 1: コードベースを Claude に読ませやすくする

具体的な実装テクニック:

  • CLAUDE.md を薄く階層化 して保つ(root + サブディレクトリ)
  • リポジトリの root ではなくサブディレクトリで初期化(Claude は親方向に辿る)
  • テスト / lint コマンドをサブディレクトリ単位 でスコープ
  • .ignore / .claude/settings.jsonpermissions.deny生成物 / build 成果物 / 3rd-party コードを除外
  • ディレクトリ構造で意図が伝わらない場合、リポジトリ直下に 「目次」となる軽量 markdown を置く
  • LSP を有効化 して文字列ではなくシンボル単位で検索させる

パターン 2: モデルの進化に合わせて CLAUDE.md を能動的にメンテ

古いモデルの弱点を補うために書いた指示は、新しいモデルでは 足かせ になる。

  • 例:「リファクタは必ず 1 ファイルずつ」というルールは、複数ファイル協調編集が得意な新モデル の能力を抑え込む
  • 3〜6 ヶ月ごと、もしくはメジャーリリース後 に性能が頭打ちに感じたら設定を見直す
  • 「過去にうまく行かなかったから禁止」 ルールは、それが新モデルでも有効か再評価する

パターン 3: Claude Code 管理の DRI を立てる

技術設定だけでは普及しない。導入が速かった組織には、全社展開の前に小さなチーム(時には 1 人)が事前に必要なプラグイン / MCP を整え、開発者が初日から生産的に使えるようにしていた。

  • 担当は Developer Experience / Developer Productivity 部門に置かれることが多い
  • 新興役職 「エージェントマネージャー」(PM とエンジニアのハイブリッド)も登場
  • 専任チームを置けない場合でも、最低限 1 人の DRI(Directly Responsible Individual)を立てる
  • 規制業種なら エンジニアリング × 情報セキュリティ × ガバナンスの横断 WG を早期に立ち上げる

スキル優先順位 — 同名スキルはどれが勝つか

公式ドキュメントに明記された優先順位。Enterprise > Personal > Project、そして Plugin は別 namespace で衝突しない設計:

優先順位 — 上(Enterprise)が勝つ。Plugin は namespace 付きで衝突しない (クリックで拡大)
階層配置場所適用範囲同名衝突時
Enterprise管理者設定組織全体最強(他をすべて上書き)
Personal~/.claude/skills/<name>/SKILL.md自分の全プロジェクトProject に勝つ
Project.claude/skills/<name>/SKILL.mdそのプロジェクトのみPersonal にいる同名に負ける
Plugin<plugin>/skills/<name>/SKILL.mdplugin が有効な場所plugin-name:skill-name別 namespace

実務での踏み抜きポイント

  • 「プロジェクト固有の最新版を .claude/skills/ に置いたのに、なぜか古い挙動になる」 → グローバル(~/.claude/skills/)に 同名スキルが残っている 可能性。ls ~/.claude/skills/ で確認
  • バージョン番号は 見られていない。「Project に新版」「Personal に旧版」だと 旧版が勝つ
  • 確実に Project 版を使わせたいなら グローバルから同名を削除 or リネーム
  • 配布する場合は Plugin として配ると namespace 衝突回避(<plugin>:<skill> で呼べる)

まとめ — 1 行でいうと

モデル単体に期待しない。CLAUDE.md → Hooks → Skills → Plugins → LSP → MCP → Subagents の順にハーネスを組み、組織側に DRI を立てる。

特に新規導入時の優先度は:

  1. CLAUDE.md を最小から始める(数十行 OK、徐々に育てる)
  2. lint / format / test の決定的処理は Hooks に渡す(LLM に頼らない)
  3. 権限スコープを .claude/settings.json で最初から絞る(permissions.deny で 3rd-party を切る)
  4. DRI を 1 人立てる(エンジニアリング部門所属、設定と権限を統括)
  5. 3 ヶ月後に CLAUDE.md を見直す(新モデルが出ていれば古い禁止ルールを見直す)

慣例的でない構成(ゲームエンジン等のバイナリ資産多めの環境、非標準の VCS 等)は個別判断が必要で、Anthropic Applied AI チームが伴走する旨も原文にあった。

関連 Topic — 体系的に学ぶための入口

tech-book.net /topics/ai-agents

AI エージェント — おすすめ書籍 1 冊・関連用語 49 個・学習マップ

AI エージェントは、大規模言語モデル (LLM) を中核に据え、ツール呼び出しやメモリ、計画立案を通じて自律的にタスクを遂行するソフトウェアの総称である。ユーザーの目標を解釈し、必要に応じて検索・コード実行・API 呼び出しなどの外部ツールを使いながら、途中…

この Topic が役立つ理由 — Claude Code はエージェント型 AI ツールの代表例。本 Topic ページの推薦書からエージェント設計の基礎を押さえると、本記事の 7 層ハーネスがなぜこの形に収束するのかが見えてくる。
学習マップを tech-book.net で見る
tech-book.net /topics/typescript

TypeScript — おすすめ書籍 9 冊・関連用語 42 個・学習マップ

TypeScript とは、Microsoft が 2012 年に発表した JavaScript の上位互換言語で、静的型システムを導入して大規模開発の保守性を高める。

この Topic が役立つ理由 — Claude Code が扱う対象として最頻出のスタックの 1 つが TypeScript。LSP 連携 / interface 実装探索の章は TypeScript の型システムの感覚があると深く読める。
学習マップを tech-book.net で見る
tech-book.net /topics/javascript

JavaScript — おすすめ書籍 17 冊・関連用語 42 個・学習マップ

JavaScript とは、1995 年に Netscape で生まれたブラウザ向けスクリプト言語が起点で、現在は Web・サーバ・アプリ・組み込みまで幅広く使われる汎用言語である。

この Topic が役立つ理由 — Hooks / Plugin は Node スクリプトとして書くケースが多い。素の JavaScript で event-driven なツール拡張を書く感覚が、ハーネス設計の足腰になる。
学習マップを tech-book.net で見る

関連書籍 — この記事の各節を補強する一冊

tech-book.net /books/9784815636609

ISBN 9784815636609

この本が役立つ理由 — エージェント型 AI(LLM がツールを選んで自律的に動く設計)の体系書。本記事の「agentic search が大規模で効く理由」「subagent で探索と編集を分業する」の理論的背景がここに揃っている。MCP / tool calling の基礎としても。
詳細を tech-book.net で見る
tech-book.net /books/9784814401093

Effective TypeScript(第2版) : 型システムの力を最大限に引き出す83項目

Dan Vanderkam/今村 謙士 · オライリージャパン · 2025年 · ¥4,620

急速に普及が進んでいるTypeScriptの実用書! TypeScriptの実用書。TypeScript…

この本が役立つ理由 — LSP 連携と interface 実装探索の章を深く理解するには、TypeScript の型システムの「何が静的に保証され、何が動的か」の感覚が要る。本書の Item 群はその眼を養う。
詳細を tech-book.net で見る
tech-book.net /books/9784297129163

TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発

手島 拓也/吉田 健人/高林 佳稀 · 技術評論社 · 2022年

新しいフロントエンドの入門書決定版! 本書はReact/Next.jsとTypeScriptを用いてWebアプリケーションを開…

この本が役立つ理由 — 本記事のサンプル想定(大規模モノレポ / マイクロサービス)で現実的に多い構成は TypeScript + Next.js + 共通 lib 群。本書の章立てが、Claude にどう `CLAUDE.md` で道標を置くべきかの参照モデルになる。
詳細を tech-book.net で見る
tech-book.net /books/9784297137397

かんたん TypeScript

HIRO · 技術評論社 · 2023年

本書は、「広く・正しく・新しく」をコンセプトにTypeScriptでプログラミングをはじめるにあたって基本的なことはすべて学習できる内容となっています。また、イラストによる図解方式で概念をやさしく解説している…

この本が役立つ理由 — チームに「TypeScript 初級者」が混ざる導入フェーズで、ベテランと初級者が共通言語を持つための薄い 1 冊。本記事の DRI 設計を組む前提として、チーム全員が読める教材は重要。
詳細を tech-book.net で見る
tech-book.net /books/9784297126353

ISBN 9784297126353

この本が役立つ理由 — 同上、初級教材ライン。Claude Code 導入は「全員が同じ書き方で書ける」前提が効くので、教材の整備とハーネスの整備は表裏一体。
詳細を tech-book.net で見る