Adversarial code review using the opposite model. Spawns 1–3 reviewers on the opposing model (Claude spawns Codex, Codex spawns Claude) to challenge work from distinct critical lenses. Triggers: "adversarial review".
日本語の概要は準備中です。原文の説明を表示しています。
macOS / Windows / Linux 只读存储分析助手(自动识别系统)。扫描整机磁盘占用,找出 占空间大户,把每一项分成 🟢可自动清理 / 🟡需人工判断 / 🔴谨慎清理 三级并给出 可执行处置方案,生成排版精美、可折叠、命令可一键复制的交互式 HTML 报告,并可 起本地服务在网页上一键删除(移废纸篓/直接删)。
扫描全程只读。务必在以下场景 使用:用户想知道磁盘或存储空间被什么占用、磁盘(含 C 盘)空间不足、想清理磁盘 或缓存、想要清理建议(中英文说法均适用,如"磁盘满了""清理空间" "storage analysis""disk cleanup"),或遇到 "No space left on device"、inode 耗尽等报错。
中文口语里"内存满了/不够/不足""看下内存"常指存储空间,也属于本 skill;用户明确指 运行内存/RAM(如"哪个进程吃内存""内存占用高"想看活动监视器)时不属于本 skill。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
源自 KKKKhazix/khazix-skills(MIT,见
LICENSE), 本仓库在其基线上增加了 Linux 支持并加固了安全模型 —— 详见 UPSTREAM.md。
对 macOS / Windows / Linux 做一次只读存储分析,产出交互式 HTML 报告。流程:扫描 → 分析分级 → 生成网页 → 打开。
/tmp 下的扫描与分析 JSON、静态模式写到 ~/Desktop 的 HTML 报告)和 Step 3 启动的本地服务不在此限;网页上的删除由用户点击并确认后由 server.py 执行。python3 scripts/scan.py > /tmp/storage_scan.json
scan.py 自动识别系统(sys.platform):
du 算大小。os.scandir 算大小;system.disks 含所有盘符。du -x 算大小(-x 不跨挂载点,否则外置盘会被算进主盘)。另有两组 Linux 专有:sudo_targets(/var/lib/docker、/var/log 等 root 大户,读不到就标 denied)和 uncategorized($HOME 与 /var 各一层兜底下钻,捞出目标表没覆盖到的大目录)。system.disks 含所有本地挂载点(已滤掉 tmpfs / squashfs / 网络盘)。输出 JSON:system(系统/磁盘信息,含 disk_name 主盘名 + disks 全部盘)+ groups(各组子目录大小,已降序、过滤 50MB 以下)。扫描较慢,耐心等。读不到的目录标 denied,需在报告里列出并提示遗漏体量。
Linux 另有 accounting 字段(缺口对账),必须读:Linux 上 du 对 root 目录是静默低估(读不到算作 0 还返回成功),不对账就会把大户报错。对账按文件系统分别进行(per_filesystem 数组),因为 /home 独立分区极常见,合并算会捏造出巨额假重叠。每项的 gap_kb 归入该盘蓝色「系统及其他」并提示可用 sudo 核实;若出现 overlap_kb(合计超过实际已用),说明有硬链接缓存被重复计数(也可能是压缩/reflink/稀疏文件),相关项的"可释放空间"要注明实际释放量可能更小。条目上的 partial: true 表示 du 没读全、实际更大;mountpoint: true 表示该子目录是另一块盘的挂载点,不计入本盘。
先看 system.os 判断系统,读对应的数据布局参考:macOS 读 references/macos.md,Windows 读 references/windows.md,Linux 读 references/linux.md(讲该系统东西存哪、怎么辨认、归哪一级)。然后读 /tmp/storage_scan.json 做这几件事:
ls/du 深入一层看清楚,但仍只读。system.platform 取对应平台的一个);如果该项有一个核实过、删了不破坏 App 的安全子路径(如 B站离线视频的 .Downloads 目录、旧备份目录),给它 trash_paths → 网页出现「移到废纸篓」按钮(橙灯只准移废纸篓、可逆,绝不给"直接删除")。App 托管又无安全子路径的(Chrome/微信)只给打开按钮、不给 trash_paths。按钮下方会自动写明注意事项(打开只查看不删、移废纸篓可逆需清空才释放等);如果某项在文件管理器里是 App 内部格式、不方便手动挑选,给它一个 open_note 字段做客观说明(会显示在注意事项里)。口吻要中性、像产品说明:直接描述"这里是什么结构、为什么不好手动删、想精细操作该去哪",只描述对象本身,不写分析过程中的发现经过。indirect_release 写具体卸载步骤(自带卸载器 / 启动台长按 / 右键移废纸篓 / AppCleaner 清残留 / App Store 可重装等,要可照做不是空话)。应用项给 app_paths(应用本体的真实绝对路径数组:macOS 为 .app,Linux 为应用所在目录;路径须位于 Step 3 安全模型中 open 允许的目录下,Windows 上装在 Program Files 的应用不给 app_paths)→ 网页出现「在文件管理器打开(去卸载)」按钮,定位到 App 让用户自己正规卸载。红灯不给删除/卸载按钮(应用在系统目录、可能要管理员密码、可能有自带卸载器和残留,后台代删不稳妥)。纯系统文件、APFS 快照不要单独列红卡(没有清理决策),归蓝色即可;系统层面的释放技巧(重启释 swap、Time Machine 快照策略、可清除空间自动回收)写进 summary.long_term 长期建议。每个 🟢 项要给:预估释放空间、清理前需关闭的进程、可一键复制的清理命令(用移到废纸篓或 App 自身清理入口的安全方式,谨慎用 rm;如用 rm 必须是明确的缓存子目录)。
大小字段写干净:size / size_estimate 用"约 14 GB""合计约 8.6 GB"即可——"约"已表示估算,不要再加"(估算)",重复且不专业(模板也会自动去掉这种冗余括号)。可再生属性已由分级标题和按钮说明覆盖,别塞进大小字段。
把分析结果写成 analysis JSON(schema 见 scripts/build_report.py 顶部注释)。
🟢 项必须带 trash_paths(具体可删的绝对路径数组,区别于人类可读的 path 展示字段)——这是网页删除按钮的前提,漏了按钮就不出现。
默认用一键删除模式(server.py)打开报告,因为这个 skill 的核心价值就是网页上能直接清理:
python3 scripts/server.py /tmp/storage_analysis.json # 自动开浏览器,Ctrl+C 停
server.py 起在 127.0.0.1 + 随机端口 + 随机 token。🟢 项给「移到废纸篓」(可逆) +「直接删除」(立即释放、不可逆);🟡 项给「在访达/资源管理器/文件管理器里打开」+(有安全子路径时)「移到废纸篓」。安全模型——三套白名单,权限从严到宽:rm 只允许绿灯 trash_paths;trash 允许绿灯+橙灯 trash_paths(橙灯永远不能 rm);open(在文件管理器打开,非破坏性)允许上述全部 + 橙灯真实 path + 红灯 app_paths。所有请求都做 realpath + token + Host 校验;rm / trash 只接受 $HOME 的严格子孙(不跨挂载点、不含 needs_sudo 项),open 另允许 /Applications、/opt、/usr/local、/usr/share、/var/lib/flatpak、/snap 下的路径;移废纸篓和直接删除在浏览器里先弹 confirm。入废纸篓的机制按平台:macOS osascript(首次弹访达自动化授权点允许即可)、Windows SHFileOperationW、Linux 走 XDG Trash(gio trash → trash-put → 标准库手写 .trashinfo 三级回退)。
Linux 两条额外约束(细节见 references/linux.md):
trash_paths。 废纸篓只在其自身所在的文件系统内可用;挂在 /mnt、/media、外置盘上的项即使是绿灯也不该给。给了也会被 server.py 挡在破坏性白名单外,按钮不会出现。这类项只给可复制命令。sudo_targets 组的项 trash_paths 一律留空,标题带 [需 sudo]。它们照常上灯(/var/log、apt 缓存等多为 🟢)、照常给命令,但一键删除通道对它们物理关闭——server.py 按 needs_sudo 标记强制拒绝,不靠本文档的约定。这正是"删除命令只展示,用户自己在终端确认后运行"的标准形态。无头环境(Linux 服务器 SSH,无 DISPLAY/WAYLAND_DISPLAY)跳过整个 Step 3:不渲染 HTML、不起服务,直接进 Step 4 在对话里给完整诊断。调用方本来就是 agent,产物应该是对话里的结论,而不是一个要 scp 才能看的文件。此时 Step 4 从"一段话摘要"扩展为完整诊断:磁盘总览 → Top5 → 三级清单(含可复制命令)→ 长期建议。
仅当用户明确只想要一份可分享/留存的只读文件时,才用静态模式(无删除按钮,因为 file:// 打开的页面碰不到文件系统)。打开命令按平台:macOS open、Windows start、Linux xdg-open(脚本运行完会打印正确的那条):
python3 scripts/build_report.py /tmp/storage_analysis.json ~/Desktop/storage-report.html
排障:网页上没有删除/移废纸篓按钮 = 要么开的是静态报告(改用 server.py),要么 🟢 项漏了 trash_paths(补上重启服务)。
报告阅读流(固定顺序):磁盘总览卡片(容量 + 进度条 + 三色容量 pills + 系统信息,纯数据)→ 占用排行 Top5 → 执行建议 → 🟢🟡🔴 三级可折叠卡片(命令一键复制)→ 长期优化建议。即"现状 → 诊断 → 处方 → 操作 → 预防"。
注意 summary.overview 要写成一句话洞察(直接说最大占用是什么、能释放多少),不要重复总/已用/可用数字——那些已在卡片大数字里显示。overview 渲染在"执行建议"小节开头作引子(普通文字),紧接着是 summary.priority 优先级清单。
磁盘进度条把"已用"拆成分段:绿(可自动清)+橙(需手动)+红(已识别的不建议动项)+蓝(系统及其他,自动取 已用−绿−橙−红 的余量),余下为可用(灰底)。summary.tier_stats 的 green / yellow / red 三个值都要以可解析的 GB 数字开头(如 "约 27.8 GB"),脚本从中取数算分段;蓝色段和"系统及其他"pill 由模板自动算余量。
pills 只渲染解析出的纯数字(如"约 5.5 GB"),不显示数据里的附注,所以 tier_stats 三个值写干净的数字即可,别加"仅已识别项/系统未计"这类道歉式说明——系统文件本来就归在蓝色段,红色只放你能量化的 🔴 项(重复应用、可卸载大应用等),量不准的系统文件/快照自然落到蓝色。
报告生成后,在对话里用一段话给结论先行的摘要:总可释放估算、最该先清的 2-3 项、风险最高的一项。细节让用户看网页。
du、diskutil、osascript,开箱即用。python 或 py -3(不是 python3)。本 skill 命令示例写的是 python3,在 Windows 上自动改用 python / py -3。du、df,开箱即用。废纸篓优先用 gio(glib2 附带,桌面版一般有)或 trash-put(trash-cli),两者都没有时退回标准库手写 XDG .trashinfo,功能等价、无需安装任何东西。scan.py 的 scan_windows、server.py 的 _trash_windows 走 SHFileOperationW),但未在真实 Windows 上验证。在 Windows 上运行时核对:目标目录路径、os.scandir 大小、回收站删除是否正常。多盘符已支持(主盘分段条 + 其他盘列表)。brew cleanup、Xcode DerivedData、浏览器缓存;DaisyDisk / GrandPerspective / OmniDiskSweeper;「系统设置 > 通用 > 储存空间」的优化选项docker system prune -a、conda clean -a、uv cache clean、journalctl --vacuum-time=7d、sudo apt autoremove --purge 清旧内核;ncdu / baobab / filelightまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Adversarial code review using the opposite model. Spawns 1–3 reviewers on the opposing model (Claude spawns Codex, Codex spawns Claude) to challenge work from distinct critical lenses. Triggers: "adversarial review".
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial code review using the opposite model's CLI. Spawns 1–3 reviewers on the opposing model (Codex sessions typically spawn Claude; Claude sessions spawn Codex) to challenge work from distinct critical lenses. Triggers: "adversarial review".
日本語の概要は準備中です。原文の説明を表示しています。
Inspect, add, change, remove, repair, or update Claude and Codex configuration from Mizoreww/awesome-agent-config on main. Use for configuration queries and edits, installed skills/plugins/rules/MCP, and changes to this repository's configuration templates or catalogue.
日本語の概要は準備中です。原文の説明を表示しています。