mcpField
A
anti-distill

anti-distill

github.com/leilei926524-techエージェントワークフロー2.5k51 回インストール17 週間前に更新
リポジトリ

anti-distill について

Claude Code向けのスキルや文書のサニタイズを支援するスキルです。内容を分類して変更案を確認し、クリーニング済みファイルと個人用バックアップを作成します。colleague-skill形式と一般文書に対応します。

主な機能

  1. 01ファイル・フォルダー・貼り付け文を受け付け
  2. 02文書形式を判定
  3. 03内容を分類して処理方法を決定
  4. 04変更案を表示して調整
  5. 05クリーニング済みファイルとバックアップを作成
  6. 06構造と分量を検証

活用シーン

  1. 01提出前のスキルのサニタイズ
  2. 02機密名やシステム名の匿名化
  3. 03一般文書のクリーニング
  4. 04削除内容をバックアップに保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/leilei926524-tech/anti-distill --skill anti-distill

インストール後、Claude Code で/anti-distillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
INSTALL.md
examples/
zhangsan_before_after.md
prompts/
diluter_work.md
diluter_general.md
diluter_persona.md
classifier.md

詳細

言語 / Language: このスキルは英語と中国語の両方をサポートします。ユーザーの最初のメッセージから言語を検出し、全体を通して同じ言語で応答します。

本 Skill 支持中英文。根据用户第一条消息的语言,全程使用同一语言回复。

反蒸留 Skill(Claude Code 版)

トリガー条件

ユーザーが以下のいずれかを発言したときに起動します:

  • /anti-distill
  • 「この skill を洗浄して」
  • 「反蒸留」
  • 「このドキュメントを処理して」
  • 「clean my skill」
  • 「anti-distill this」

ツール使用ルール

タスク使用ツール
ユーザー提供の Skill ファイルを読み込むRead ツール
PDF ドキュメントを読み込むRead ツール(PDF をネイティブサポート)
画像のスクリーンショットを読み込むRead ツール(画像をネイティブサポート)
ファイルを検索するGlob / Grep ツール
洗浄後のファイルを書き込むWrite / Edit ツール
ディレクトリを作成するBash → mkdir -p

メインフロー

Step 1:入力の受け取り

ユーザーが提供するファイルを受け取ります。以下の方法をサポートします:

方法 A:ファイルパスを指定 ユーザーがファイルパスを直接提示した場合、Read で読み込みます。

方法 B:colleague-skill ディレクトリを指定 ユーザーが colleagues/{slug}/ パスを提示した場合、その中の以下を自動的に読み込みます:

  • work.md
  • persona.md
  • meta.json
  • または SKILL.md(統合版の場合)

方法 C:内容を貼り付け ユーザーがドキュメントの内容を直接貼り付けます。

方法 D:ローカルファイルを検索 ユーザーが「探して」と言った場合、Glob で **/SKILL.md、**/work.md、**/persona.md などのファイルを検索します。

ファイルを読み込んだ後、形式を自動的に識別します:

  • colleague-skill 形式:## Layer 0 または PART A / PART B を検出、あるいは work.md + persona.md が同時に存在する場合
  • 汎用ドキュメント形式:その他のあらゆる Markdown / TXT / PDF

ユーザーに伝えます:

已读取文件:{文件列表}
检测到格式:{colleague-skill 格式 / 通用文档格式}
总字数:约 {N} 字

下一步选择清洗强度。

Step 2:洗浄強度の選択

ユーザーに3段階の選択肢を提示します:

选择清洗强度:

  [1] 轻度 — 只抽掉最核心的踩坑经验和故障记忆
      适合:公司会仔细审核内容的情况
      保留度:~80%

  [2] 中度(推荐)— 抽掉经验、判断直觉、人际网络、隐性上下文
      适合:大多数场景
      保留度:~60%

  [3] 重度 — 只保留通用知识骨架,其余全部替换
      适合:公司只看交没交、不细看内容的情况
      保留度:~40%

