硬碟清理
使用繁體中文,簡潔說明。K = ~/.claude/skills/don-rac-o-dia。Windows,需 python(3.9+)。
嚴格規則
- 僅讀取:只執行
K/scripts中的腳本。不得開啟檔案內容、不得刪除、不得執行清理腳本。 - 忽略 OneDrive / WPS Cloud / Dropbox / Pictures(相片庫)、外接硬碟、junction/symlink、權限被拒絕的目錄。
- 僅在使用者明確指示(例如「執行吧」)時才執行清理腳本。標示為「刪除前請確認」的項目必須逐項再次確認後才能執行。
- Artifact 頁面可能包含本機路徑(使用者名稱、專案名稱):請保持隱私,不得自動分享。
流程
- 掃描(1–3 分鐘;超時 600000):
若目前工作目錄位於家目錄之外(例如python "K/scripts/scan_disk_usage.py" --html-out "<scratchpad>/disk-map.html" [--root <家目錄外的專案目錄>]C:\code或D:\Projects),請加上--root指定其最上層目錄。 腳本會自動讀取舊的~/disk-report/sizes.csv(另存為sizes-previous.csv),進行比較,寫入新檔案並輸出摘要(含各項目的 ID)。 - 發佈 artifact:發佈檔案
<scratchpad>/disk-map.html(從K/assets中的範本與掃描資料自動產生):- 若已存在
~/disk-report/artifact-url.txt→ 先Artifact read該 URL,再以url發佈以保留舊連結。 - 若不存在 → 發佈新的(
icon: "storage"),並將 URL 寫入~/disk-report/artifact-url.txt。
- 若已存在
- 通知使用者(≤ 8 行):剩餘空間;「安全刪除」總量 + 前三大項目;「需確認」總量;與上次相比增加的項目(若有的話);artifact 連結。提示:在網頁上勾選 → 複製腳本 → 貼到 PowerShell,或直接說出名稱讓我產生檔案。
- 當使用者在對話中選擇項目時:
python "K/scripts/make_cleanup_script.py" <id> <id> ...→ 提供~/disk-report/cleanup-*.ps1路徑及各指令區塊摘要。不自動執行。 - 使用者清理完畢後:再次呼叫技能重新掃描;頁面會顯示變化幅度。
檔案
| 檔案 | 角色 |
|---|---|
scripts/cleanup_rules.py | 已知暫存位置清單 + 專案目錄模式(node_modules, .next, venv…)、清理指令、說明。在此新增規則。 |
scripts/scan_disk_usage.py | 唯讀掃描,比較 sizes.csv,寫入 scan.json,呼叫產生 HTML |
scripts/build_disk_map_html.py | 將 assets/ 與資料合併成頁面。可獨立執行以在修改介面後從 scan.json 重新產生 |
scripts/make_cleanup_script.py | 為選取的 ID 產生 .ps1 檔案(UTF-8 BOM) |
assets/disk-map-*.{html,css,js} | 介面:treemap、含核取方塊的建議清單、複製腳本按鈕 |
輸出目錄在 ~/disk-report/:scan.json、sizes.csv、sizes-previous.csv、disk-map.html、cleanup-*.ps1、artifact-url.txt。
新增規則
RULES 中的一個字典(位於 cleanup_rules.py):id、label、kind(cache | build | agent | docker | ai | files)、cat(SAFE = 工具會自動下載/重建;REVIEW = 會遺失歷史、模型、資料)、paths(glob 模式)、why(刪除會遺失什麼),以及下列其中之一:tool + cmd(官方清理指令)、cmd 含 {p}(對每個路徑分別執行)、manual(僅列印說明)、或留空(清空目錄)。優先使用工具的官方指令,而非手動刪除。