expense-compliance-freelisted
Install: claude install-skill chenqg618/compliance-skills
# 报销单合规预检(免费)
> 一句话:把**一沓发票 + 一张报销单**放在一起核一遍 —— 不需要付款,也不需要注册。
**完全免费**:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
## 什么时候用
- 报销前想确认:这一沓发票里**有没有同一张被贴了两次**(重复报销)
- 担心某张发票**要素不齐**(缺发票号 / 开票日期 / 销售方 / 金额),到财务那里被打回
- 报销单模板里还留着 `【填写…】`、`XXX`、`TBD` 没替换
## 这个免费版查什么
| # | 检查项 |
|---|---|
| 1 | 重复发票号(重复报销线索) |
| 2 | 发票要素完整性:发票号 / 开票日期 / 销售方 / 金额 |
| 3 | 模板占位符残留 |
**只出现在一张单据里的字段不会报** —— 无从比对的事情我们不猜。
## 怎么用
```bash
node scripts/run.mjs --sample
node scripts/run.mjs --input my-expense.json
node scripts/run.mjs --input my-expense.json --json
```
入参两种写法,任选:
```json
{ "documents": [
{ "type": "报销单", "text": "报销单号: BX-1\n报销金额: 1326.00\n住宿费 1240.00\n市内交通 86.00" },
{ "type": "发票", "text": "发票号: INV-1\n开票日期: 2026-05-08\n销售方: 某某酒店\n价税合计: 1240.00" },
{ "type": "发票", "text": "发票号: INV-2\n开票日期: 2026-05-07\n销售方: 某某出租车\n价税合计: 86.00" }
] }
```
或者**直接给纯文本,单据之间空一行**。
### 退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | **材料不足 —— 此时不给结论**(既不说合规,也不说不合规) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
## 这个免费版不包含
以下检查项**不在本版本范围内**,调用时也不会执行:
- 报销明细加总是否等于申请金额
- 申请金额大小写是否一致
- 发票合计与申请金额是否匹配
- 日期逻辑(发票日期 ≤ 报销日期;发票日期在出差区间内)
- 同一张发票的金额与报销明细是否对得上
- 报销单要素完整性(单号 / 报销人 / 部门 / 日期)
- 差旅标准超标提示(可配置标准)
- 发票税率与税额自洽
## 需要完整档时(可选)
本免费版是**完整可用的核心产出**,本版本**不包含**下面这些项:
- 报销明细加总是否等于申请金额
- 申请金额大小写是否一致
- 发票合计与申请金额是否匹配
- 日期逻辑(发票日期 ≤ 报销日期;发票日期在出差区间内)
- 同一张发票的金额与报销明细是否对得上
- 报销单要素完整性(单号 / 报销人 / 部门 / 日期)
- 差旅标准超标提示(可配置标准)
- 发票税率与税额自洽
需要它们的话,同名工具的**完整档**里都有——完整档是**另一个独立商品**(在 SkillPay 货架上,条款与条件以它自己的商品页为准)。两档的差别