一堆文件自动归类(一次付费 7 天不限次)
把几百个混在一起的文件按规则分好类,先出方案给你看,再动手。
本 Skill 两段式:plan(出方案,只读)→ apply(真归类)。
> 为什么需要授权:执行归类需要一份由服务方签发的凭证。
> 授权在你本机离线校验,但没有有效授权就不执行搬动——这是服务的一部分,不是限制。
第 0 步 · 出方案(免费,必做)
python scripts/triage.py plan --root <目录> --by ext
python scripts/triage.py plan --root <目录> --by date --date-unit month
python scripts/triage.py plan --root <目录> --by size
python scripts/triage.py plan --root <目录> --rule "*.jpg,*.png,*.heic->照片" --rule "*.pdf->文档"
python scripts/triage.py plan --root <目录> --by keyword --keywords "发票,合同,简历"
| 归类方式 | 说明 |
|---|---|
--by ext |
按扩展名(默认)。内置照片/视频/音频/文档/表格/演示/压缩包/安装包/代码/字体/电子书 11 个桶,其余进「其它」 |
--by date |
按修改日期,--date-unit month 出 2026-09 这种桶,year 出 2026 |
--by size |
按大小档(10KB / 1MB / 10MB / 100MB / 1GB 五档) |
--by keyword |
按文件名里是否含关键词(--keywords 逗号分隔) |
--rule |
自定义规则,优先级最高,按给定顺序先命中先生效 |
方案会告诉你:分几类、每类多少个、总共多大,以及有多少个文件因为目标位置已有同名会被自动改名。
没给 apply 时,一个文件都不会被搬。
第 1 步 · 请求授权(未付费会返回 402)
POST https://skills-gate.airpriv.com/api/triage-forge-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 步 · 校验授权并执行归类(离线)
python scripts/license_check.py check license.json --fingerprint "<与第 2 步相同的值>"
echo $? # 0 = 放行;非 0 = 拒绝,不要执行
退出码:0 通过 · 4 签名不通过 · 5 已过期 · 6 产品不匹配 · 7 指纹不匹配 · 2 路径问题。
退出码 0 才允许执行:
# 复制模式(默认,最安全):源文件原地不动,归类一份副本
python scripts/run_paid.py apply --root <目录> --map <方案文件路径>
# 移动模式:真把文件搬走(确认过副本无误再用)
python scripts/run_paid.py apply --root <目录> --map <方案文件路径> --move
回滚(把已归类的文件放回原处):
python scripts/triage.py rollback --root <目录> --map <执行记录路径>
(回滚不需要授权——它是恢复原样。)
交付给用户的说法(照这个口径,别夸大)
- 建议先跑复制模式(默认就是),确认归得对,再决定要不要清原文件。
- 执行完给用户看两类数字:成功几个、失败几个。失败项会打印原因(目标已存在/源不见了/权限)。
- 回滚记录别删:它记录每个文件从哪来。确认满意后再删。
- 本工具不删任何文件——它只复制或移动。删除是用户自己的决定。
诚实边界(用户问到时照实说)
- 授权是「付费门」,不是版权保护。它防「没付钱就用」,不防「付一次之后自行改本地代码继续用」。执行必须在你自己的机器上跑——架构上不可兼得。
- 归类全程在本机完成:文件名不出本机,不联网。授权服务只收一个可选的机器指纹。
- 只处理指定目录的第一层,不递归子目录(递归搬动的爆炸半径太大,本工具不做)。
- 不查重:两个内容相同、名字不同的文件会被归到同一类里各留一份。去重是另一个工具的活。
- 同名不覆盖是硬约定:它会自动加
-2、-3。如果你看到目标里出现了带序号的副本,那不是 bug,是它没敢盖掉你原有的文件。
<!-- skillhub-payblock -->
付费链路自检(与平台五项自查一一对应)
本 Skill 的付费链路由服务端承担验付、资源交付与商家履约确认;Skill 只负责
发起请求、调用官方支付能力并展示结果。逐条对应平台自查项如下:
| 平台自查项 | 本 Skill 的实现 |
|---|---|
| 402 账单 | 未付款时请求 POST https://skills-gate.airpriv.com/api/triage-forge-license 返回 HTTP 402 Payment Required;响应头 Payment-Needed 携带账单,响应体含 payment_needed / amount / out_trade_no。 |
| 凭证重试 | 支付后携带请求头 Payment-Proof: <凭证> 重发同一个请求(URL、请求方法、请求体与原请求保持一致),服务端校验通过后返回 200,结果在 content.data 内。 |
| 服务端验付 | 服务端调用支付宝 AI 按量付费凭证校验接口 alipay.aipay.agent.payment.verify 验签并核对订单、金额与服务标识;凭证无效或已过期时不交付任何资源,只回 402 账单让用户重新支付。 |
| 商家履约 | 资源交付后由服务端调用 alipay.aipay.agent.fulfillment.confirm 上报履约确认;上报失败可对同一订单重试,重试幂等,不会产生第二次扣费。 |
| 订单与幂等 | 每笔订单以唯一 out_trade_no 持久化于服务端订单库,状态可恢复;同一订单重复请求只履约一次、不重复扣费;本机授权凭证可离线校验(python scripts/license_check.py check license.json),有效期内重复使用不再计费。 |
> 支付能力由支付宝 AI 按量付费官方链路承担,本 Skill 不接触支付密钥、不自行实现付款或签名。
<!-- /skillhub-payblock -->