AgentSkillsCN

creating-rules

在 .claude/rules/ 目录下创建符合最佳实践的规则文件(.md)。当需要为项目制定专属的编码规则、测试规范、安全要求等指导时,可使用此技能。支持 paths frontmatter 中的条件性规则、合适的文件命名,以及合理的子目录结构。

SKILL.md
--- frontmatter
name: creating-rules
description: .claude/rules/ディレクトリにベストプラクティスに沿ったルールファイル(.md)を作成します。コーディングルール、テスト規約、セキュリティ要件などのプロジェクト固有の指示を作成する場合に使用します。paths frontmatterによる条件付きルール、適切なファイル名、サブディレクトリ構造をサポートします。

Creating Rules

.claude/rules/ディレクトリにベストプラクティスに沿ったルールファイルを作成する。

ワークフロー

1. 要件の確認

ユーザーに以下を確認:

  • ルールのトピック(例:コードスタイル、テスト、セキュリティ)
  • 対象ファイル(特定のパスに限定するか)
  • サブディレクトリに配置するか

2. ルールファイルの作成

ディレクトリ構造

code
.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 を参照。

要点:

  • 焦点を絞る: 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 + 動詞」で開始