dup-sweep-paylisted
Install: claude install-skill Mao-jh/dup-sweep
# 重复文件揪出来·不删只隔离(一次付费 7 天不限次)
把内容一模一样的重复文件找出来,移到隔离区,决定权留给你。
本 Skill 三段式:**scan(扫描,只读)→ clean(移到隔离区)→ restore(搬回来)**。
> **为什么需要授权**:执行清理需要一份由服务方签发的凭证。
> 授权**在你本机离线校验**,但**没有有效授权就不执行移动**——这是服务的一部分,不是限制。
---
## 第 0 步 · 扫描(免费,必做)
```bash
python scripts/dupsweep.py scan --root <目录> --min-size 1048576
python scripts/dupsweep.py scan --root <目录> --exclude-dir node_modules --exclude-dir .git
```
扫描完会告诉你:**几组重复、涉及几个文件、能回收多少空间**,并按组列出每个副本的路径,
每组标出「★ 建议保留」的那一个。
| 参数 | 说明 |
|---|---|
| `--min-size` | 小于这个字节数不参与判重(默认 1KB;查重复照片常设 `1048576` = 1MB) |
| `--exclude-dir` | 跳过这些目录名,可多次给 |
| `--keep` | 保留策略:`oldest`(默认)/ `newest` / `shortest`(路径最短)/ `first` |
**判重分三级,逐级淘汰**:① 文件大小 → ② 首尾各 64 KB 的哈希 → ③ 全文哈希。
只有真的候选才会被完整读一遍——所以既不会因为"名字一样"或"大小一样"就误判,
也不会对上万个文件做无谓的全盘读取。
## 第 1 步 · 请求授权(未付费会返回 402)
```
POST https://skills-gate.airpriv.com/api/dup-sweep-license
Content-Type: application/json
{"machine_fp":"<本机指纹串,8–128 位,可省略>"}
```
首次调用一定拿到 `402 Payment Required`(设计如此)。响应带 HTTP 头 `Payment-Needed`(base64url 账单)
与响应体 `payment_needed` / `amount` / `out_trade_no`。
本机指纹:`python scripts/license_check.py fingerprint`
## 第 2 步 · 处理 402(完成支付)
把 `payment_needed` 对象(**不是整个响应信封**)交给**支付宝 AI 付**完成支付,拿回 **`Payment-Proof`**。
**不要自己伪造** —— 服务端会拿它去支付宝网关做真实校验。
## 第 3 步 · 携凭证重试(拿到授权凭证)
同一请求加上头 `Payment-Proof: <凭证>` 重发,成功返回 `200`,
`content.data.license` = 授权凭证(存成 `license.json`)。
**一次付费 = 一份授权 = 7 天有效**,期间反复清理**不需要再付费**。
## 第 4 步 · 校验授权并执行清理(离线)
```bash
python scripts/license_check.py check license.json