vps-cleanup — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited vps-cleanup (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Systematic approach to cleaning up VPS disk space — analyze files, categorize by importance, safely delete temporary/old data without losing critical files.
# Check disk usage
df -h /
# Analyze home directory
cd /home/ubuntu
du -sh * 2>/dev/null | sort -h
# Check large directories
du -h --max-depth=1 | sort -h | tail -20For each file/directory, assess:
| Category | Keep? | Examples |
|---|---|---|
| Backups | ✅ Keep | *.zip, *.tar.gz with "backup" in name |
| System | ✅ Keep | snap/, .cache/, .local/ |
| Active projects | ✅ Keep | Current development work |
| Temporary workspaces | ❌ Delete | Analysis folders, test directories |
| Old archives | ❌ Delete | Extracted folders + their .tar.gz (duplicates) |
| Generated outputs | 🟡 Optional | PNGs, reports (if source exists) |
| Source files | 🟡 Optional | .html if .png generated, .drawio if exported |
Create analysis table:
files = {
'file.zip': {
'size': '135M',
'type': 'backup',
'keep': True,
'reason': 'Important backup'
},
'temp-workspace/': {
'size': '538M',
'type': 'workspace',
'keep': False,
'reason': 'Temporary analysis, reports done'
},
# ... more files
}Calculate:
Show user:
Format:
✅ KEEP (IMPORTANT)
135M backup.zip Important backup
2.4M snap/ System directory
❌ CAN DELETE (NOT IMPORTANT)
538M temp-workspace/ Temporary, work done
1.2M diagrams/ PNGs generatedCRITICAL: Always confirm before deleting, especially for:
Ask:
# Delete directories
rm -rf ~/temp-workspace/
rm -rf ~/old-project/
# Delete files
rm ~/old-archive.tar.gz
rm ~/report.md
# Verify
ls -lh ~/
df -h /Safety checks:
rm -rf only for confirmed directoriesWhen user says "delete semua yang gak penting" or "delete all unimportant":
DO:
DON'T:
When presenting cleanup plan, user may respond:
User's decision-making pattern:
Projects (e.g., oh-my-china/):
🟡 AMBIGUOUS: oh-my-china/ (340 MB)
Type: Project
Question: "Masih aktif develop atau cuma testing?"
If active → KEEP
If testing → DELETEGenerated outputs:
🟡 OPTIONAL: diagram.png (4 MB)
Type: Output
Question: "Masih perlu atau gak?"
If needed → KEEP
If done → DELETEPatterns:
*-analysis/, *-test/, *-workspace/Indicators:
Example:
hermes-analysis/ # 538 MB
├─ 10 cloned repos
├─ ANALYSIS_REPORT.md (done)
└─ install script (used)
→ DELETE (reports done, repos installed elsewhere)Pattern: Both .tar.gz AND extracted folder exist
Example:
gmail_research/ # 100 KB (extracted)
gmail_research_2026-05-01.tar.gz # 20 KB (archive)
→ DELETE BOTH (duplicate, old data)Patterns:
*_REPORT.md, *_AUDIT.mdExample:
VPS_SECURITY_AUDIT_REPORT.md # 12 KB
VPS_SECURITY_HARDENING_REPORT.md # 12 KB
→ DELETE (hardening done, info applied)Pattern: Source exists, output generated
Example:
ai-promo.html # 16 KB (source)
ai-promo.png # 4 MB (output)
→ DELETE SOURCE (output is final)Patterns:
*-backup-*.zip, *.tar.gz with datesExample:
hermes-backup-2026-05-03.zip # 135 MB
→ KEEP (important backup!)Patterns:
snap/, .cache/, .local/, .config/.hermes/, .ssh/)Example:
snap/ # 2.4 MB
.hermes/ # 2.6 GB
→ KEEP (system/application data)CRITICAL: Before recommending ANY tool installation, evaluate resource cost against VPS constraints.
User tolerance:
Evaluation criteria:
| Resource | Threshold | Action |
|---|---|---|
| Disk < 50 MB | ✅ Safe | Install without asking |
| Disk 50-500 MB | 🟡 Moderate | Ask first, explain cost |
| Disk > 500 MB | 🔴 Heavy | Find alternative or skip |
| RAM < 50 MB | ✅ Safe | Install without asking |
| RAM 50-100 MB | 🟡 Moderate | Ask first, explain cost |
| RAM > 100 MB | 🔴 Heavy | Find alternative or skip |
Example rejection (Scrapling, session 2026-05-12):
User: "Cek Scrapling bagus gak?"
Analysis:
- Disk: 650-900 MB (7.0 MB library + browser dependencies)
- RAM: 200-400 MB per session (browser automation)
- VPS: 2GB RAM, 40GB disk
- Features: Powerful (adaptive parsing, Cloudflare bypass, spider framework)
Comparison with TinyFish:
- TinyFish: 0 MB disk, 0 MB RAM (cloud API)
- Scrapling: 650-900 MB disk, 200-400 MB RAM (local)
User response: "gede banget makan emori dan ram"
Decision: SKIP ❌ → Recommend TinyFish instead
Lesson: User has ZERO tolerance for heavy tools.
Always check resource cost BEFORE recommending.
When tool is heavy, immediately suggest lightweight alternative (API/cloud).User's exact rejection pattern:
Alternative strategies:
Common heavy tools and their costs:
| Tool | Disk | RAM (idle) | RAM (active) | Alternative |
|---|---|---|---|---|
| Chrome/Chromium | 300-400 MB | 0 MB | 150-300 MB/instance | Browserbase (cloud) |
| Scrapling | 650-900 MB | 50 MB | 200-400 MB | requests + BeautifulSoup |
| Playwright | 400-500 MB | 0 MB | 200-300 MB | Browserbase (cloud) |
| Selenium | 350-450 MB | 0 MB | 150-250 MB | Browserbase (cloud) |
enowxai v1.2.0 specific:
Problem: Suggesting file cleanup without checking references, purpose, or user preference.
Solution:
grep -r filename)Example (from session 2026-05-12):
User: "hapus file2 yang gak perlu"
❌ WRONG: Immediately recommend deleting marketing files
✅ RIGHT: Analyze all files, check references, present findings:
- Marketing files (7.5 KB): Not referenced, but useful for sharing
- Deep docs (42 KB): Redundant with README, but valuable for advanced users
- Total size: 284 KB (tiny, not worth cleanup)
- Recommendation: Keep all (every file has purpose, size is negligible)Problem: User says "delete all", you delete backups too.
Solution:
Problem: Large project directory looks like temporary workspace.
Solution:
.git/ (active repo)Problem: User doesn't understand why something is kept/deleted.
Solution:
Problem: User says "delete unimportant", you delete immediately.
Solution:
Problem: Delete files but don't show impact.
Solution:
After cleanup:
# Check disk space
df -h /
# Check home directory
ls -lh ~/
# Verify critical files still exist
ls ~/.hermes/
ls ~/snap/Success criteria:
CAUTION: Only clean ~/.hermes/ if user explicitly requests or disk critically low.
# Check size
du -sh ~/.hermes/
# Analyze subdirectories
du -h ~/.hermes/ --max-depth=1 | sort -h
# Safe to clean:
- Old sessions: hermes sessions prune --older-than 30d
- Cache: rm -rf ~/.hermes/.cache/
- Logs: rm ~/.hermes/*.log
# DO NOT delete:
- config.yaml
- memories/
- skills/
- sessions.db (unless pruning)Hermes Ecosystem Audit: See references/hermes-ecosystem-audit.md for:
Key insight from audit: "Installed" ≠ "Active" ≠ "Consuming resources"
Analysis:
- hermes-analysis/ (538 MB) → Temporary workspace
- drawio-test/ (1.2 MB) → Temporary diagrams
- old reports (24 KB) → Info applied
Decision: DELETE ALL (safe, no data loss)
Result: 540 MB freed ✅Analysis:
- hermes-analysis/ (538 MB) → DELETE
- oh-my-china/ (340 MB) → ASK USER (project?)
- ai-promo.png (4 MB) → ASK USER (still need?)
User: "delete semua yang gak penting"
Confirm:
- oh-my-china/ → "Masih develop?" → "Cuma testing" → DELETE
- ai-promo.png → "Masih perlu?" → "Gak" → DELETE
Result: 884 MB freed ✅df man page: https://man7.org/linux/man-pages/man1/df.1.htmldu man page: https://man7.org/linux/man-pages/man1/du.1.htmlreferences/scrapling-vs-tinyfish-comparison.md (tool evaluation for VPS constraints)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.