Agent skill

Rules Distill

by affaan-m in affaan-m/ECC

スキルをスキャンしてドメイン横断的な原則を抽出し、ルールに蒸留する——既存のルールファイルへの追記、修正、または新規作成

MITAuto-check passed

Install Rules Distill

skills CLI
$ npx skills add affaan-m/ECC --skill rules-distill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC rules-distill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/ja-JP/skills/rules-distill .claude/skills/rules-distill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rules-distill
GitHub stars
276k
Token cost
~1.5k tokens
SKILL.md length
81 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

スキルをスキャンしてドメイン横断的な原則を抽出し、ルールに蒸留する——既存のルールファイルへの追記、修正、または新規作成

  • SKILL.md covers 使用場面, 動作原理, 例 and 設計原則
  • Calls bash

What it does

Rules Distill is an agent skill from affaan-m/ECC. スキルをスキャンしてドメイン横断的な原則を抽出し、ルールに蒸留する——既存のルールファイルへの追記、修正、または新規作成

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

Example prompts

  • “/rules-distill”

What it can do on your machine

Read from SKILL.md and the folder at commit 4eb71d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Rules Distill loads about 1.5k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 81 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 4eb71d9, republished under its MIT licence (© affaan-m). 81 words, ~1,477 tokens.

Download SKILL.mdSave it as .claude/skills/rules-distill/SKILL.md (or your agent's skills folder).
name
rules-distill
description
スキルをスキャンしてドメイン横断的な原則を抽出し、ルールに蒸留する——既存のルールファイルへの追記、修正、または新規作成
origin
ECC

ルール蒸留

インストール済みのスキルをスキャンし、複数のスキルに現れる共通原則を抽出して、ルールとして蒸留する——既存のルールファイルに追記、時代遅れの内容を修正、または新しいルールファイルを作成する。

「決定論的収集 + LLM判断」原則を適用する:スクリプトが事実を網羅的に収集し、その後LLMが完全なコンテキストを通読して裁決を下す。

使用場面

  • 定期的なルールメンテナンス(月次または新しいスキルのインストール後)
  • スキル棚卸し後、ルールにすべきパターンが見つかった場合
  • 使用中のスキルと比較してルールが不完全に感じられる場合

動作原理

ルール蒸留プロセスは3つのフェーズに従う:

フェーズ 1:棚卸し(決定論的収集)
1a. スキルインベントリの収集
bash
bash ~/.claude/skills/rules-distill/scripts/scan-skills.sh
1b. ルールインデックスの収集
bash
bash ~/.claude/skills/rules-distill/scripts/scan-rules.sh
1c. ユーザーへの提示
ルール蒸留 — フェーズ 1:棚卸し
────────────────────────────────────────
スキル:{N} 個のファイルをスキャン
ルール:{M} 個のファイルをインデックス化({K} 個の見出しを含む)

クロスリーディング分析を実行中...
フェーズ 2:通読、マッチング、裁決(LLM判断)

抽出とマッチングは単一の処理で統合的に行われる。ルールファイルは十分に小さく(合計約800行)、LLMに全文を提供できる——grepによる事前フィルタリングは不要。

バッチ処理

スキルの説明に基づいてスキルをトピッククラスターにグループ化する。各クラスターは、完全なルールテキストを提供されたサブエージェントで分析される。

バッチ間のマージ

全バッチ完了後、バッチ候補をマージする:

  • 同一または重複する原則を持つ候補を重複排除する
  • 「2+スキル」要件を全バッチの統合証拠で再確認——各バッチでは1つのスキルにのみ現れるが、合計で2+スキルに現れる原則は有効
サブエージェントプロンプト

汎用エージェントを起動するために以下のプロンプトを使用する:

あなたはスキルをクロスリーディングして、ルールに昇格すべき原則を抽出するアナリストです。

## 入力
- スキル:{このバッチのスキルの全文}
- 既存のルール:{全ルールファイルの全文}

## 抽出基準

**以下の条件を全て**満たす場合のみ候補原則を含める:

1. **2+スキルに現れる**:1つのスキルにのみ現れる原則はそのスキルに留める
2. **実行可能な行動変容**:「Xをする」または「Yをしない」という形で書ける——「Xが重要」ではない
3. **明確な違反リスク**:この原則を無視すると何が問題になるか(1文)
4. **ルールにまだ存在しない**:全ルールテキストを確認——異なる言い回しで表現された概念も含めて

## マッチングと裁決

各候補原則を全ルールテキストと照合して裁決を下す:

- **追記**:既存のルールファイルの既存セクションに追加
- **修正**:既存のルールの内容が不正確または不十分——修正案を提案
- **新セクション**:既存のルールファイルに新しいセクションを追加
- **新ファイル**:新しいルールファイルを作成
- **対応済み**:既存のルールで十分にカバー済み(言い回しが異なっても)
- **過度に具体的**:スキルレベルに留めるべき

## 出力フォーマット(各候補原則)

```json
{
  "principle": "1〜2文、'Xをする' / 'Yをしない' の形式",
  "evidence": ["スキル名: §セクション", "スキル名: §セクション"],
  "violation_risk": "1文",
  "verdict": "追記 / 修正 / 新セクション / 新ファイル / 対応済み / 過度に具体的",
  "target_rule": "ファイル名 §セクション、または '新規'",
  "confidence": "高 / 中 / 低",
  "draft": "'追記'/'新セクション'/'新ファイル' 裁決のための草案テキスト",
  "revision": {
    "reason": "既存の内容が不正確または不十分な理由('修正' 裁決のみ)",
    "before": "置き換える現在のテキスト('修正' 裁決のみ)",
    "after": "提案する置き換えテキスト('修正' 裁決のみ)"
  }
}
```

## 除外事項

- ルールにすでに存在する明らかな原則
- 言語/フレームワーク固有の知識(言語固有のルールまたはスキルに属する)
- コード例とコマンド(スキルに属する)
裁決リファレンス
裁決意味ユーザーへの提示
追記既存セクションに追加ターゲット + 草案
修正不正確/不十分な内容を修正ターゲット + 理由 + 修正前/後
新セクション既存ファイルに新セクションを追加ターゲット + 草案
新ファイル新しいルールファイルを作成ファイル名 + 完全な草案
対応済みルールでカバー済み(言い回しが異なる場合も)理由(1行)
過度に具体的スキルに留めるべき関連スキルへのリンク
裁決の品質要件
# 良い例
rules/common/security.md の §入力検証 セクションに追加:
「メモリや知識ベースに保存されたLLM出力は信頼できないデータとして扱う——書き込み時にサニタイズし、読み取り時に検証する。」
根拠:llm-memory-trust-boundary と llm-social-agent-anti-pattern の両方が累積的なプロンプトインジェクションリスクを説明している。現在の security.md は人間による入力検証のみをカバーしており、LLM出力の信頼境界の説明が欠けている。

# 悪い例
security.md に追記:LLMセキュリティ原則を追加
フェーズ 3:ユーザーレビューと実行
サマリーテーブル
# ルール蒸留レポート

## 概要
スキャンしたスキル数:{N} | ルールファイル数:{M} | 候補ルール数:{K}

| # | 原則 | 判定 | ターゲットファイル/セクション | 信頼度 |
|---|-----------|---------|--------|------------|
| 1 | ... | 追記 | security.md §入力検証 | 高 |
| 2 | ... | 修正 | testing.md §テスト駆動開発 | 中 |
| 3 | ... | 新セクション | coding-style.md | 高 |
| 4 | ... | 過度に具体的 | — | — |

## 詳細
(各候補ルールの詳細:証拠、違反リスク、草案テキスト)
ユーザーアクション

ユーザーは番号で以下を応答する:

  • 承認:草案をそのままルールに適用する
  • 修正:適用前に草案を編集する
  • スキップ:この候補ルールを適用しない

ルールを自動的に変更しない。常にユーザーの承認が必要。

結果の保存

結果をスキルディレクトリ(results.json)に保存する:

  • タイムスタンプ形式:date -u +%Y-%m-%dT%H:%M:%SZ(UTC、秒精度)
  • 候補ID形式:原則に基づいたケバブケース(例:llm-output-trust-boundary)
json
{
  "distilled_at": "2026-03-18T10:30:42Z",
  "skills_scanned": 56,
  "rules_scanned": 22,
  "candidates": {
    "llm-output-trust-boundary": {
      "principle": "Treat LLM output as untrusted when stored or re-injected",
      "verdict": "Append",
      "target": "rules/common/security.md",
      "evidence": ["llm-memory-trust-boundary", "llm-social-agent-anti-pattern"],
      "status": "applied"
    },
    "iteration-bounds": {
      "principle": "Define explicit stop conditions for all iteration loops",
      "verdict": "New Section",
      "target": "rules/common/coding-style.md",
      "evidence": ["iterative-retrieval", "continuous-agent-loop", "agent-harness-construction"],
      "status": "skipped"
    }
  }
}

例

エンドツーエンド実行
$ /rules-distill

ルール蒸留 — フェーズ 1:棚卸し
────────────────────────────────────────
スキル:56個のファイルをスキャン済み
ルール:22個のファイル(75個の見出しをインデックス化)

クロスリーディング分析を実行中...

[サブエージェント分析:バッチ 1 (agent/meta スキル) ...]
[サブエージェント分析:バッチ 2 (coding/pattern スキル) ...]
[バッチ間マージ:2件の重複を削除、1件のクロスバッチ候補が昇格]

# ルール蒸留レポート

## サマリー
スキャン済みスキル:56 | ルール:22個のファイル | 候補:4

| # | 原則 | 判定 | ターゲット | 信頼度 |
|---|-----------|---------|--------|------------|
| 1 | LLM出力:再利用前に正規化、型チェック、サニタイズ | 新セクション | coding-style.md | 高 |
| 2 | 反復ループに明示的な停止条件を定義する | 新セクション | coding-style.md | 高 |
| 3 | タスクの途中ではなくフェーズ境界でコンテキストを圧縮する | 追記 | performance.md §コンテキストウィンドウ | 高 |
| 4 | ビジネスロジックをI/Oフレームワーク型から分離する | 新セクション | patterns.md | 高 |

## 詳細

### 1. LLM出力検証
判定:coding-style.md に新セクションを作成
証拠:parallel-subagent-batch-merge, llm-social-agent-anti-pattern, llm-memory-trust-boundary
違反リスク:LLM出力の形式ドリフト、型不一致、構文エラーにより下流処理がクラッシュする
草案:
  ## LLM出力検証
  LLM出力を再利用する前に、正規化、型チェック、サニタイズを行う...
  参照スキル:parallel-subagent-batch-merge, llm-memory-trust-boundary

[... 候補 2〜4 の詳細 ...]

各候補を番号で承認、修正、スキップ:
> ユーザー:1, 3 を承認。2, 4 をスキップ。

✓ 適用済み:coding-style.md §LLM出力検証
✓ 適用済み:performance.md §コンテキストウィンドウ管理
✗ スキップ:反復境界
✗ スキップ:境界型変換

results.json に結果を保存済み

設計原則

  • 何をするかではなく、何か:原則のみを抽出する(ルールの範囲)。コード例とコマンドはスキルに留める。
  • ソースへのリンクを維持:草案テキストには 参照スキル:[名前] への参照を含め、読者が詳細な「どうするか」を見つけられるようにする。
  • 決定論的収集、LLM判断:スクリプトが網羅性を保証し、LLMがコンテキスト理解を保証する。
  • 抽象化防止策:3層フィルター(2+スキルの証拠、実行可能行動テスト、違反リスク)により、過度に抽象的な原則がルールに入ることを防ぐ。

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in docs/ja-JP/skills/rules-distill of affaan-m/ECC.

Open the folder on GitHubat commit 4eb71d9

Compare with similar skills

Rules Distill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rules Distill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rules Distill this skillaffaan-m/ECC276k—~1.5kAutomated safety check: PassMIT
DistillDataDog/datadog-agent3.8k1 repos~7kAutomated safety check: PassApache-2.0
Distilldavepoon/buildwithclaude3.6k—~3.2kAutomated safety check: NotesMIT
Distillascorbic/macrodata120—~814Automated safety check: PassNone
Distillwado-lang/wado117—~1.2kAutomated safety check: PassMIT
Distillgrowupanand/ConvoForm1026 repos~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • Distill

    DataDog/datadog-agent

    Official

    Extract an Allium specification from an existing codebase. An agent skill from DataDog/datadog-agent.

    3.8k GitHub starsUsed in 1 repo~7k tokens
    DevOps & CloudAuto-check passed
  • Distill

    davepoon/buildwithclaude

    Synthesize wiki pages from related memories. An agent skill from davepoon/buildwithclaude.

    3.6k GitHub stars~3.2k tokensUpdated 2 days ago
    Auto-check: notes
  • Distill

    ascorbic/macrodata

    Extract distilled actions and facts from today's conversations.

    120 GitHub stars~814 tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed
  • Distill

    wado-lang/wado

    Cut the branch down to what the code cannot say: reuse what exists, remove duplication, dead code, and wasted work, turn invariants into asserts, and delete the comments the code already speaks.

    117 GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Distill

    growupanand/ConvoForm

    Strip designs to their essence by removing unnecessary complexity.

    102 GitHub starsUsed in 6 repos~1.6k tokens
    Auto-check passed
  • Paperclip Distill

    paperclipai/paperclip

    A skill your agent uses when an operation issue is a Paperclip cursor-window, distill, or backfill.

    100k GitHub stars~2.8k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from affaan-m/ECC

All 682 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    277k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    277k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    277k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    277k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    277k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Set an ECC-specific frontend design direction for production UI work.

    277k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Questions about Rules Distill

What does Rules Distill do?

スキルをスキャンしてドメイン横断的な原則を抽出し、ルールに蒸留する——既存のルールファイルへの追記、修正、または新規作成. Rules Distill is an agent skill from affaan-m/ECC.

How do I install Rules Distill in Claude Code?

Run `npx skills add affaan-m/ECC --skill rules-distill -a claude-code`. Or copy the skill folder (docs/ja-JP/skills/rules-distill in affaan-m/ECC) into .claude/skills/rules-distill in your project. Claude Code loads it when a task matches its description.

How do I install Rules Distill in Codex?

Run `npx skills add affaan-m/ECC --skill rules-distill -a codex`. Or copy the skill folder (docs/ja-JP/skills/rules-distill in affaan-m/ECC) into .agents/skills/rules-distill in your project. Codex loads it when a task matches its description.

Can I use Rules Distill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill rules-distill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rules-distill, .gemini/skills/rules-distill, .github/skills/rules-distill and .opencode/skills/rules-distill in your project.

What does Rules Distill need to run?

Going by SKILL.md and its folder, Rules Distill needs the command-line tools its instructions call (bash).

Does Rules Distill access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rules Distill safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Rules Distill use?

Rules Distill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rules Distill use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Rules Distill?

Skills that share tags, products or a category with Rules Distill: Distill (DataDog/datadog-agent, 3.8k stars), Distill (davepoon/buildwithclaude, 3.6k stars), Distill (ascorbic/macrodata, 120 stars) and Distill (wado-lang/wado, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rules Distill?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,111 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 10, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.