Rules Distill
インストール済みのスキルをスキャンし、複数のスキルに登場する横断的な原則を抽出し、ルールファイルに追加、既存コンテンツの修正、または新しいルールファイルを作成することで、ルールに昇格させます。
「決定論的収集 + LLM判断」の原則を適用します。スクリプトが事実を網羅的に収集し、LLMが完全なコンテキストをクロスリードして判定を下します。
使用するタイミング
- 定期的なルールメンテナンス(毎月、または新しいスキルをインストールした後)
- スキルストックテイクの結果、ルールにすべきパターンが見つかった場合
- 現在使用しているスキルに比べてルールが不完全だと感じる場合
動作の仕組み
ルール抽出プロセスは3つのフェーズで構成されます。
フェーズ1: インベントリ(決定論的収集)
1a. スキルインベントリの収集
bash ~/.claude/skills/rules-distill/scripts/scan-skills.sh
1b. ルールインデックスの収集
bash ~/.claude/skills/rules-distill/scripts/scan-rules.sh
1c. ユーザーへの表示
Rules Distillation — Phase 1: Inventory
────────────────────────────────────────
Skills: {N} files scanned
Rules: {M} files ({K} headings indexed)
Proceeding to cross-read analysis...
フェーズ2: クロスリード、マッチング、判定(LLM判断)
抽出とマッチングは1回のパスで統合されます。ルールファイルは十分に小さい(合計約800行)ため、全文をLLMに提供することができ、grepによる事前フィルタリングは不要です。
バッチ処理
スキルをその説明に基づいてテーマ別クラスターにグループ化します。各クラスターをサブエージェントで分析し、ルール全文を提供します。
バッチ間マージ
すべてのバッチが完了した後、バッチ間で候補をマージします。
- 同一または重複する原則を持つ候補を重複排除します。
- 「2つ以上のスキル」要件をすべてのバッチからの証拠を組み合わせて再確認します。バッチごとに1つのスキルで見つかった原則でも、合計で2つ以上のスキルで見つかれば有効です。
サブエージェントプロンプト
汎用エージェントを起動し、以下のプロンプトを送信します。
あなたはスキルをクロスリードしてルールに昇格させるべき原則を抽出するアナリストです。
## 入力
- スキル: {このバッチのスキルの全文}
- 既存ルール: {すべてのルールファイルの全文}
## 抽出基準
以下の**すべて**が真である場合にのみ、候補を含めてください。
1. **2つ以上のスキルに登場する**: 1つのスキルにのみ見られる原則は、そのスキルに留めるべきです。
2. **アクション可能な行動変革**: 「Xを実行する」または「Yを実行しない」の形で記述できること。「Xは重要である」は不可。
3. **明確な違反リスク**: この原則が無視された場合に何が問題になるか(1文で)。
4. **ルールにまだない**: ルール全文を確認すること。異なる表現で記述された概念も含む。
## マッチングと判定
各候補について、ルール全文と比較し、判定を割り当てます。
- **Append(追加)**: 既存のルールファイルの既存セクションに追加する。
- **Revise(修正)**: 既存のルールコンテンツが不正確または不十分である——修正案を提案する。
- **New Section(新規セクション)**: 既存のルールファイルに新しいセクションを追加する。
- **New File(新規ファイル)**: 新しいルールファイルを作成する。
- **Already Covered(既存カバー)**: 既存のルールで十分にカバーされている(表現が異なっていても)。
- **Too Specific(詳細すぎる)**: スキルレベルに留めるべきである。
## 出力形式(候補ごと)
```json
{
"principle":