Claude Code 公式ベストプラクティス:5つのレイヤーで構築する最強のAIパートナー

はじめに
AIへの指示が、いつの間にか「巨大な壁」になっていませんか?
一つのファイルにルールを詰め込み、AIの記憶容量(コンテキスト)を圧迫し、レスポンスが極端に遅くなる。
場当たり的な指示の追加は、AIの判断を鈍らせ、結果として人間がすべてのコードをチェックし直すという、本末転倒な事態を招きます。
この記事をお勧めしない人
- AIを「便利なコピペツール」としてしか見ておらず、自律的なパートナーに育てたくない人。
- システムの全体構造を設計することより、目の前の1行を修正することだけに執着する人。
- 複数のツールを使い分ける手間を惜しみ、単一のプロンプトですべてを解決したい人。
重すぎる「脳」が引き起こす停滞
- すべての知識を常にAIに持たせると、推論の精度が分散し、単純なミスが多発するようになる。
- AIの「注意力」が枯渇し、重要なアーキテクチャの制約を無視した「動くだけのコード」が量産される。
- 開発が進むほどにコンテキストが重くなり、プロジェクトは「AIにはもう手に負えない」巨大な負債の塊へと変貌する。
5つのレイヤーによる「脳の最適化」
- この記事を読めば、AIの認知リソースを5つの層に分散し、常にクリアな思考で開発を加速させる明るい未来があります。
- 具体的には、CLAUDE.md、Rules、Skills、Subagents、MCPを正しく使い分け、AIの自律性を最大化する設計図を手に入れられます。
- この方法は、複雑な3層分離アーキテクチャを採用する本プロジェクトにおいて、高い品質を維持し続けるための基盤となっています。
- この情報は、AIを「単なる道具」から「自律したエンジニア」へと昇華させるための、究極のコンテキスト工学です。
このブログもそうでした
筆者も最初はすべてのルールを CLAUDE.md に書いていましたが、AIがパンクし、開発が止まってしまう恐怖を味わいました。
この記事で、AIの「脳」を整理し、10年後も共に歩めるパートナーを構築するための、実践的なレイヤー設計のTipsをまとめました。
最強のAI開発環境を構築したい方は、各レイヤーの詳細を確認できます。
開発の進捗
- Before: 肥大化した
CLAUDE.mdによりAIのレスポンスが低下し、指示の競合や無視が頻発していた。 - Current: 5つのレイヤー(CLAUDE.md/Rules/Skills/Subagents/MCP)への役割分散が完了し、AIの認知負荷を大幅に削減。
- Next: 各レイヤー間の連携を自動化し、人間が介入せずとも高品質なコードが生成され続ける自律システムを目指す。
具体的なタスク
- Before: ルール、手順、外部連携の定義が一箇所に混在し、情報の再利用性が低かった。
- Current: パスベースのRules適用と、Skillによる定型ワークフローの抽出を完了。
- Next: MCPを通じた本番環境データとの動的同期を強化し、AIが常に最新のプロジェクト状態を把握できるようにする。
5つのレイヤーの全体構造(関わり合いの俯瞰)
Claude Codeのカスタマイズは、AIの「脳(内部レイヤー)」と「手(外部レイヤー)」を分離して設計することで、AIの認知リソース(スタミナ)を最適化し、精度の高い出力を維持する Context Engineering(コンテキスト工学) の営みです。
| レイヤー | 分類 | 役割 (Role) | 関わり合いの性質 |
| : | : | : | : |
| CLAUDE.md | 内部 | マスター設定 | 全てのレイヤーへのリンクを持つ「ハブ」 |
| Rules | 内部 | ドメイン知識 | 特定の作業時のみ呼び出される「専門知識」 |
| Skills | 内部 | 作業手順 | 人とAIが協調する「ワークフロー」 |
| Subagents | 内部 | 自律実行 | メインコンテキストを汚さない「隔離作業員」 |
| MCPs | 外部 | 外部接続 | コードベース外から情報を供給する「手」 |
2. 各レイヤーの詳細な関わり合い
① CLAUDE.md:全レイヤーの「インデックス」
CLAUDE.mdはセッション開始時に必ず読み込まれる唯一のファイルです。
- ハブ機能 : 300行以内で「WHAT/WHY/HOW」を記述し、詳細はRulesやSkillsへポインタ(参照)を飛ばす役割を担います。
- 相互作用 : Claudeが最初にCLAUDE.mdを読むことで、「このプロジェクトにはどんなRulesがあり、どのSubagentを使うべきか」という全体戦略を立てられるようになります。
② Rules:コンテキストの「動的フィルタ」
.claude/rules/ に配置され、パスベース(YAMLフロントマター)で発動します。
- 相互作用の最適化 : 例えば「DBの命名規則」というRulesは、SQLファイルを触る時だけ読み込まれます。
- 利点 : 無関係な知識(CSSの知識など)が混ざるのを防ぎ、AIの注意力を「今やるべきこと」に集中させます。
③ Skills:対話型「ワークフロー」
ユーザーが / コマンドで起動する、反復可能なマルチステップの手順です。
- 人との関わり : アーキテクチャの決定など、実行途中で「ユーザーの承認や判断」が必要な場合に最適です。
- Rulesとの連携 : Skillの実行プロセスの中で、特定のRulesを参照して品質を担保させることができます。
④ Subagents:コンテキストの「隔離・節約」
Claudeが自動で、あるいは指示により起動する独立した専門アシスタントです。
- 相互作用の隔離 : 大規模な検索やリファクタリングなど、大量のログが出る作業を「別ウィンドウ(コンテキスト)」で実行させます。
- 利点 : 作業完了後に「結果だけ」をメインセッションに持ち帰るため、メインエージェントの記憶(コンテキスト)が汚れるのを防ぎます。
⑤ MCPs:外部情報の「供給源」
GitHub、Slack、データベースなどの外部ツールへの接続口です。
- 情報の橋渡し : MCPを通じて取得した外部データ(例:Sentryのエラーログ)を元に、Rulesに従ってSubagentsが修正を行う、という高度な連携が可能です。
3. 「防衛拠点」構築のための決定フロー
どのレイヤーに定義すべきか迷った際は、以下の問いに沿って配置を決定します。
- 「常に守るべき共通の地図か?」
→CLAUDE.md(プロジェクト概要、コアファイル構成) - 「特定のファイルに関わる深い専門知識か?」
→Rules(デザインシステム、セキュリティ要件、DBパターン) - 「人がトリガーする繰り返し作業か?」
→Skills(新規ページ作成、デプロイチェック) - 「自動で任せたい重い自律タスクか?」
→Subagents(セキュリティ監査、大規模リファクタリング) - 「コードベース外(GitHub/Slack等)に触れるか?」
→MCPs(Issue管理、監視データ取得、通知)
4. 段階的な構築アプローチ (Strategy)
いきなり全てを作るのではなく、以下の順で「製造ライン」を整備します。
- Step 1:
CLAUDE.mdで地図を作り、AIに「今どこにいるか」を教える。 - Step 2: 重要なドメイン知識(優作さんの延命術など)を
Rulesに分離し、AIの脳を整理する。 - Step 3: 週に数回やるルーチンを
Skillsにしてスラッシュコマンド化する。 - Step 4: 重い作業が発生したら
Subagentsに切り出し、メインのコンテキストを清潔に保つ。
5 📘 Claude Code 5つのレイヤー活用ガイド
Project Master (CLAUDE.md)
役割:プロジェクトの地図と思想
セッション開始時に必ず読み込まれる「脳」の基盤。WHY(なぜやるか)を定義し、AIの判断軸を固定します。Domain Rules (.claude/rules)
役割:専門知識の動的フィルタリング
特定のディレクトリやファイル操作時のみ発動する「法律」。無関係な知識でコンテキストを汚さず、精度を最大化します。Agent Skills (.claude/skills)
役割:対話型ワークフロー
人間がトリガーして開始する「反復手順」。アーキテクチャの決定など、人とAIが対話しながら進める共同作業を定式化します。Sub-agents (Autonomous Task)
役割:自律型の隔離作業員
メインの会話(コンテキスト)から切り離された「別動隊」。重いリファクタリングや調査を任せ、AIのスタミナ切れを防ぎます。MCP Connections (External Tools)
役割:外部世界への拡張(手)
GitHubやDB、Slackなど、コードベースの外側にある情報を供給。他のレイヤーと連携し、真の自律稼働を実現します。
これらの5レイヤーが実際の開発でどう機能したかは、ClaudeMixの記録で確認できます。StripeエージェントがSSoT違反コードを実装し、Claude Codeが監査で検出した事件は「Subagentと主担当AIの役割分担」の実例です。CLAUDE.mdを公式ベストプラクティスで全面リファクタリングした記録は「CLAUDE.mdレイヤーの最適化」の実例です。また、E2EテストのwaitForTimeout禁止をRulesで設計した記録は「Rulesレイヤーで行動を制御する」の具体例です。
参照元 :
- [1] izanami.dev - CLAUDE.md や AGENTS.md のベストプラクティス
- [2] izanami.dev - Claude Code 5つのレイヤー使い分け