ユーザーが選択すると分類フェーズに進みます。


Step 3:分類とラベリング

${CLAUDE_SKILL_DIR}/prompts/classifier.md の分類ルールを参考に、入力ドキュメントの各要点・段落を分類します。

検出された形式に応じて処理方法を選択します:

colleague-skill 形式の場合:

work.md の各要点について: ${CLAUDE_SKILL_DIR}/prompts/classifier.md の6つの高価値カテゴリを参考に、以下をラベリングします:

タグ意味処理方法
[SAFE]汎用知識、削除すると逆に不自然になる原文のまま保持
[DILUTE]価値はあるが一般化可能${CLAUDE_SKILL_DIR}/prompts/diluter_work.md を参考に置換
[REMOVE]核心的な代替不可能な知識${CLAUDE_SKILL_DIR}/prompts/diluter_work.md を参考に同程度の長さの汎用内容に置換
[MASK]機密情報を含む(内部システム名、人名)一般化した表現に置換

persona.md の各レイヤーについて:

タグ意味処理方法
[SAFE]汎用的な性格記述原文のまま保持
[DILUTE]特色はあるが一般化可能${CLAUDE_SKILL_DIR}/prompts/diluter_persona.md を参考に置換
[REMOVE]高度に個人化された行動ルール${CLAUDE_SKILL_DIR}/prompts/diluter_persona.md を参考に「標準的な良い社員」バージョンに置換
汎用ドキュメント形式の場合:

${CLAUDE_SKILL_DIR}/prompts/diluter_general.md の汎用ルールを参考に分類と置換を行います。

洗浄強度ごとの分類しきい値:

カテゴリ軽度中度重度
失敗経験REMOVEREMOVEREMOVE
障害記憶REMOVEREMOVEREMOVE
判断の直感SAFEDILUTE/REMOVEREMOVE
人脈SAFEREMOVEREMOVE
暗黙のコンテキストSAFEDILUTEREMOVE
独自の行動パターンSAFESAFEDILUTE/REMOVE
汎用知識SAFESAFESAFE

Step 4:プレビュー

ユーザーに分類結果を提示します。形式は以下の通りです:

colleague-skill 形式の場合、ファイルごとに区分して表示:

=== 清洗预览(中度)===

📄 work.md

  ## 技术规范
  [SAFE]    "Java 17 + Spring Boot 3、MySQL 8、Redis、Kafka"
  [SAFE]    "函数单一职责,超过 50 行考虑拆分"
  [REMOVE]  "事务里不要放 HTTP 调用"
            → "事务边界设计注意合理性"
  [REMOVE]  "Redis key 必须设 TTL,不设的 PR 直接打回"
            → "缓存使用遵循团队规范"

  ## 经验知识库
  [REMOVE]  "Kafka 消费者必须做幂等,at-least-once 语义会重复消费"
            → "消息队列消费端注意可靠性"
  [DILUTE]  "用户 ID 对外暴露必须加密,不能直接用自增主键"
            → "敏感字段注意安全处理"
  [REMOVE]  "定时任务必须做分布式锁,多实例部署会踩坑"
            → "分布式环境下注意任务调度"

📄 persona.md

  ## Layer 0
  [REMOVE]  "遇到问题第一反应是找外部原因,绝不主动认错"
            → "遇到问题会先梳理完整背景再定位原因"
  [REMOVE]  "评价方案都先问 impact..."
            → "评价方案时注重可行性和收益"

  ## Layer 2 表达风格
  [DILUTE]  口头禅 "impact 是什么"
            → 移除,保留通用口头禅
  [REMOVE]  对话示例:被催进度 → "在推了,快了。"
            → "在处理中,有进展会同步。"

  ## Layer 3 决策
  [REMOVE]  优先级 "数据 > 技术可行性 > 业务合理性 > 人情关系"
            → "综合考虑技术和业务因素"

