• #Claude Code
  • #AI
  • #設定

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は階層構造でメモリを読み込む:

順位メモリタイプ場所用途
1Enterprise policyシステムレベル CLAUDE.md組織ポリシー
2Project memory./CLAUDE.mdプロジェクトメモリ
3Project rules./.claude/rules/*.mdモジュール化されたルール
4User memory~/.claude/CLAUDE.mdユーザーメモリ
5User rules~/.claude/rules/*.mdモジュール化された個人ルール
6Local memory./CLAUDE.local.mdローカル個人設定

場所の詳細

メモリタイプ場所共有範囲
Enterprise policymacOS: /Library/Application Support/ClaudeCode/CLAUDE.md
Linux: /etc/claude-code/CLAUDE.md
Windows: 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ファイルを編集する時のみ適用される。
...

分割前後の比較

項目BeforeAfter
CLAUDE.md294行37行
ルールファイル数16
条件付きルールなし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指定)で特定ファイルのみに適用可能
  • ファイルは自動的に読み込まれるので明示的なインポート不要
  • プロジェクトの成長に合わせてルールを整理・拡張しやすい
  • シンボリックリンクで複数プロジェクト間での共有も可能

参考リンク