基础工具与工作流 · daymade/claude-code-skills

macos-cleaner

Diagnoses and safely reclaims macOS disk space. Use when a Mac is low on storage, reports “Caching needs more space,” shows large Apple Content Caching or AssetCacheManagerUtil usage, or needs analysis of caches, logs, application remnants, large or duplicate files, Docker or OrbStack, Chromium code-sign clones, Homebrew, npm, pip, Xcode, and other developer storage. Routes known suspects to targeted read-only diagnosis before broad scans, distinguishes nominal path accounting from physical release, requires an impact-and-recovery plan plus explicit confirmation before state changes, and verifies disk space and co-resident services afterward.

风险提醒:黄色 · 留意使用AI 侦查报告
作者 daymadeGitHub daymade/claude-code-skills ↗Stars 1385许可 MIT(仓库根 LICENSE,Copyright (c) 2025 daymade;GitHub API spdx MIT)commit d5c4678cb5
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

入口路由机制:按用户信号走最窄路径——具名可疑源(Apple Content Caching/Docker/Chromium code-sign clones/某缓存目录)先专项读参考文档,只有真正来源未知才走通用扫描。

daymade-macos/macos-cleaner/SKILL.md
Choose the narrowest path that can answer the request
注:『具名可疑源优先于全盘扫描』避免一上来 du 整个 home;用户给的 scope 排除项覆盖一切通用扫描建议。

安全机制核心是『观察与变更分离 + 精确审批门禁』的四相状态机:Observe(只读)→ Plan(停到确认闸)→ Execute(仅批准范围)→ Verify(独立读回);2/3 相不许压缩进一条消息。

daymade-macos/macos-cleaner/SKILL.md
Do not compress phases 2 and 3 into one message. A plan printed beside a cleanup command is not a confirmation gate.
注:10 条『Safety and authorization contract』显式编号(分离观察/变更、确认确切目标、计划先行、要求明确批准、精确受控命令、禁 prune、禁宽泛 rm、保护有价值状态、执行跟随授权、fail fast)。

只读诊断由一套自研 python 脚本执行(analyze_caches/analyze_dev_env/find_app_remnants/analyze_large_files/analyze_code_sign_clones),配合物理分配核算纪律:du 是路径记账不是物理释放(APFS clone 共享 extent)。

daymade-macos/macos-cleaner/SKILL.md
shared extents can be attributed to every path, so actual release remains unknown until deletion and `df` readback
注:报告同时给 nominal(路径记账)与 physical 两列;stop condition 只认『有精确动作且物理释放可辩护』的候选,逻辑大小/Trash 移动/未验证的 potential savings 不算。

删除路径双轨:优先 Finder Trash(osascript 删除可恢复,但物理空间要等清空 Trash 才释放);legacy safe_delete.py 是带 denylist 与交互确认的永久删除助手,被文档明确降级(不 Trash、不查全部用户数据根、不检测打开文件)。

daymade-macos/macos-cleaner/scripts/safe_delete.py
HIGH_RISK_PATHS = frozenset( _canonical_path(path) for path in [ '/System', '/Library/Apple', '/usr', '/bin', '/sbin', '/etc', '/private/var/db', '~/.ssh', '~/.aws', '~/.gnupg', '~/Library/Keychains', ] )
注:denylist 覆盖系统目录与凭证目录;confirm_delete 对 documents/desktop/credentials 等危险模式额外警告;batch 模式支持 'all'(跳过程序逐项危险警告——SKILL 文档只允许在精确批准后使用此助手,且不能用于用户文档)。

Docker/OrbStack 纪律:per-object 分析(列出每个 image/container/volume、检查引用与库类内容、稀疏文件实际分配),数据库卷名(mysql/postgres/redis/mongo/mariadb)强制内容检查后才可提议删除;**绝不使用 prune 家族命令**。

daymade-macos/macos-cleaner/SKILL.md
**Never use Docker prune-family commands.** This includes image, container, volume, system, builder, and buildx prune.
注:docker_analysis.md 的检查用临时容器 docker run --rm --pull=never --network=none --read-only --cap-drop=ALL(无网络、只读、去权);dangling 不等于数据无价值,build cache 只测量不删除(Docker 只有品类级 prune 控件)。

事后验证纪律:df 前后读数算实际回收(不信删除工具自报)、重查被清理子系统、对关键共驻服务重解析 PID/健康探针、APFS 记账滞后或可能回填时按有界间隔观察;never report 'fixed' when only the exit code is known。

daymade-macos/macos-cleaner/SKILL.md
Never report “fixed” when only the command exit code is known. A successful cleanup requires both the intended state and the protected invariants.
注:可选 cleanup_report.py 在 ~/.macos-cleaner 写 before/after 快照辅助对比,但文档声明 df 直读才是 source of truth,且只在本地目标上跑。

2核心能力

01磁盘压力根因诊断(身份/基线/子系统状态 + df -k/-h 计算与展示分离)
02Apple Content Caching / AssetCacheManagerUtil 专项诊断与受控清理(references/apple_content_caching.md 全文前置)
03Chromium code-sign clones 名义/物理分离分析(analyze_code_sign_clones.py 只读清单,可选写非覆盖 manifest)
04开发者环境/缓存/大文件/应用残留的只读扫描(caches/dev_env/large_files/app_remnants 四脚本)
05精确目标确认 + 影响/恢复/服务影响/后置条件俱全的清理计划表
06Finder Trash 优先删除 + 精确批准后的 legacy guarded 永久删除
07前后快照报告(cleanup_report.py --snapshot before/after --compare)

3外部依赖