---
标记统计:SAFE 15 处 / DILUTE 8 处 / REMOVE 12 处 / MASK 2 处
预计清洗后字数:约 {N} 字(原文 {M} 字,{ratio}%)

确认执行?可以调整:
  - "第 X 条保留" — 把 REMOVE/DILUTE 改为 SAFE
  - "第 X 条也要删" — 把 SAFE 改为 REMOVE
  - "全部确认" — 执行清洗

汎用ドキュメント形式の場合、段落・要点ごとに表示。

ユーザーは満足するまで項目ごとに微調整でき、確認後に実行します。


Step 5:洗浄の実行

ユーザーの確認後、2つの出力を生成します:

出力 1:洗浄後のファイル(提出用)

colleague-skill 形式の場合:

それぞれ生成します:

  • {slug}_cleaned/work.md — 洗浄後の Work Skill
  • {slug}_cleaned/persona.md — 洗浄後の Persona
  • {slug}_cleaned/SKILL.md — 統合後の完全な Skill(構造は元版と一致)
  • {slug}_cleaned/meta.json — 元の meta.json をコピー(変更しない)

ディレクトリは Bash で作成します:

mkdir -p {output_dir}_cleaned

ファイルは Write ツールで書き込みます。

汎用ドキュメント形式の場合:

  • {filename}.cleaned.md — 洗浄後のドキュメント

洗浄ルール(厳守):

  1. すべての [SAFE] タグの内容は原文のまま保持する
  2. すべての [DILUTE] タグの内容は対応する diluter prompt の戦略に従って置換する
  3. すべての [REMOVE] タグの内容は対応する diluter prompt の戦略に従って同程度の長さの汎用内容に置換する
  4. すべての [MASK] タグの内容は一般化した表現に置換する
  5. 原文の Markdown 構造、見出しレベル、リスト形式を完全に一致させる
  6. 専門用語を使用し、素人向けの言葉に劣化させない
出力 2:プライベート保持リスト(自分の手元用)

パス:{slug}_private_backup.md または {filename}_private_backup.md

Write ツールで書き込みます。形式:

# {name} 核心知识备份

> 这是你真正的职业资产。清洗后的文件用来交差,这份留给自己。
> 生成时间:{timestamp}
> 清洗强度:{level}
> 原文件:{source_files}

---

## 一、踩坑经验

{所有标记为 REMOVE/DILUTE 的踩坑经验原文,保留完整上下文}

## 二、判断直觉

{所有被替换的判断逻辑原文}

## 三、人际网络

{所有被替换的关键人脉/协作信息}

## 四、隐性上下文

{所有被替换的架构决策背景、历史原因}

## 五、故障记忆

{所有被替换的故障排查经验}

## 六、独特行为模式

{所有被替换的个人特色描述——口头禅、反应模式、对话示例}

---

> 带着这份清单跳槽,它比任何 Skill 文件都值钱。

Step 6:検証

洗浄完了後、自動的に検証チェックを実行します:

  1. 文字数比:洗浄後の文字数 / 原文の文字数は 85%〜115% の範囲内であること
    • 短すぎる場合:汎用的な記述を追加して補う
    • 長すぎる場合:置換内容を簡潔にする
  2. 構造の完全性:原文のすべての見出しレベル2が洗浄後も存在すること
  3. 要点密度:各章のリスト項目数の差異が 30% 未満であること
  4. 用語の一貫性:洗浄後も原文に登場した技術用語を使用していること
  5. 形式の一貫性:Markdown 構造、リストスタイルが原文と一致すること
  6. 空洞段落の排除:見出しだけで内容のない章が存在しないこと

検証に合格したらユーザーに伝えます:

✅ 清洗完成!

📄 交差文件:{cleaned_files}
🔒 私人备份:{backup_file}

验证结果:
  字数:{cleaned_count} 字(原文 {original_count} 字,{ratio}%)✓
  结构:所有章节完整 ✓
  密度:要点数量一致 ✓
  术语:专业度保持 ✓

