自动化与脚本
macOS 磁盘空间不足时用像素小猫扫描…
在 macOS 上磁盘满或电脑变慢时,扫描开发者/系统缓存与大文件,经网页确认后安全删除并记录偏好。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
macOS 磁盘空间不足时用像素小猫扫描特定
解决思路
- 先读取记忆文件回忆用户偏好:`cat ~/.disk-cleanup-cat/MEMORY.md 2>/dev/null || echo "(首次使用,还没有记忆)"`,读到偏好后用一句话跟用户打招呼,例如「上次释放了 X,缓存类你一向直接清,这次我先帮你预勾好」。
- 在后台运行 `python3 "$SKILL_DIR/src/server.py"`($SKILL_DIR 为本 SKILL.md 所在文件夹),让它扫描磁盘(约 10–20 秒)并自动打开浏览器像素页,同时告诉用户「小猫正在巡视磁盘,扫完会自动弹出一个像素页面,你在上面勾选要清理的东西、点『开始打扫』就行」。
- 让用户在网页上完成确认与打扫:页面列出可清理项(缓存类已预勾选,大文件永远默认不勾、需用户亲自勾),醒目提示「永久删除,不进废纸篓」,确认后小猫走到对应灰尘堆实时打扫并显示成果;终端会实时打印每一项的释放情况,用户点页面右下角「关掉小猫」即退出服务。
- 服务结束后(或用户说扫完了)读最新记忆并总结:`tail -n 3 ~/.disk-cleanup-cat/history.jsonl 2>/dev/null; echo "---"; cat ~/.disk-cleanup-cat/MEMORY.md`,用结论先行方式汇报这次释放了多少、清了哪些类别、磁盘现在多空。
- 若用户在对话里表达了偏好(例如「微信缓存别动」「Downloads 里的素材永远别碰」),用 Python 脚本把偏好写进 `preferences.json` 的 `never_touch` 或 `notes`:`python3 - <<'PY'` 中 `import json,sys; sys.path.insert(0,"$SKILL_DIR/src"); import engine; p=engine.load_prefs(); p.setdefault("never_touch",[]).append("/Users/你/某个永不清理的路径"); p["notes"]=(p.get("notes","")+"\n用户说:微信缓存不要动").strip(); engine.save_prefs(p); engine.render_memory_md(); print("偏好已更新")` `PY`,让下次更聪明。
- 遵守安全红线:永久删除必须由用户在网页上确认,不要替用户跳过确认;引擎只删已知缓存白名单目录和用户亲手勾选的大文件,删除前过 `_is_safe_to_delete()`,绝不碰 `/`、家目录根、`~/Library`、`~/Documents` 等关键路径,绝不超出家目录,命中 `never_touch` 即跳过。
- 性能/网络板块只做「真实测量 + 安全一键」:测量只读(内存 swap、Top 进程、DNS 实测延迟、ping 延迟/丢包),不改任何东西;唯一一键操作是禁用/还原「用户级」后台自启(`~/Library/LaunchAgents/*.plist`),禁用 = `launchctl unload` + 把 plist 挪到 `~/.disk-cleanup-cat/disabled-agents/`(不删除、随时一键还原),每次都要用户在网页上点 + 确认;系统级 daemon、改 DNS、刷新缓存等需 `sudo` 的只给可复制命令由用户手动执行;坚决不做清内存/RAM 加速、一键加速、提升带宽这类在 macOS 上无效甚至有害的 Theater。
- 不要自己写 `rm` 或 `launchctl` 去操作——一切删除/禁用走 `server.py`(`/api/clean`、`/api/action`),它有白名单守卫和可还原设计。
- 按板块清理:开发者缓存(npm/yarn/pnpm、pip、Homebrew、Xcode DerivedData/DeviceSupport、模拟器、Go、Gradle、Docker,默认勾选但 Docker、Archives 除外);系统与应用缓存(`~/Library/Caches` 各应用、应用日志、废纸篓、`.DS_Store`,默认勾选);大文件与下载(超大文件、久未动的下载,永远手动不默认勾选);性能优化(内存 swap 压力、CPU/内存 Top 进程、登录项、后台自启,测量只读、自启可一键禁用/还原);网络优化(DNS 实测延迟+推荐、ping 延迟/丢包、Wi-Fi,测量只读、改 DNS/刷新缓存给 `sudo` 命令)。
- 记忆与交接全部存在 `~/.disk-cleanup-cat/`(独立于 skill 文件夹,重装不丢):`MEMORY.md` 给人/Claude 读的概览与交接(自动生成,可手动补备注)、`preferences.json` 代码用(自动勾选偏好、`never_touch`、`notes`、学习统计)、`history.jsonl` 每次清理一行(时间、释放、类别、清了哪些项);学习逻辑为某类别被批准 ≥2 次后下次自动勾选,大文件永远保持手动。
- 自测/调试:`python3 "$SKILL_DIR/src/engine.py"` 只扫描打印 JSON 不删任何东西;`CAT_NO_OPEN=1 CAT_PORT=8799 python3 "$SKILL_DIR/src/server.py"` 起服务但不自动开浏览器;离线打开 `web/index.html`(无后端)会自动用演示数据渲染,可纯看小猫动画。
适用边界 · 注意事项
- 仅限 macOS,其他操作系统不适用。
- 不要替用户跳过网页确认直接删除,也不要自己写 `rm` 或 `launchctl` 绕过 `server.py` 的白名单守卫。
- 不要做清内存/RAM 加速、一键加速、提升带宽等 macOS 上无效甚至有害的操作。