skillpack-lint-paylisted
Install: claude install-skill Mao-jh/skillpack-lint
# Skill 包发布前体检(一次付费 7 天不限次)
发布前把会被拒收的问题一次找全,能自动修的自动修掉。
本 Skill 分两段:**先免费体检**(只读,不写任何文件),**再取授权真修**(在你本机完成,不联网)。
> **为什么需要授权**:批量规范化文件需要一份由服务方签发的凭证。
> 授权**在你本机离线校验**,但**没有有效授权就不写盘**——这是服务的一部分,不是限制。
---
## 第 0 步 · 先体检(免费,建议必做)
```bash
python scripts/skilllint.py lint 我的skill/
python scripts/skilllint.py lint 别人给的包.zip
```
逐条输出问题,分两档:**FAIL**(会直接卡住发布)与 **WARN**(建议改)。
每条带错误码,便于批量比对:
| 错误码 | 含义 |
|---|---|
| `E_NO_SKILL_MD` | 根目录没有 SKILL.md |
| `E_NO_FM` | frontmatter 缺失或不闭合 |
| `E_FM_MISSING` | frontmatter 缺 name / description |
| `E_DESC_SHORT` / `E_DESC_LONG` | description 太短(< 20 字)或超长���> 1024 字) |
| `E_ENCODING` | 文件不是 UTF-8(GBK 等) |
| `E_INSTALL_HINT` | 代码或文档里出现要求装依赖的指令 |
| `E_PY_SYNTAX` | `.py` 有语法错误 |
| `W_NAME_STYLE` / `W_NAME_MISMATCH` | name 不是 kebab-case / 与目录名不一致 |
| `W_BOM` / `W_CRLF` | 带 BOM / CRLF 行尾 |
| `W_EXT` / `W_FILENAME` / `W_EMPTY` / `W_HUGE` | 文件类型 / 文件名 / 空文件 / 体积偏大 |
| `W_NO_SELFTEST` | 有 scripts/ 但没有自检入口 |
**没给 `--apply` 时,什么文件都不会被改写。**
## 第 1 步 · 请求授权(未付费会返回 402)
```
POST https://skills-gate.airpriv.com/api/skillpack-lint-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 步 · 携凭证重试(拿到授权凭证)