chemical-inventory-check-freelisted
Install: claude install-skill chenqg618/compliance-skills
# 危险化学品出入库与领用台账核对(免费版)
> **完全本地运行**:引擎已经打包在本技能里(`engine/` 目录)。
> 核对过程不需要联网、不需要 API Key、**没有调用次数上限**。
## 什么时候用
**谁会在什么时候用**:生产企业、实验室、仓储的**安环(EHS)/ 库管 / 财务**,在**每个月**
做危化品台账自查、安全检查资料准备、月度盘点对账这些固定节点上,必须把这张表核一遍才能往下走。
**为什么每个月都必须核**:危化品(含易制爆 / 易制毒)按安全生产与危化品管理要求要建
**出入库台账与领用记录**,做到「双人收发、双人记账、账物相符」,并每月与仓库盘点、领用单、
MSDS / 安全标签、储存条件记录对上。**对不上就是重大隐患**(应急管理部门的检查项):
账物不符、领用与退库对不上、超期未复检、超量储存,任何一条被查到都要限期整改。
**这张表(危险化学品出入库与领用台账)会逐项核对什么**:期初库存 / 本期入库 / 本期出库 / 期末库存的逐行勾稽、
期末库存与盘点实存的差异与差异率、领用量与退库量对实际消耗的勾稽、同一品名同一批次同一天的重复登记、
合计行逐列复核(数量列与金额列)、必需列的空白 / 占位符 / 数值格式 / 负数。
每条结论都带**原文行号与原文行内容**(含具体数字),可被第三方用同一口径复算;
材料不足(例如缺「本期出库」列、只贴了一段说明文字)时**不给结论**,会明确列出还缺什么。
## 这个免费版查什么
**本免费版只做**表内数量与金额的**逐行复算与列间勾稽**;
**不做**实物是否真的与台账相符的判定,**不做**储存场所与安全��施是否达标的判定,**不做**证件资质认定。
范围就是下面这六项(跑 `--sample` 会打印实际执行了哪些):
1. **数量勾稽** —— 期初库存 + 本期入库 − 本期出库 = 期末库存。逐行按 品名+规格 复算,差额不为零即列出并给出差额。
2. **账实核对** —— 期末库存(账)vs 盘点实存(实),逐行给出差额与差异率(差异 = 盘点实存 − 期末库存,差异率 = 差异 ÷ 期末库存)。
3. **领用与退库勾稽** —— 领用量 − 退库量 = 实际消耗(表里没有「实际消耗」列时对「本期出库」),逐行。
4. **重复登记检测** —— 同一 品名 + 同一 批次 + 同一 日期 登记两次即点名,并点出前一行的行号。
5. **合计行逐列复核** —— 「合计 / 总计 / 小计」行的每个数量列(期初 / 入库 / 出库 / 期末 / 盘点 / 领用 / 退库 / 消耗)
与金额列,都要等于明细行之和;逐列点名差在哪一列。
6. **空白 / 占位符 / 数值格式 / 负数** —— 必需列(品名 / 规格 / 批次 / 单位 / 期初库存 / 本期入库 / 本期出库 /
期末库存 / 盘点实存 / 领用量 / 退库量 / 日期)空白或写成「—」「待补」、数值认不��(**不会悄悄当成 0**)、
库存为负(负库存)、数量为负、金额为负。
「合计」行只参与第 5 项复核,不参与逐行勾稽 —— 否则一份台账里的合计会被当成一条明细再算一遍。
## 怎么用
```bash
node scripts/run.mjs --sample # 先看内置样例(一张干净台账,应报 0 条问题)
node scripts/run.mjs --input