---
name: auto-scan-folder
description: "Scan folder untuk deteksi file tidak penting (sampah, temp, duplikat) dan file yang salah tempat berdasarkan ekstensi."
---

# Auto Deteksi File Berantakan

Scan folder untuk analisis file berantakan. Untuk hapus atau rapikan, gunakan skill terpisah:
- `/run hapus : /path` → hapus sampah
- `/run rapihkan : /path` → rapikan file

---
## Cara Pakai

```
/run scan /path/to/folder
```

Prompt: `scan [folder]`

## Alur Kerja

```
START
  ↓
1. Terima path folder dari BOSS
  ↓
2. Validasi path ada & bisa dibaca
  ↓
3. Jalankan scan fase 1 + fase 2 (paralel)
  ↓
4. Susun laporan hasil
  ↓
5. Tampilkan summary ke BOSS
  ↓
6. Konfirmasi: delete atau move ke trash?
  ↓
7. Eksekusi akhir
```

### Fase 1: Scan File Tidak Penting

Deteksi:

| Kriteria | Pola |
|----------|------|
| Temporary | `.tmp`, `.temp`, `.bak`, `.swp`, `~` |
| OS junk | `Thumbs.db`, `.DS_Store`, `desktop.ini` |
| Cache | `__pycache__`, `.cache`, `.pyc`, `.pyo` |
| Log | `*.log` |
| Duplikat | Nama mirip + ukuran sama (fuzzy match) |
| File kosong | Size = 0 byte |
| Hidden file | Dimulai dengan `.` (opsional, tanya dulu) |

### Fase 2: Scan File Salah Tempat

Kategori folder ↔ ekstensi yang wajar:

| Folder | Ekstensi yang cocok |
|--------|---------------------|
| Documents | `.pdf`, `.doc`, `.docx`, `.txt`, `.md`, `.odt`, `.rtf`, `.xlsx`, `.xls`, `.pptx` |
| Images | `.jpg`, `.jpeg`, `.png`, `.gif`, `.svg`, `.webp`, `.bmp`, `.ico`, `.tiff` |
| Videos | `.mp4`, `.mkv`, `.avi`, `.mov`, `.wmv`, `.flv`, `.webm` |
| Music | `.mp3`, `.wav`, `.flac`, `.ogg`, `.aac`, `.m4a`, `.wma` |
| Archives | `.zip`, `.tar`, `.gz`, `.rar`, `.7z`, `.bz2` |
| Code | `.py`, `.js`, `.ts`, `.java`, `.go`, `.rs`, `.c`, `.cpp`, `.h`, `.rb`, `.php` |
| Data | `.json`, `.csv`, `.xml`, `.yaml`, `.yml`, `.sql`, `.db`, `.sqlite` |

File dianggap **salah tempat** jika ekstensinya tidak ada di tabel folder tersebut.

Cek pakai nama folder (case-insensitive). Kalau nama folder tidak match kategori dibiarkan saja — tidak ditandai.

## Laporan Output

```
📂 Scan Results: /path/to/folder
━━━━━━━━━━━━━━━━━━━━

🗑️  FASE 1: FILE TIDAK PENTING

  Temporary (3):
    ├── /path/foo.tmp
    ├── /path/bar.bak
    └── /path/.DS_Store

  Duplikat (2 pasang):
    ├── photo.jpg ↔ photo_copy.jpg  [2.1 MB]
    └── data.csv ↔ data (1).csv    [45 KB]

  File Kosong (1):
    └── /path/empty.txt

📦 FASE 2: FILE SALAH TEMPAT

  Images/ — ada yang bukan gambar:
    ├── report.pdf  ← Seharusnya di Documents/
    └── backup.zip  ← Seharusnya di Archives/

  Documents/ — ada yang bukan dokumen:
    └── song.mp3    ← Seharusnya di Music/

━━━━━━━━━━━━━━━━━━━━
📊 TOTAL: 9 file bermasalah (45.2 MB bisa dihemat)
```

## Konfirmasi

Setelah tampilkan laporan selalu tanya:

```
Hapus semua? Move ke trash? Atau pilih satu-satuan?
```

Jangan hapus langsung tanpa konfirmasi BOSS.

## Script

Gunakan `scripts/scan_folder.py` untuk scanning. Jalankan via `exec`.
Script menerima argumen path folder, output JSON untuk diparsing.

```bash
python3 scripts/scan_folder.py /path/to/folder
```

Kalau user minta, bisa juga simpan hasil ke file report.
