AgentSkillsCN

conf-rules

新建与优化Rules。基于代码库分析与差距检测,生成并更新各领域的规则文件。当用户提出“添加规则”“制定规范”“更新编码规范”“开展规则差距分析”等需求时,可使用此功能。

SKILL.md
--- frontmatter
name: conf-rules
description: Rulesの新規作成・改善。コードベース分析とギャップ検出に基づき、ドメイン別のルールファイルを生成・更新する。ユーザーが「ルールを追加して」「規約を作成して」「コーディング規約を更新して」「ルールのギャップ分析をして」と言った場合に使用する。
disable-model-invocation: false
allowed-tools: Read, Glob, Grep, Write, Edit

Rules 作成・改善スキル

.claude/rules/ 配下のルールファイルを新規作成または改善する。ルールはClaude Codeの振る舞いを制御するドメイン別の知識定義。

使用タイミング

  • 新しいドメインのルールを追加したい場合(例: セキュリティ、DB、デザイン)
  • 既存ルールを改善・更新したい場合
  • コードベースの慣習が文書化されていない場合
  • CLAUDE.mdに詳細すぎる内容がありRulesへ移動したい場合

ルール vs スキル の判定

code
定義したい内容は?
├── 知識・制約(「常にXを使用する」「Yは禁止」)→ ルール
└── ワークフロー(「X→Y→Zの手順で実行」)→ スキル(/conf-skills を使用)

ワークフロー

ステップ1: 現状分析

既存ルールをスキャンし、全体像を把握する:

  • .claude/rules/ の全ファイルを読み取る
  • 各ファイルの行数・ドメイン・パスフィルタリング設定を記録する
  • CLAUDE.mdの規約セクションとの整合性を確認する

ステップ2: 判定

code
目的は?
├── 既存ルールの改善 → ステップ3a
├── 特定ドメインの新規ルール作成 → ステップ3b
└── 不足ルールの発見(ギャップ分析)→ ステップ3c

ステップ3a: 既存ルールの改善

各ルールファイルを以下のチェックリストで評価する:

改善チェックリスト:

  • 行数: 200行以下か?
  • 1ファイル=1ドメイン: 複数ドメインが混在していないか?
  • パスフィルタリング: 適用範囲が限定的なルールに paths フロントマターが設定されているか?
  • 具体性: 曖昧な表現(「適切に」「必要に応じて」)がないか?
  • 重複: 他のルールファイルと重複する内容がないか?
  • 実態との乖離: コードベースの実際のパターンと矛盾していないか?

改善提案をリスト形式でユーザーに提示する。

ステップ3b: 新規ルール作成

ユーザーの要求とコードベース分析に基づいて新規ルールを作成する。

情報収集チェックリスト:

  • 対象ドメインは何か?(code-style, testing, security, database, design, framework固有 等)
  • 適用パスは限定的か全体か?
  • コードベースに既に存在するパターン・慣習は何か?
  • 既存ルールとの関連・重複はないか?

テンプレートは templates.md を参照してルールファイルを生成する。

ステップ3c: ギャップ分析

コードベースを分析し、文書化されていないパターン・慣習を検出する:

  1. 主要ファイルのインポートパターン、命名規則、構造パターンを調査する
  2. 既存ルールでカバーされていないドメインを特定する
  3. 推奨ルール追加リストをユーザーに提示する

検出対象の例:

  • エラーハンドリングパターン
  • ログ出力規約
  • 認証・認可パターン
  • データバリデーション手法
  • 状態管理パターン

ステップ4: ユーザー確認と反映

  • 作成・改善内容をユーザーに提示し、承認を得てから反映する
  • CLAUDE.mdの規約セクション更新が必要な場合は提案する

ベストプラクティス

  • 3〜6ファイルに収める — 多すぎると管理困難、少なすぎるとドメインが混在する
  • 各ファイル200行以下 — 長すぎるファイルは分割する
  • 1ファイル=1ドメインcode-style.md, testing.md, security.md のように分離する
  • パスフィルタリング活用 — 特定パスにのみ適用するルールは paths フロントマターで限定する
  • 具体的に記述する — 「適切なエラーハンドリング」ではなく「try-catchでAppErrorクラスを使用する」のように
  • コードベースに基づく — 推測ではなく、実際のコードパターンからルールを抽出する