Disk Cleaner Skill - Complete Feature Guide for All Agents
🚨 IMPORTANT: Emoji Usage Policy
- NEVER use emoji in script output - All scripts use ASCII-safe characters
- Scripts use:
[OK], [X], [!], [*], [i], [DIR], [FILE], [PKG], [x]
- This ensures compatibility with Windows GBK and other non-UTF-8 consoles
- DO NOT modify script output to add emoji - This will break cross-platform compatibility
For Agent-to-Human Communication (Recommended)
- SHOULD use emoji when reporting results to humans - Makes output more readable
- Use these emoji in your final reports to users:
✅ (Success) - Completed operations, successful scans
❌ (Error) - Failed operations, critical errors
⚠️ (Warning) - Warnings, issues that need attention
🔍 (Scanning) - Search/scan operations
📊 (Statistics) - Analysis results, statistics
📁 (Directory) - Directory-related information
📦 (Package) - Package/module information
🎉 (Success) - Celebratory messages for successful completion
🚨 (Critical) - Critical warnings
💡 (Tip) - Suggestions, recommendations
📋 (List) - Checklists, summaries
🔧 (Tool) - Tools, utilities
🌐 (Global) - Cross-platform, universal features
🛡️ (Safety) - Safety-related information
⚡ (Performance) - Performance improvements
📝 (Document) - Documentation
🎓 (Learning) - Educational content
📞 (Support) - Help, support information
📈 (Growth) - Improvements, gains
🎯 (Target) - Goals, objectives
🚀 (Launch) - Quick start, fast operations
🛠️ (Tools) - Tool-related features
Example:
📦 COMPLETE FEATURE LIST (READ THIS FIRST!)
🚨 CRITICAL: Progressive Scanning (MANDATORY for Large Disks)
- ✅ Quick Sample Mode: 1-second estimation of disk size and scan time
- ✅ Progressive Scan Mode: Get partial results in 30 seconds for large disks
- ✅ Smart Time Limits: Prevent users from waiting hours
- ✅ Real-time Feedback: Progress updates every 2 seconds
- ✅ Interruptible: Ctrl+C to get partial results
🔧 Intelligent Bootstrap (Auto-Detection & Import)
- ✅ Auto Location Detection: Searches 20+ common skill package locations
- ✅ Environment Variable Support: DISK_CLEANER_SKILL_PATH override
- ✅ Auto Module Import: Automatically imports diskcleaner modules
- ✅ Fallback Mechanisms: Works even if some features unavailable
- ✅ Cross-Platform Python Detection: Tries both 'python' and 'python3'
🌐 Universal Compatibility
- ✅ All AI IDEs: Cursor, Windsurf, Continue, Aider, Claude Code, etc.
- ✅ All Platforms: Windows, macOS, Linux (including Windows GBK console)
- ✅ All Installation Levels: Global, project, user level
- ✅ No Configuration Needed: Works out of the box
- ✅ Cross-Platform Encoding: All scripts use ASCII-safe output (v2.0+)
🛡️ Safety & Reliability
- ✅ Diagnostic Tool: check_skill.py - verifies all functionality
- ✅ Safe Encoding: All scripts use ASCII characters (no emoji in output)
- ✅ Safe Defaults: --dry-run for cleaning, smart limits for scanning
- ✅ Protected Paths: Never deletes system directories or executables
- ✅ Error Handling: Graceful degradation on errors
- ✅ GBK/UTF-8 Compatible: Works on Windows GBK, UTF-8, and all other encodings
- ✅ QuickProfiler: Fast sampling to estimate scan characteristics
- ✅ ConcurrentScanner: Multi-threaded I/O for 3-5x speedup
- ✅ os.scandir() Optimization: 3-5x faster than Path.glob
- ✅ IncrementalCache: Cache scan results for faster repeat scans
- ✅ Memory Monitoring: Auto-adapts based to available memory
- ✅ Early Stopping: Configurable file/time limits
- ✅ Enhanced Cache Detection: 26+ cache paths (was 8) - 225% improvement
🆕 v2.2+ New Features
- ✅ Duplicate File Detection: Find and remove duplicate files with adaptive strategies
- ✅ Growth Trend Analysis: Track disk usage over time, predict when disk will be full
- ✅ Interactive Wizard: Step-by-step guided cleanup with safety confirmations
- ✅ File Organization: Intelligent file archival and organization (4 strategies)
- ✅ Enhanced Scan Limits: 500K files (was 50K), 120s timeout (was 30s)
- ✅ Deep Scan Mode:
--deep-scan for unlimited scanning
- ✅ Windows Directory Support:
--include-windows for system directory scanning
📊 Available Scripts (13+ Total)
Core Analysis:
- analyze_disk.py - Disk analysis with smart sampling (enhanced v2.2)
- analyze_progressive.py - Progressive scanning for large disks
- find_duplicates.py - Duplicate file detection (NEW v2.2)
- analyze_growth.py - Growth trend analysis (NEW v2.2)
Cleaning & Organization:
5. clean_disk.py - Safe junk file cleaning (enhanced cache detection)
6. interactive_wizard.py - Interactive guided cleanup (NEW v2.2)
7. organize_files.py - File archival and organization (NEW v2.2)
Monitoring & Diagnostics:
8. monitor_disk.py - Disk usage monitoring
9. check_skill.py - Diagnostic tool
Developer Tools:
10. skill_bootstrap.py - Intelligent bootstrap module
11. package_skill.py - Package creation tool
12. scheduler.py - Automated scheduling
Use scripts/qq_cleanup_macos.zsh when QQ pictures or emojis consume excessive
space on macOS and chat records must remain intact.
-
Audit QQ storage without changing files:
-
Preview pictures and emojis older than 90 days:
-
Report the preview and obtain explicit approval. Quit QQ, then repeat the
approved command with --execute.
Never select nt_db, account roots, preferences, voice messages, videos, or
received files. The script accepts only Pic and Emoji, defaults to preview,
and refuses execution while QQ is running. Warn that removed local media might
no longer be available in old conversations.
🎯 KEY INSIGHT: Use Sub-Agents for Parallel Processing
This is one of the MOST POWERFUL features of disk-cleaner when used by AI Agents!
Why Use Multiple Agents?
Single-threaded scanning:
Multi-Agent parallel scanning:
When to Use Multi-Agent Mode?
✅ ALWAYS use when:
- Scanning multiple top-level directories (e.g., C:, D:, E:)
- Cleaning multiple user profiles
- Processing large file sets (>100K files)
- Time-critical operations
❌ Don't use when:
- Single small directory (<10K files)
- Quick analysis (<30 seconds)
- Simple cleanup tasks
How to Implement Multi-Agent Scanning
Option 1: Use Agent Tool (Recommended for Claude Code)
Option 2: Parallel Subprocess (Platform Independent)
Option 3: Multi-Platform Agent Team (Advanced)
For Agent-capable systems (Claude Code, Cursor with Agent support):
| Scenario | Single Agent | 3 Sub-Agents | Speedup |
|---|
| 3 disks (1TB each) | ~15 minutes | ~5 minutes | 3x |
| 10 user profiles | ~20 minutes | ~4 minutes | 5x |
| 1M files | ~30 minutes | ~6 minutes | 5x |
| Cache cleanup (26 locations) | ~8 minutes | ~2 minutes | 4x |
Recommended Agent Count
- Small job (<50K files): 1 agent (not worth overhead)
- Medium job (50K-500K files): 2-3 agents
- Large job (500K-2M files): 3-5 agents
- Massive job (>2M files): 5-8 agents
Sweet spot: 3-4 agents (best balance of speed vs overhead)
Best Practices
- Divide work logically: By disk, by user profile, by directory type
- Use consistent parameters: All agents use same scan limits
- Merge results carefully: Deduplicate, sort, format
- Handle failures gracefully: If one agent fails, continue others
- Monitor progress: Track which agents completed
⚠️ IMPORTANT: Not all AI IDEs support sub-agents. Fall back to parallel subprocess if unavailable.
📚 Documentation (Essential Files Only)
- SKILL.md - This complete guide (READ THIS FIRST)
- README.md - Project overview and quick start
- README_zh.md - Chinese documentation
- CHANGELOG.md - Version history and changes
- AGENT_QUICK_REF.txt - One-page reference for agents
- INSTALL.md - Detailed installation guide
- NO_PYTHON_GUIDE.md - Help for users without Python
- references/temp_locations.md - Platform-specific cache locations
🎯 AGENT CHECKLIST (Must Follow)
For ANY Disk Analysis Request:
For ANY Clean Request:
⚡ PROGRESSIVE SCANNING (CRITICAL FOR LARGE DISKS)
Universal Compatibility
- ✅ Works with ALL AI IDEs: Cursor, Windsurf, Continue, Aider, Claude Code, etc.
- ✅ Platform Independent: Windows, macOS, Linux
- ✅ Installation Agnostic: Works at global, project, or user level
- ✅ Self-Contained: No external dependencies, just Python 3.7+
The Only Requirement
⚡ PROGRESSIVE SCANNING (CRITICAL FOR LARGE DISKS)
🚨 AGENT MUST USE FOR LARGE DISKS (>100GB)
Problem: Full disk scan on large disks (500GB+) can take HOURS. Users will lose patience.
Solution: Use progressive scanning - get results in seconds, not hours!
📋 Three Scanning Modes
Mode 1: Quick Sample (⚡ FASTEST - 1 Second)
When to use: Get instant estimate of directory size and scan time
Output:
Agent Decision Logic:
Mode 2: Progressive Scan (🎯 RECOMMENDED FOR LARGE DISKS)
When to use: Get partial results in 30 seconds for large disks
Features:
- ✅ Real-time progress updates every 2 seconds
- ✅ Shows partial results as they're discovered
- ✅ Can interrupt with Ctrl+C and keep results
- ✅ Smart file count limit (50,000 by default)
Agent Usage:
Mode 3: Limited Scan (📊 FAST RESULTS)
When to use: Get results quickly with file/time limits
🎯 AGENT DECISION TREE (CRITICAL - FOLLOW THIS)
📝 Required Response Templates
When Quick Sample Shows < 30 Seconds
When Quick Sample Shows 30-120 Seconds
When Quick Sample Shows > 120 Seconds
💡 COPY-PASTE CODE (USE THIS)
⚠️ COMMON MISTAKES TO AVOID
❌ DON'T: Always run full scan without checking disk size first
✅ DO: Always run --sample first to estimate
❌ DON'T: Let users wait hours for large disk scan
✅ DO: Use --max-seconds 30 for large disks
❌ DON'T: Ignore estimated time from sample
✅ DO: Use estimate to choose appropriate scan mode
❌ DON'T: Run analyze_disk.py on 1TB disk without limits
✅ DO: Use analyze_progressive.py with --max-seconds
📊 Command Reference Card
| Situation | Command | Time | Result |
|---|
| Unknown size | --sample | 1s | Estimate + recommendation |
| < 30 seconds | analyze_disk.py | <30s | Full results |
| 30-120 seconds | --time-limit 60 | 60s | Most results |
| > 120 seconds | analyze_progressive.py --max-seconds 30 | 30s | Partial results |
| Very large disk | analyze_progressive.py --max-seconds 60 | 60s | More results |
🔍 How Progressive Scan Works
-
Quick Sample (1 second)
- Scans as many files as possible in 1 second
- Calculates scan rate (files/second)
- Estimates total scan time
- Gives immediate feedback
-
Progressive Scan (N seconds)
- Scans continuously for N seconds
- Shows progress every 2 seconds
- Collects results as it goes
- Returns whatever it found when time is up
- User can interrupt and keep partial results
-
Smart Stopping
- Stops automatically when time/file limit reached
- Graceful handling of interruption
- Partial results are still useful
🎯 BEST PRACTICE FOR AGENTS
- ALWAYS run
--sample first
- ALWAYS check estimated_time before choosing mode
- ALWAYS inform user about expected scan time
- ALWAYS use progressive mode for large disks (>2 minutes)
- NEVER let users wait more than 2 minutes without feedback
🎯 UNIVERSAL AGENT WORKFLOW
This workflow works on ANY platform, in ANY AI IDE, at ANY location.
STEP 1: Verify Python
STEP 2: Locate Skill Package
STEP 3: Verify Skill Package
STEP 4: Execute Operation
📋 QUICK REFERENCE (All IDEs)
⚠️ CRITICAL: Use Progressive Scanning for Large Disks!
BEFORE ANY DISK ANALYSIS:
- Run
--sample first to estimate scan time
- If > 2 minutes estimated, use progressive mode
- NEVER let users wait more than 2 minutes without feedback
Quick Reference:
User Intent → Operation Mapping
User Intent → Operation Mapping
| User Says | Operation | Command Template |
|---|
| "analyze disk" | analyze | python scripts/analyze_disk.py |
| "check disk space" | analyze | python scripts/analyze_disk.py --top 50 |
| "quick scan" | analyze | python scripts/analyze_disk.py --sample |
| "large disk analysis" | analyze | python scripts/analyze_progressive.py --max-seconds 30 |
| "clean temp files" | clean | python scripts/clean_disk.py --temp --dry-run |
| "preview cleanup" | clean | python scripts/clean_disk.py --dry-run |
| "monitor disk" | monitor | python scripts/monitor_disk.py |
| "disk usage" | monitor | python scripts/monitor_disk.py --json |
Progressive Scanning (For Large Disks)
Problem: Full disk scan can take hours on large disks (1TB+)
Solution: Use progressive scanning with time/file limits
Recommended workflow for large disks:
- First, run
--sample to get estimate (1 second)
- If estimate is too long, use
--max-seconds or --file-limit
- Or use
analyze_progressive.py for real-time feedback
| Platform | Python Command | Check Command |
|---|
| Windows | python | python --version |
| macOS | python3 | python3 --version |
| Linux | python3 | python3 --version |
Universal Command Template
🌐 Multi-IDE Compatibility
This skill package works with ALL AI IDEs that support:
Supported AI IDEs
- ✅ Cursor - Works as project or user-level skill
- ✅ Windsurf - Works at any location
- ✅ Continue - Works as global or project skill
- ✅ Aider - Works as agent tool
- ✅ Claude Code - Works as skill
- ✅ Any AI IDE - Works via subprocess
Installation by IDE Type
Project-Level Installation
User-Level Installation
Global Installation
🔧 IDE-Specific Notes
Cursor
Windsurf
Continue
Aider
Generic/Other IDEs
🎯 Complete Copy-Paste Template
⚡ PROGRESSIVE SCANNING CHECKLIST (CRITICAL)
Agent MUST Follow This for All Disk Analysis Requests:
Required Behavior by Disk Size:
Small Disk (< 30 seconds estimated):
- ✅ Run full scan
- ✅ No special handling needed
Medium Disk (30-120 seconds estimated):
- ✅ Use --time-limit
- ✅ Inform user of expected time
- ⚠️ Consider progressive mode if user seems impatient
Large Disk (> 120 seconds estimated):
- 🚨 MUST USE PROGRESSIVE MODE
- 🚨 MUST Inform user about time limit
- ✅ Explain partial results
- ✅ Offer full scan as option
REQUIRED Code Pattern:
🚨 Error Handling (Universal)
Error: Python not found
Error: Skill not found
Error: Permission denied
📝 Environment Variables (Optional)
You can optionally set these to help with auto-detection:
🎓 Best Practices for All Agents
- ALWAYS check Python first - Don't assume it's installed
- Use 'python3' on Unix - Use 'python' on Windows
- Search multiple locations - Don't assume single installation path
- Use subprocess with timeout - Prevent hanging
- Capture both stdout and stderr - Complete error information
- Prefer --dry-run for clean - Safety first
- Handle all exceptions - Graceful degradation
- Show helpful error messages - Guide users to solutions
🔍 Troubleshooting (Universal)
Problem: Skill works in one IDE but not another
Solution: The skill is IDE-agnostic. Check:
- Python is accessible from that IDE
- Skill package is in a searchable location
- File permissions allow execution
Solution: The skill handles platform differences. Check:
- Python command (
python vs python3)
- Path separators (auto-handled by pathlib)
- File permissions (Unix may need
chmod +x)
Problem: Can't find skill package
Solution: Run diagnostic:
📦 Package Contents (Universal)
✅ Universal Checklist
Before using this skill in ANY AI IDE:
This skill package works EVERYWHERE - just Python 3.7+ required!
No IDE-specific configuration needed. No platform-specific setup. No installation level restrictions.
Just extract and use!