File singlify
Claude Code skill/plugin that rewrites a raw question into a high-performing LLM prompt by auto-selecting research-backed prompt-engineering strategies.
npx -y skills add host452b/polish --skill file-singlifyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
scan disks, folders, mounted paths, or uploaded file manifests to find redundant duplicate files and duplicate directory copies. use when the user wants file deduplication, directory-first duplicate detection, storage cleanup, canonical-copy selection, duplicate-to-canonical reference mapping, hardlink or symlink plans, dry-run reports, or storage space saving analysis.
SKILL.md
5.8 KB, as published. Nobody here has run it
file-singlify(文件单副本化)
这个 skill 做什么
扫描某个磁盘 / 目录 / 挂载路径,找出因多次复制、备份、同步、迁移产生的重复文件和重复目录,生成「单副本化」方案:每组保留一份 canonical copy,其余映射为引用 / 待删除 / 链接建议,估算可节省空间。
核心原则:默认只读、只做 dry-run。绝不直接删除、移动、覆盖、改写、创建硬/软链接。任何破坏性操作都必须先出报告、再等用户明确确认。 脚本本身永远只读 —— --action-mode 只改报告里 suggested_action 的标签,不执行任何动作。
何时使用
- 用户要扫某个盘/目录/一批文件夹,找「一模一样的文件」「重复目录」「冗余备份」「多重复制」
- 用户想保留一份原始文件、生成引用映射、删除建议、硬/软链接建议、去重报告、节省空间估算
- 关键词:去重 / 单副本化 / 重复目录折叠 / dedup / canonical copy / storage cleanup
不适用: 用户要的是文件内容分析、压缩、或与重复检测无关的整理。
默认工作流
- 路径与权限检查 — 确认当前环境能否访问
root_path。能访问就运行脚本;不能访问则要求用户提供目录清单 / 目录树 / 压缩包 / 可访问挂载路径。绝不虚构扫描结果。 - 运行脚本(directory-first) — 先按目录一致性找冗余,再用 hash 确认文件。整个目录被重复复制是最大空间浪费来源,优先展示目录级结果。
- 读脚本输出,整理给用户 — 优先讲重复目录组,再讲重复文件组、canonical 映射、节省空间、风险项。对脚本标为
uncertain/manual_review的项,向用户提问澄清,不要替他决定。 - 给出 top-4 后续命令 — 脚本会按当前 OS/shell 生成 top-4 推荐命令(安全优先:verify → quarantine → hardlink → delete),见报告第 10 节 / JSON 的
recommended_commands。把它们呈现给用户,并按用户真实的 OS 与 shell 调整语法;脚本默认自动探测,必要时用--target-os/--target-shell覆盖。只给命令,不执行。 命令里用的是代表性样本路径,需逐行套用到映射表。 - destructive 操作前再确认 — 用户要真正删除 / 换链接时,先复述计划并要求明确确认;脚本不会执行,需用户自行执行或另行授权。
何时运行脚本
环境可直接读到 root_path 就运行;只拿到清单/树时,按同样的判定逻辑(目录结构一致 → 文件大小一致 → 内容 hash 确认)人工分析并明确说明「未做 hash 确认」。
python3 scripts/scan_file_singlify.py <root_path> \
--scan-mode directory-first \ # 或 file-only
--hash-algorithm md5 \ # md5 | sha256 | both(严格用 both)
--output-format markdown \ # markdown | json | csv
--action-mode report-only \ # report-only|link-plan|delete-plan|hardlink-plan|symlink-plan
--exclude-patterns ".git,node_modules,cache,temp" \
--include-patterns "*.jpg,*.mp4" \
--min-file-size 1024 \
--prefer "/Volumes/Primary" \ # 优先保留此路径作 canonical
--target-os auto \ # auto|macos|linux|windows(生成 top-4 命令用)
--target-shell auto # auto|bash|zsh|fish|powershell|cmd
完整参数与判定细节见脚本 --help、references/matching-rules.md 与 references/safety-rules.md。
输出格式
脚本产出结构化报告,含:扫描范围、参数、总文件/目录/容量、重复目录组、疑似重复目录、重复文件组(hash 确认)、节省空间估算、canonical 映射表、top-4 推荐命令(按 OS/shell 生成)、风险与不确定项、下一步建议。markdown 给人看,json 给程序消费(含 recommended_commands),csv 是 duplicate→canonical 映射表。
每个映射行带 confidence(confirmed / uncertain)和 suggested_action(keep / delete_duplicate / replace_with_hardlink / replace_with_symlink / create_manifest_reference / manual_review)。
安全边界
- 默认绝不删除文件、绝不自动建硬/软链接。 脚本只读。
- 只凭文件名 / 大小 / mtime 不能判定相同 —— 只作候选筛选;最终结论必须 hash 确认(相同大小 + 相同 hash)。
- 对系统目录、隐藏目录、应用目录、Git 仓库、数据库、照片图库、云同步目录格外谨慎。
- 符号链接不跟随、不递归;遇到目录循环停止递归并报告。
- 权限不足 / 零字节 / 特殊文件 / 已硬链接文件 → 标记并跳过,进入「跳过 / 不确定」分类,不当作确定重复。
- canonical 无法判定时,列候选并要求用户确认,不自行拍板。
常见错误
| 错误 | 纠正 |
|---|---|
| 没确认能否访问路径就「假装扫描」 | 先确认;不能访问就要清单,绝不虚构结果 |
| 仅凭文件名/大小/时间就判定重复 | 只作候选;必须 hash 确认 |
| 一上来就对所有文件做 hash | 先目录一致性筛选,再对候选 hash |
| 报告还没出就建议删除/换链接 | 先出报告、等明确确认;脚本不执行破坏性动作 |
替用户决定 uncertain 项 | 把不确定项作为问题抛回给用户 |