Claude Code - Modular Rules(モジュラールール)機能まとめ
概要
Claude Codeに新しく追加された機能で、大規模プロジェクトにおいて1つの大きなCLAUDE.mdファイルの代わりに、複数のルールファイルに分割して整理できるようになった。
これにより、チームでの管理がしやすくなり、目的別にルールを整理できる。
基本構造
your-project/
├── CLAUDE.md # メインのプロジェクト指示(スリム化)
├── .claude/
│ ├── CLAUDE.md # または .claude/CLAUDE.md(代替位置)
│ └── rules/
│ ├── code-style.md # コードスタイルガイドライン
│ ├── testing.md # テスト規約
│ ├── security.md # セキュリティ要件
│ ├── frontend/
│ │ ├── react.md
│ │ └── styles.md
│ └── backend/
│ ├── api.md
│ └── database.md
ポイント
.claude/rules/内のすべての.mdファイルは自動的に読み込まれる.claude/CLAUDE.mdと同じ優先度で適用される- ファイル数に制限なし
- 明示的なインポート不要
パス指定によるルールの条件適用
YAMLフロントマターを使って、特定のファイルパターンにのみルールを適用できる。
例:API関連ファイルにのみ適用するルール
---
paths: src/api/**/*.ts
---
# API開発ルール
- すべてのAPIエンドポイントには入力バリデーションを含める
- 標準エラーレスポンス形式を使用する
- OpenAPIドキュメントコメントを含める
Globパターンの例
| パターン | 対象 |
|---|---|
**/*.ts | 任意のディレクトリ内の全TypeScript |
src/**/* | srcディレクトリ以下のすべてのファイル |
*.md | プロジェクトルート内のMarkdown |
src/components/*.tsx | 特定ディレクトリのReactコンポーネント |
複数パターンの組み合わせ
---
paths: src/**/*.{ts,tsx}
---
# TypeScript/React Rules
カンマで複数パターンを結合:
---
paths: {src,lib}/**/*.ts, tests/**/*.test.ts
---
Note:
pathsフロントマターがないルールは、すべてのファイルに適用される。
CLAUDE.mdからの分割方法
Step 1: ディレクトリ作成
mkdir -p .claude/rules
Step 2: トピック別にルールを分割
元のCLAUDE.md(大きい):
# CLAUDE.md
## Architecture
...
## Code Style
- 2-space indentation
- camelCase for variables
...
## Testing
- 80%+ coverage required
- Use Jest
...
分割後:
.claude/rules/code-style.md:
# Code Style Guidelines
- 2-space indentation
- camelCase for variables and functions
- PascalCase for classes
.claude/rules/testing.md:
# Testing Conventions
- 80%+ code coverage required
- Use Jest for unit tests
- Integration tests in separate directory
Step 3: CLAUDE.mdをスリム化
# CLAUDE.md
Quick reference for this project.
## Modular Rules
Detailed rules in `.claude/rules/`:
- `architecture.md` - Project structure
- `code-style.md` - Coding conventions
- `testing.md` - Test requirements
These rules are automatically loaded.
シンボリックリンク対応
複数プロジェクト間で共通ルールを共有できる。
共有ルールディレクトリをリンク
ln -s ~/shared-claude-rules .claude/rules/shared
個別ルールファイルをリンク
ln -s ~/company-standards/security.md .claude/rules/security.md
- シンボリックリンクは解決され、内容が正常に読み込まれる
- 循環シンボリックリンクは検出され、適切に処理される
ユーザーレベルのルール
~/.claude/rules/ に個人用ルールを作成すると、すべてのプロジェクトに適用される。
~/.claude/rules/
├── preferences.md # 個人のコーディング好み
└── workflows.md # 好みのワークフロー
メモリ階層の全体像
Claude Codeは階層構造でメモリを読み込む:
| 順位 | メモリタイプ | 場所 | 用途 |
|---|---|---|---|
| 1 | Enterprise policy | システムレベル CLAUDE.md | 組織ポリシー |
| 2 | Project memory | ./CLAUDE.md | プロジェクトメモリ |
| 3 | Project rules | ./.claude/rules/*.md | モジュール化されたルール |
| 4 | User memory | ~/.claude/CLAUDE.md | ユーザーメモリ |
| 5 | User rules | ~/.claude/rules/*.md | モジュール化された個人ルール |
| 6 | Local memory | ./CLAUDE.local.md | ローカル個人設定 |
場所の詳細
| メモリタイプ | 場所 | 共有範囲 |
|---|---|---|
| Enterprise policy | macOS: /Library/Application Support/ClaudeCode/CLAUDE.mdLinux: /etc/claude-code/CLAUDE.mdWindows: C:\Program Files\ClaudeCode\CLAUDE.md | 組織内全ユーザー |
| Project memory | ./CLAUDE.md または ./.claude/CLAUDE.md | ソース管理経由でチームメンバー |
| Project rules | ./.claude/rules/*.md | ソース管理経由でチームメンバー |
| User memory | ~/.claude/CLAUDE.md | 自分のみ |
| User rules | ~/.claude/rules/*.md | 自分のみ |
| Local memory | ./CLAUDE.local.md | 自分のみ(.gitignore推奨) |
ベストプラクティス
1. ルールは焦点を絞る
各ファイルは1つのトピックをカバー:
良い例:
code-style.md- コードフォーマット規約testing.md- テスト方針api-design.md- API設計原則
悪い例:
rules.md- すべてを含む(分割する意味がない)
2. ファイル名は説明的に
✅ Good:
- async-patterns.md
- database-migrations.md
- performance-optimization.md
❌ Bad:
- rules1.md
- misc.md
- other.md
3. パス指定は必要な場合のみ
全ファイルに適用される一般的なルールはpathsを指定しない。
4. ディレクトリで関連ルールを整理
.claude/rules/
├── frontend/ # フロントエンド関連
│ ├── react.md
│ └── accessibility.md
├── backend/ # バックエンド関連
│ ├── api.md
│ └── database.md
├── general.md # 全体に適用
└── performance.md # パフォーマンス関連
5. 具体的に書く
- ❌「コードを適切にフォーマット」
- ✅「2スペースインデントを使用」
6. 必要最小限に留める
ルールが多すぎるとコンテキストを消費するため、本当に必要なルールのみを記載する。
実際の適用例
このプロジェクト(mdx-playground)での分割例:
.claude/rules/
├── architecture.md # プロジェクト構造、アーキテクチャ
├── content-management.md # Frontmatterルール、コンテンツ更新
├── vue-pages.md # Vueブログページ要件(条件付き)
├── deployment.md # Cloudflare Pages、開発コマンド
└── qa-verification.md # Chrome DevToolsによるテスト
vue-pages.mdは条件付きルールとして設定:
---
paths: apps/web/app/pages/blog/**/*.vue
---
# Vue Blog Pages Rules
ブログページのVueファイルを編集する時のみ適用される。
...
分割前後の比較
| 項目 | Before | After |
|---|---|---|
| CLAUDE.md | 294行 | 37行 |
| ルールファイル数 | 1 | 6 |
| 条件付きルール | なし | 1(vue-pages.md) |
活用例
フロントエンド/バックエンド分離
.claude/rules/
├── frontend/
│ ├── react-conventions.md
│ ├── css-guidelines.md
│ └── testing.md
├── backend/
│ ├── api-design.md
│ ├── database.md
│ └── error-handling.md
└── shared/
├── git-workflow.md
└── code-review.md
会社標準 + プロジェクト固有
# 会社標準をシンボリックリンク
ln -s ~/company-standards .claude/rules/company
# プロジェクト固有ルールは直接配置
.claude/rules/
├── company -> ~/company-standards # シンボリックリンク
└── project-specific.md # このプロジェクト固有
まとめ
- 大きなCLAUDE.mdは
.claude/rules/に分割して管理 - 条件付きルール(
paths指定)で特定ファイルのみに適用可能 - ファイルは自動的に読み込まれるので明示的なインポート不要
- プロジェクトの成長に合わせてルールを整理・拡張しやすい
- シンボリックリンクで複数プロジェクト間での共有も可能