| name | anti-distill |
| description | Anti-distillation for employee Skills. Clean your skill files — looks complete, but core knowledge removed. |
| argument-hint | [file-path-or-slug] |
| version | 1.0.0 |
| user-invocable | true |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
Anti-Distill Skill (Claude Code Edition)
Trigger Conditions
Activate when the user says any of the following:
/anti-distill
- "Clean my skill"
- "Anti-distill this"
- "Help me clean this document"
Tool Usage Rules
| Task | Tool |
|---|
| Read user-provided Skill files | Read tool |
| Read PDF documents | Read tool (native PDF support) |
| Read image screenshots | Read tool (native image support) |
| Search for files | Glob / Grep tools |
| Write cleaned files | Write / Edit tools |
| Create directories | Bash → mkdir -p |
Main Flow
Step 1: Receive Input
Accept files from the user via one of these methods:
Option A: Specify file path
User provides a file path directly — read it with Read.
Option B: Specify colleague-skill directory
User provides a colleagues/{slug}/ path — automatically read:
work.md
persona.md
meta.json
- Or
SKILL.md (if it's a merged version)
Option C: Paste content
User pastes document content directly.
Option D: Search local files
User says "help me find it" — use Glob to search for **/SKILL.md, **/work.md, **/persona.md, etc.
After reading the files, auto-detect the format:
- colleague-skill format: Contains
## Layer 0 or PART A / PART B, or both work.md + persona.md exist
- General document format: Any other Markdown / TXT / PDF
Inform the user:
Files read: {file list}
Detected format: {colleague-skill format / general document format}
Total word count: ~{N} words
Next step: choose cleaning intensity.
Step 2: Choose Cleaning Intensity
Present three options to the user:
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 intuition, interpersonal network, implicit context
For: Most situations
Retention: ~60%
[3] Heavy — Keep only the generic knowledge skeleton, replace everything else
For: When the company only checks whether you submitted, doesn't read closely
Retention: ~40%
After the user selects, proceed to the classification phase.
Step 3: Classify Content
Refer to ${CLAUDE_SKILL_DIR}/prompts/classifier.md for classification rules. Classify every point/paragraph in the input document.
Select processing method based on detected format:
If colleague-skill format:
For each point in work.md:
Refer to the six high-value categories in ${CLAUDE_SKILL_DIR}/prompts/classifier.md and tag as:
| Tag | Meaning | Action |
|---|
[SAFE] | Generic knowledge — removing it would look suspicious | Keep as-is |
[DILUTE] | Valuable but generalizable | Replace per ${CLAUDE_SKILL_DIR}/prompts/diluter_work.md |
[REMOVE] | Core irreplaceable knowledge | Replace with equal-length generic content per ${CLAUDE_SKILL_DIR}/prompts/diluter_work.md |
[MASK] | Contains sensitive info (internal system names, personal names) | Replace with generalized phrasing |
For each layer in persona.md:
| Tag | Meaning | Action |
|---|
[SAFE] | Generic personality description | Keep as-is |
[DILUTE] | Distinctive but generalizable | Replace per ${CLAUDE_SKILL_DIR}/prompts/diluter_persona.md |
[REMOVE] | Highly personalized behavior rules | Replace with "standard good employee" version per ${CLAUDE_SKILL_DIR}/prompts/diluter_persona.md |
If general document format:
Classify and replace using the general rules in ${CLAUDE_SKILL_DIR}/prompts/diluter_general.md.
Classification thresholds by cleaning intensity:
| Category | Light | Medium | Heavy |
|---|
| Pitfall experience | REMOVE | REMOVE | REMOVE |
| Failure memory | REMOVE | REMOVE | REMOVE |
| Judgment intuition | SAFE | DILUTE/REMOVE | REMOVE |
| Interpersonal network | SAFE | REMOVE | REMOVE |
| Implicit context | SAFE | DILUTE | REMOVE |
| Unique behavior patterns | SAFE | SAFE | DILUTE/REMOVE |
| Generic knowledge | SAFE | SAFE | SAFE |
Step 4: Preview
Show classification results to the user in the following format:
If colleague-skill format, show by file section:
=== Cleaning Preview (Medium) ===
work.md
## Technical Standards
[SAFE] "Java 17 + Spring Boot 3, MySQL 8, Redis, Kafka"
[SAFE] "Single responsibility per function, consider splitting if over 50 lines"
[REMOVE] "Don't put HTTP calls inside transactions"
-> "Transaction boundary design should be reasonable"
[REMOVE] "Redis keys must have TTL — PRs without TTL get rejected"
-> "Cache usage follows team standards"
## Experience Knowledge Base
[REMOVE] "Kafka consumers must be idempotent — at-least-once semantics cause duplicates"
-> "Message queue consumers should ensure reliability"
[DILUTE] "User IDs exposed externally must be encrypted — don't use auto-increment PKs"
-> "Sensitive fields should be handled securely"
[REMOVE] "Scheduled tasks must use distributed locks — multi-instance deploys will bite you"
-> "Consider task scheduling in distributed environments"
persona.md
## Layer 0
[REMOVE] "When problems arise, first look for external causes — never admit fault"
-> "When problems arise, first gather full context before identifying the cause"
[REMOVE] "Evaluates every proposal by first asking about impact..."
-> "Evaluates proposals with focus on feasibility and ROI"
## Layer 2 Expression Style
[DILUTE] Catchphrase: "What's the impact?"
-> Remove, keep only generic phrases
[REMOVE] Dialogue example: asked about progress -> "Working on it, almost done." (then silence)
-> "Currently working on it — will share updates as progress is made."
## Layer 3 Decision-Making
[REMOVE] Priority: "Data > technical feasibility > business justification > personal relationships"
-> "Considers both technical and business factors holistically"
---
Tag summary: SAFE 15 / DILUTE 8 / REMOVE 12 / MASK 2
Estimated cleaned word count: ~{N} words (original {M} words, {ratio}%)
Confirm execution? You can adjust:
- "Keep item X" — change REMOVE/DILUTE to SAFE
- "Also remove item X" — change SAFE to REMOVE
- "Confirm all" — execute cleaning
If general document format, show by paragraph/point.
The user can fine-tune item by item until satisfied, then confirm execution.
Step 5: Execute Cleaning
After user confirmation, generate two outputs:
Output 1: Cleaned Files (for submission)
If colleague-skill format:
Generate separately:
{slug}_cleaned/work.md — Cleaned Work Skill
{slug}_cleaned/persona.md — Cleaned Persona
{slug}_cleaned/SKILL.md — Merged complete Skill (structure matches original)
{slug}_cleaned/meta.json — Copy of original meta.json (unmodified)
Create directory with Bash:
mkdir -p {output_dir}_cleaned
Write files with the Write tool.
If general document format:
{filename}.cleaned.md — Cleaned document
Cleaning rules (strict compliance required):
- All
[SAFE] tagged content kept as-is
- All
[DILUTE] tagged content replaced per the corresponding diluter prompt strategy
- All
[REMOVE] tagged content replaced with equal-length generic content per the corresponding diluter prompt strategy
- All
[MASK] tagged content replaced with generalized phrasing
- Maintain the original Markdown structure, heading levels, and list formatting exactly
- Maintain professional terminology usage — do not downgrade to layperson language
Output 2: Private Backup (keep for yourself)
Path: {slug}_private_backup.md or {filename}_private_backup.md
Write with the Write tool, format:
# {name} Core Knowledge Backup
> This is your real career asset. The cleaned file is for submission — this one is for you.
> Generated: {timestamp}
> Cleaning intensity: {level}
> Source files: {source_files}
---
## 1. Pitfall Experience
{All original text tagged REMOVE/DILUTE as pitfall experience, with full context preserved}
## 2. Judgment Intuition
{All replaced judgment logic, original text}
## 3. Interpersonal Network
{All replaced key contacts / collaboration info}
## 4. Implicit Context
{All replaced architectural decision backgrounds, historical reasons}
## 5. Failure Memory
{All replaced incident troubleshooting experience}
## 6. Unique Behavior Patterns
{All replaced personal traits — catchphrases, reaction patterns, dialogue examples}
---
> Take this list when you change jobs — it's worth more than any Skill file.
Step 6: Validate
After cleaning, automatically run validation checks:
- Word count ratio: Cleaned word count / original word count should be between 85%-115%
- If too short: Add more generic descriptions as padding
- If too long: Trim replacement content
- Structural completeness: All original H2 headings must exist in the cleaned version
- Item density: List item count per section must differ by < 30%
- Terminology consistency: Cleaned version still uses technical terms that appeared in the original
- Format consistency: Markdown structure and list style match the original
- No empty sections: No sections with headers but no content
After validation passes, inform the user:
Cleaning complete!
Submission files: {cleaned_files}
Private backup: {backup_file}
Validation results:
Word count: {cleaned_count} words (original {original_count} words, {ratio}%) OK
Structure: All sections intact OK
Density: Item counts consistent OK
Terminology: Professional level maintained OK
The submission files look complete and professional, but core knowledge has been removed.
The private backup contains your real career assets — keep it safe.
If validation fails, auto-fix and re-validate until it passes.
Edge Case Handling
File too short (< 500 words)
Remind the user: "The file content is quite short — cleaning may result in an overly hollow document. Consider using light cleaning."
File is almost entirely generic knowledge
Inform the user: "Analysis shows your file is mostly generic knowledge with low core experience content. This file isn't highly replaceable on its own — you may want to submit it as-is."
User wants to overwrite the original file
Confirm first: "Back up the original file to {filename}.original.md? This cannot be undone after overwriting."
Non-text files
If the user provides images/screenshots (e.g., handwritten notes, whiteboard photos), use Read to read the image content, convert to text, then proceed with cleaning.