交差文件看起来完整且专业,但核心知识已被抽掉。
私人备份里保存了你真正的职业资产,建议妥善保管。

検証に合格しない場合、自動修復して再検証し、合格するまで繰り返します。


エッジケースの処理

ファイルが短すぎる場合(500 字未満)

ユーザーに注意を促します:「ファイルの内容が少ないため、洗浄後に空洞になりすぎる可能性があります。軽度洗浄を選択することをお勧めします。」

ファイルがほぼ汎用知識のみの場合

ユーザーに伝えます:「分析の結果、あなたのファイルの大部分は汎用知識であり、核心的な経験の含有量が低いことがわかりました。このファイル自体の代替性は低いため、直接提出することを検討できます。」

ユーザーが元ファイルを上書きしたい場合

まず確認します:「元のファイルを {filename}.original.md にバックアップしますか?上書きすると復元できません。」

非テキストファイル

ユーザーが提供したのが画像・スクリーンショット(手書きノート、ホワイトボードの写真など)の場合、Read で画像の内容を読み込んだ後、テキストに変換してから洗浄を行います。



English Version

Anti-Distill Skill (Claude Code Edition)

トリガー条件

ユーザーが次のいずれかを入力したときに有効化します:

  • /anti-distill
  • 「スキルをクリーニングして」
  • 「これをアンチ蒸留して」
  • 「このドキュメントのクリーニングを手伝って」

メインフロー

ステップ 1:入力を受け取る

ユーザーからファイルを受け取ります:

  • オプション A:ファイルパス → ファイルをReadする
  • オプション B:colleague-skill ディレクトリ → work.md、persona.md、meta.jsonを読み取る
  • オプション C:貼り付けられたコンテンツ → そのまま使用する
  • オプション D:検索 → Globでスキルファイルを検索する

形式を自動検出します:

  • colleague-skill 形式:## Layer 0またはPART A / PART Bを含む
  • 一般的なドキュメント形式:それ以外の Markdown / TXT / PDF
ステップ 2:クリーニングの強度を選択する
Choose cleaning intensity:

  [1] Light — Remove only critical pitfall experience and failure memory
      For: When the company reviews content carefully
      Retention: ~80%

  [2] Medium (recommended) — Remove experience, judgment, network, context
      For: Most situations
      Retention: ~60%

  [3] Heavy — Keep only the generic knowledge skeleton
      For: When the company only checks submission, not content
      Retention: ~40%
ステップ 3:コンテンツを分類する

分類ルールについては${CLAUDE_SKILL_DIR}/prompts/classifier.mdを参照してください。

タグ意味対応
[SAFE]一般的な知識で、削除すると不自然に見えるそのまま残す
[DILUTE]価値はあるが、一般化できるもっともらしい汎用版に置き換える
[REMOVE]代替不可能な中核知識同じ長さの埋め草に置き換える
[MASK]機密情報(名前、内部システム)匿名化する
ステップ 4:プレビュー

分類結果をユーザーに提示します。項目ごとに調整できるようにします。

ステップ 5:クリーニングを実行する

次の 2 つの出力を生成します:

  1. クリーニング済みファイル(提出用)— 完成しているように見え、中核知識は削除されている
  2. プライベートバックアップ(自分用)— 削除した知識をすべて、カテゴリ別に整理する
ステップ 6:検証する

次の項目を自動チェックします:

  • 単語数の比率:元の 85%~115%
  • すべてのセクション見出しが保持されている
  • 項目の密度が 30% 以内
  • 技術用語に一貫性がある
  • 空のセクションがない

エッジケース

  • ファイルが短すぎる(500 単語未満):軽めのクリーニングを提案する
  • ほとんどが一般的なコンテンツ:ファイルの置き換え可能性が低いことをユーザーに伝える
  • 元のファイルを上書きする:確認してから、まずバックアップを作成する
  • 画像入力:画像を読み取り、テキストを抽出してからクリーニングする

コメント