类型依赖
clidf / du / lsof / pgrep / launchctl / ps(系统状态与分配测量)
cliuv(运行 bundled python 脚本)
cliosascript(Finder Trash 删除)
clidocker(可选:per-object 分析 + 受权后的临时只读检查容器)
climo / Mole(可选第三方全盘扫描器 github.com/tw93/Mole,需用户批准其固定宽扫描根)
clisudo AssetCacheManagerUtil / AssetCache(受权后的服务控制)

4风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 破坏性能力客观存在,最终闸门是模型遵循 + 用户确认 — safe_delete.py 永久删除(batch 'all' 可跳过逐项危险模式警告,仅 denylist 兜底);SKILL 的确认门禁是提示词纪律,宿主被注入诱导或用户误批准宽计划时仍可能删数据。
  • 读取面可以很宽 — 经授权路径可扫 ~/Library、/Applications、Docker 卷内容与(Mole)整个 home/系统库/apps/volumes;'库类内容'检查会读容器/卷内文件——均在本地且需批准,但隐私敏感目录一旦获批即进入上下文。
  • sudo/服务控制命令面 — 部分修复(如 AssetCacheManagerUtil activate)需 sudo 且会改系统服务状态;远程 Mac 场景有误操作别台机器的风险(skill 用 host 身份确认缓解)。
  • Mole 为第三方二进制且扫描根固定 — Mole 扫描范围(含 home 等)不可按需收窄,只能整用或不用;第三方工具不在本仓审计内,且要求 TTY。
风险提醒:黄色,留意使用。本地型清理技能:无网络外发、无凭证读取(反而显式保护 ~/.ssh、Keychains 等);黄色来自其设计目的含经批准后的真实破坏性动作——永久删除助手(safe_delete.py denylist+交互确认)、Finder Trash、Docker 对象清理、sudo AssetCacheManagerUtil 服务控制,以及可选的全盘只读扫描(Mole,扫描 home/系统库/apps/volumes)与 Docker 卷内容检查。破坏被『10 条授权契约 + 四相门禁 + 精确目标确认 + 事后 df/服务验证』强约束且默认只读,但数据损毁面客观存在,按『留意使用』判黄(无凭证/无外发故不到橙)。

5第二遍独立确认

  • [ok] safe_delete.py denylist 与删除逻辑 — HIGH_RISK_PATHS 含 /System、/usr、/bin、/etc、~/.ssh、~/.aws、~/.gnupg、~/Library/Keychains 等;delete_path 对 is_high_risk_path 直接拒绝;文件 unlink/目录 shutil.rmtree。
  • [ok] 『观察/变更分离 + 确认门禁』在源码与文档双重存在 — SKILL.md 10 条 contract + 四相状态机 + 'Do not compress phases 2 and 3 into one message';safe_delete 每次删除前交互 input('[y/N]')。
  • [ok] nominal vs physical 纪律有代码/文档支撑 — SKILL.md 明示 du 路径记账 vs df 物理读回;cleanup_report 只做 df 快照不做释放断言;safe_delete 输出 'Measured size removed' 并提示 'Physical release: verify with before/after df -k'。
  • [ok] Docker prune 禁令与 per-object 纪律 — SKILL.md 六行明文禁 prune 家族;docker_analysis.md 给 --pull=never --network=none --read-only --cap-drop=ALL 的只读检查容器配方。
  • [ok] 无网络/无凭证(安全结论基础) — 全目录扫描零网络调用代码、零凭证读取;Mole/AssetCacheManagerUtil 等外部工具仅在有授权与安装前提下由宿主调用。
  • [ok] batch 'all' 可跳过逐项危险模式警告的注意点 — safe_delete.py batch_confirm 支持输入 'all' 直接返回全部 items(不做 danger_patterns 逐项检查,仅 denylist 兜底)——已在 risks 注明;SKILL.md 也限定该助手仅用于精确批准的非用户数据目标。
  • [ok] 元数据(commit/license/stars) — 本地 HEAD == pin d5c4678cb5d4fd6acc9c922690df035dbd33d247;GitHub API:MIT、stars 1385(2026-09-09 实采)、pushed_at 2026-09-09T12:33:29Z。

6结论

  • 安全流程是设计核心而非装饰:观察/变更分离、精确确认短语、逐条执行、独立验证全部成文并进脚本。
  • 物理释放核算诚实:不把 du/逻辑大小当可回收空间,回收以 df 前后读数为准。
  • 按嫌疑路由 + 文献库支撑:常见大户(Content Caching/Docker/Chromium clones)各有专用深度文档,避免无差别全盘扫。
  • 自带测试验证安全逻辑(safe_delete/cleanup_report/code_sign_clones + 仓库根 safety 测试),同类清理技能罕见。
  • 承认工具边界:safe_delete 被明示为 legacy(不 Trash、不查打开文件),Trash 优先的恢复性哲学贯穿删除路径。
  • 适合:适合 macOS 磁盘告警/『Caching needs more space』/大缓存大户的真实清理场景,尤其是接受『先只读诊断、批计划、再执行、后验证』流程、能给出精确确认的用户;对远程 Mac 谨慎运维、Docker/Chromium/开发缓存专项清理也有成熟路径。
    不适合:不适合 Windows/Linux;不适合想要『一键静默自动清理』的人(skill 明文拒绝无审计范围的自动删除);不适合只想调 app 行为、无磁盘回收目标的场景;不适合不愿授予宽扫描/变更权限、或无法提供精确 free-space 目标的用户。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-09
    方式 A · 人下载镜像包下载 macos-cleaner.tar.gz
    sha256: 2e94bb1d20bbcc55…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit d5c4678cb5;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库daymade / daymade/claude-code-skills
    Stars1385
    最近推送2026-09-09
    本 skill commitd5c4678cb5
    许可MIT(仓库根 LICENSE,Copyright (c) 2025 daymade;GitHub API spdx MIT)
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近