# creating-rules > .claude/rules/ディレクトリにベストプラクティスに沿ったルールファイル(.md)を作成します。コーディングルール、テスト規約、セキュリティ要件などのプロジェクト固有の指示を作成する場合に使用します。paths frontmatterによる条件付きルール、適切なファイル名、サブディレクトリ構造をサポートします。 - Author: asakuno - Repository: asakuno/template-repository - Version: 20260125021957 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/asakuno/template-repository - Web: https://mule.run/skillshub/@@asakuno/template-repository~creating-rules:20260125021957 --- --- name: creating-rules description: .claude/rules/ディレクトリにベストプラクティスに沿ったルールファイル(.md)を作成します。コーディングルール、テスト規約、セキュリティ要件などのプロジェクト固有の指示を作成する場合に使用します。paths frontmatterによる条件付きルール、適切なファイル名、サブディレクトリ構造をサポートします。 --- # Creating Rules `.claude/rules/`ディレクトリにベストプラクティスに沿ったルールファイルを作成する。 ## ワークフロー ### 1. 要件の確認 ユーザーに以下を確認: - ルールのトピック(例:コードスタイル、テスト、セキュリティ) - 対象ファイル(特定のパスに限定するか) - サブディレクトリに配置するか ### 2. ルールファイルの作成 #### ディレクトリ構造 ``` .claude/rules/ ├── code-style.md # 全体に適用 ├── testing.md # 全体に適用 ├── frontend/ # サブディレクトリで整理 │ ├── react.md │ └── styles.md └── backend/ ├── api.md └── database.md ``` #### ファイル形式 **条件なしルール(全ファイルに適用):** ```markdown # [トピック名] - ルール1 - ルール2 ``` **条件付きルール(特定ファイルのみ適用):** ```markdown --- paths: src/**/*.ts --- # [トピック名] - ルール1 - ルール2 ``` #### paths globパターン | パターン | マッチ対象 | |---------|-----------| | `**/*.ts` | 全ディレクトリのTypeScriptファイル | | `src/**/*` | src/以下の全ファイル | | `*.md` | ルートのMarkdownファイル | | `src/**/*.{ts,tsx}` | src/以下のTS/TSXファイル | | `{src,lib}/**/*.ts, tests/**/*.test.ts` | 複数パターンの組み合わせ | ### 3. ベストプラクティス 詳細は [references/best-practices.md](references/best-practices.md) を参照。 **要点:** - **焦点を絞る**: 1ファイル1トピック - **説明的なファイル名**: 内容が分かる名前 - **条件付きルールは控えめに**: 本当に必要な場合のみ`paths`を使用 - **サブディレクトリで整理**: 関連ルールをグループ化 - **具体的に記述**: 「コードを適切にフォーマット」より「2スペースインデントを使用」 ### 4. 作成後の検証 作成したルールファイルを検証: 1. **配置確認**: `.claude/rules/`に正しく配置されているか 2. **構文確認**: frontmatterのYAML構文が正しいか 3. **パターン確認**: `paths`のglobパターンが意図通りか 4. **内容確認**: ルールが具体的で実行可能か **検証コマンド例:** ```bash # ファイル一覧を確認 ls -la .claude/rules/ # frontmatterの構文確認(pathsが正しいか) head -10 .claude/rules/[ファイル名].md ``` 問題があれば修正し、再度検証する。 ### 5. 完了確認 - ルールが正しく読み込まれることを確認 - `/memory`コマンドで読み込み状況を確認可能 --- ## 重要な注意事項 ### ファイル配置の原則 - すべてのルールファイルは `.claude/rules/` 配下に配置 - サブディレクトリを使って論理的にグループ化 - ファイル名は内容を明確に表現する ### paths frontmatterの使用 - 本当に必要な場合のみ使用(大半のルールは全ファイルに適用で十分) - globパターンは正確に記述 - 複数パターンはカンマ区切りで記述可能 ### ルール記述の品質 - 具体的で実行可能なルールを記述 - 抽象的な表現を避ける - 例を含めることで理解を促進 --- ## 実行例 ### 例1: TypeScript用のコーディングルール作成 **ユーザー**: 「TypeScriptのコーディングルールを作成して」 **実行内容**: 1. トピック確認: コードスタイル(TypeScript) 2. 対象ファイル確認: `**/*.ts`, `**/*.tsx` 3. ファイル作成: `.claude/rules/frontend/typescript.md` ```markdown --- paths: **/*.{ts,tsx} --- # TypeScript コーディングルール - `any` 型の使用を禁止 - すべての関数に戻り値の型を明示 - オプショナルチェイニング (`?.`) を積極的に使用 ``` ### 例2: テストファイル用のルール作成 **ユーザー**: 「テストファイルの命名規則を追加して」 **実行内容**: 1. トピック確認: テスト規約 2. 対象ファイル確認: テストファイルのみ(`**/*.test.*`, `**/*.spec.*`) 3. ファイル作成: `.claude/rules/testing.md` ```markdown --- paths: **/*.{test,spec}.{ts,tsx,js,jsx} --- # テスト命名規則 - テストファイル名は `[対象ファイル名].test.[拡張子]` 形式 - describe ブロックはコンポーネント/関数名と一致 - it ブロックは「should + 動詞」で開始 ```