three-way-match-freelisted
Install: claude install-skill chenqg618/compliance-skills
# 三单匹配AI核对(免费)
> 一句话:把**采购订单���入库单、发票**放在一起核一遍 —— 不需要付款,也不需要注册。
**完全免费**:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
> 不想安装也能用:**同一个检查有网页版**,免注册、免付款 —— <https://www.tokendidi.cn/check>
## 什么时候用
- 付款前想确认:**订单号 / 供应商 / 物料**在三张单据上是不是同一个
- 担心**数量或金额**在订单、入库、发票之间对不上(这是多付/错付的常见来源)
- 想查有没有**同一张发票重复入账**(重复付款线索)
- 单据模板里还留着 `【填写…】`、`XXX`、`TBD` 没替换
## 这个免费版查什么
| # | 检查项 |
|---|---|
| 1 | 关键字段跨单据一致:采购订单号 / 供应商 / 物料 |
| 2 | 数量 / 单价 / 金额跨单据一致 |
| 3 | 重复发票号线索 |
| 4 | 模板占位符残留 |
**金额会做归一化**:`1,000.00` 与 `1000.00` 视为同一个数,不会因为写法不同就报错。
**只出现在一张单据里的字段不会报** —— 无从比对的事情我们不猜。
## 怎么用
```bash
node scripts/run.mjs --sample
node scripts/run.mjs --input my-match.json
node scripts/run.mjs --input my-match.json --json
```
入参两种写法,任选:
```json
{ "documents": [
{ "type": "采购订单", "text": "采购订单号: PO-1\n供应商: 河南甲物资\n数量: 100\n金额: 1000.00" },
{ "type": "入库单", "text": "采购订单号: PO-1\n供应商: 河南甲物资\n数量: 100\n金额: 1000.00" },
{ "type": "发票", "text": "发票号: INV-1\n采购订单号: PO-1\n数量: 100\n金额: 1000.00" }
] }
```
或者**直接给纯文本,单据之间空一行**。
### 退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | **材料不足 —— 此时不给结论**(既不说一致,也不说不一致) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
## 这个免费版不包含
以下检查项**不在本版本范围内**,调用时也不会执行:
- 行内算术(数量 × 单价 = 金额)
- 税额与价税合计自洽(不含税 + 税额 = 价税合计)
- 发票数量 vs 入库数量的容差核对
- 发票金额 vs 订单金额的容差核对
- 订单数量 vs 入库数量的容差核对
- 同一物料的单价跨单据偏离提示
- 日期逻辑(订单 ≤ 入库 ≤ 发票)
- 付款条款与账期字段核对
## 边界(请务必知道)
- 本工具只做**AI比对**,**不判断这笔付款是否应当发生** —— 那是财务制度与审批流程的事;
- 不做发票真伪查验,不查供应商主体资格;
- **「没报问题」不等于「没有问题」**:超出上述四类的检查,本版本不执行;
- 材料不足时**不给结论**,也不会用默认