Install
openclaw skills install @chenqg618/doc-compliance-pack-free把发票与单据材料按 14 项单据合规检查(发票领用存与开票数据、发票作废与红冲、农产品收购发票与进项抵扣、应付暂估与发票未到、合同一致性、多份合同条款差异、中标结果与合同一致性、投标报价明细、广告文案合规、广告文案违规体检、出口退税单证一致性、报销单合规、采购三单匹配、外贸单证单单一致)逐份材料核一遍,每份材料一行结论,结论都带原文文件与行号。完全本地运行,核对过程不需要联网、不需要 API Key、没有次数上限。
openclaw skills install @chenqg618/doc-compliance-pack-free完全本地运行:引擎已经打包在本技能里(
scripts/engine/)。 核对过程不需要联网、不需要 API Key、没有调用次数上限、不写任何文件。
谁会在什么时候用:采购 / 应付 / 财务会计 / 内控 / 代账,在别人把材料交上来、我要签字或付款之前。
来料从来不是一张单据:发票领用存台账、作废与红冲发票、农产品收购发票与进项抵扣、应付暂估与发票未到、 合同全文、多份合同条款、中标通知书与合同、投标报价明细、广告文案、出口退税单证、报销单、 采购三单(订单/入库单/发票)、外贸单证(发票/装箱单/提单)—— 一份材料往往要同时过好几把尺子, 逐把尺子手审既慢又容易漏,而且每来一批材料都要重来一遍。
这个包做的事只有一件:--input <材料目录>(每个子目录 = 一份材料 / 一个供应商),
一次跑完所有材料,每份材料一行结论。
下面 14 项,每份材料都跑一遍(检查项名字与引擎 CHECKS_GIVEN 逐条一致):
引擎里的 CHECKS_WITHHELD(本免费版不执行的项)会逐条打印出来,
它们是"未执行的检查项"的说明文本,不是实现。
另外,每个成员检查包自己没做的子检查(SUB_CHECKS_WITHHELD,本包合计 84 项)也在结果里
scope.sub_checks_not_run 如实列出 —— 两个档位都没实现它们,不会因为"买了完整档"就让买家以为这些项被跑了。
行号口径:14 个成员引擎报行号的字段并不统一(多数写 line,投标报价明细 写 row,
广告文案合规 写 index)。本包在批量壳层把它们统一换算成原文文件里的行号,
并且落位以原文内容为准(先按结论里的原文片段去找那一行),所以每条结论的
来源文件:行号 都能拿同一份材料复算。
node scripts/run.mjs --sample # 单份材料样例(内置)
node scripts/run.mjs --sample-batch # 3 份材料的批量样例(有硬伤 / 更严重 / 没交材料)
node scripts/run.mjs --input 材料目录 # 批量:每个子目录 = 一份材料
node scripts/run.mjs --input 材料目录 --json # 机器可读
材料目录怎么放(每个子目录里放这份材料的一套单据,每项用 === 检查项 === 分段,Tab 分隔最稳):
材料目录/
豫州新材料有限公司/报送材料.txt
中岳机电设备有限公司/报送材料.txt
也可以把 14 张单据拆成 14 个文件放进同一个子目录 —— 引擎会自己认表头找对应的那一项。
templates/sample.json 是引擎自己的样例,可以直接 --input 它先跑通一遍。
退出码:0 已执行检查 / 1 缺少入参 / 3 材料不足 / 4 入参读不到或无法解析 / 9 未预期错误。 材料不足(一份材料都没有、材料为空或只有几行、认不出任何一张单据)时, 本工具不做任何认定、也不给任何结论,打印缺什么并以退出码 3 结束 —— 不会把"没查"说成"通过"。
[结论] 材料名|问题 N 项(P0/P1/P2)|每一项:通过 / 有问题(n) / 未执行;材料 + 检查项 + 来源文件:行号 + 类别 + 具体数字,
第三方可以拿同一份材料复算;--sample 会照实报出这些结论 —— 那是这些成员样例的真实结论,不是误报;
另外 7 项在各自样例上是 0 条发现。本免费版是完整可用的核心产出,本版本不包含下面这些项:
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
=== 检查项 === 段里:每个检查项认的是自己那一段。
全部堆在一段时,只有能认出表头的那一项会跑,其余会如实标成「未执行」并报一条「材料只覆盖了一部分」,
那不是"查过了没问题"。--input 指向的目录里,每个子目录 = 一份材料。
把所有供应商的单据放进同一个子目录,会被当成一份材料,跨材料的差异与汇总也就无从谈起。--sample 的输出当自己的结论:样例只是让你确认「跑得通、格式对」,
真正的结论必须来自你自己的材料。