autoshop-parts-labor-check-freelisted
Install: claude install-skill chenqg618/compliance-skills
# 汽修配件与工时费结算核对(免费版)
> **完全本地运行**:引擎已经打包在本技能里(`engine/` 目录)。
> 核对过程不需要联网、不需要 API Key、**没有调用次数上限**、材料不出本机。
## 什么时候用
**谁在什么时候用**:服务顾问、配件库管、结算会计在**每张维修工单交车结算时、每月与保险公司 / 大客户对账时** ——
「维修工单配件与工时费明细表」是客户结算单、保险理赔单、门店收入与配件成本的原始依据,
客户签字后再改就要走红冲 / 退料流程。
**这张表会逐项核对什么**(免费版执行 6 类,逐条都带**原文行号**):
1. **配件小计复算** —— 配件小计 = 数量 × 配件单价,差 0.01 也会报。
2. **工时费复算** —— 工时费 = 工时 × 工时单价,差 0.01 也会报。
3. **工单总额勾稽** —— 工单总额 = Σ配件小计 + Σ工时费 + Σ辅料费 − Σ折扣(按工单聚合;辅料费 / 折扣按明细行相加)。
4. **重复配件行** —— 同一门店 + 同一工单号 + 同一配件名称 + 同一规格型号出现两次以上。
5. **配件数量或工时为负** —— 退料 / 红字冲销行没有单独列示。
6. **关键字段空缺或占位符** —— 必需列为空或写着「待填 / 待补 / — / 无 / N/A」。
每条结论都带**原文行号与算式**,可被第三方用同一份输入复算;
材料不足时**不给结论**,会明确列出还缺什么,也不会用默认值编出结论。
## 这个免费版查什么
上面 6 类就是本版本执行的全部检查项。跑 `--sample` 会在 `scope.checks` 里打印本次实际执行了哪些,
`scope.checks_not_run` 会如实列出**本版本没有执行**的检查项(只列出,不会伪造结论)。
## 怎么用
```bash
node scripts/run.mjs --sample # 先看样例(样例本身就是一张自洽的工单明细表)
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
node scripts/run.mjs --input 你的材料.json --json # 机器可读输出
```
入参两种写法都行:
- `{"text": "(把表的**表头**和若干行一起复制进来,Tab 分隔最稳)"}`
- 直接把「维修工单配件与工时费明细表」(**含表头**)从 Excel 复制成文本贴进 `.json` 里;
文件不是合法 JSON 时整体按纯文本材料处理。
必需列(缺一列就不给结论):工单号、配件名称、数量、配件单价、配件小计、工时、工时单价、工时费、工单总额。
可选列:门店、规格型号、工时项目、辅料费、折扣、备注。
表里没��「辅料费」/「折扣」两列时按 0 计,并在 `scope.aux_basis` / `scope.discount_basis` 里标注口径来源。
## 出参
- `status`:`success` 才有结论;`insufficient_input` 表示材料不足,此时**没有** `result`、**没有** `findings`,
只有 `missing`(缺什么)与 `advice`(怎么补)。
- `result.findings[]`:每条含 `level`(P0/P1/P2)、`ca