.claude/rules/ の書き方
.claude/rules/ はCLAUDE.mdを補完するルールファイルを配置するディレクトリです。CLAUDE.mdがプロジェクトの「概要」なら、rulesは「詳細なルールブック」です。
CLAUDE.mdとの違い
| 項目 | CLAUDE.md | .claude/rules/ |
|---|---|---|
| 役割 | プロジェクト概要・全体方針 | 特定トピックの詳細ルール |
| 読み込み | 常に読み込まれる | glob条件にマッチした時のみ |
| 粒度 | 広く浅く | 狭く深く |
| 推奨サイズ | 200行以内 | 1ファイル50〜100行 |
frontmatterの書き方
各rulesファイルの先頭にfrontmatterを記載してスコープを制御します。
---
description: TypeScriptのコードスタイルルール
globs: "**/*.ts,**/*.tsx"
---
# TypeScript コードスタイル
- \`any\` 型の使用禁止。\`unknown\` を使用する
- 型アサーション(\`as\`)は最小限に
- ...
globs を指定すると、そのパターンにマッチするファイルを編集する時だけルールが読み込まれます。
ファイル分割戦略 — 1ファイル1関心事
.claude/
rules/
code-style.md # コーディング規約
testing.md # テスト方針
security.md # セキュリティルール
git-workflow.md # Git/ブランチ戦略
api-design.md # API設計ルール
具体的なファイル例
<!-- .claude/rules/testing.md -->
---
description: テスト作成時のルール
globs: "**/*.test.ts,**/*.test.tsx,**/*.spec.ts"
---
# テストルール
- Arrange-Act-Assert パターンで構成
- テスト名は日本語で「何をしたら何が起こるか」
- モックは外部依存のみ。内部モジュールのモックは避ける
- カバレッジ80%以上を維持
パス指定によるスコープ制限を活用すると、たとえばバックエンドのルールがフロントエンドのコード編集時に読み込まれることを防げます。コンテキストの無駄遣いを防ぐ重要なテクニックです。