360 Secure SkillHub
360 安全技能中心

发票与单据合规技能包(免费版)

对发票、合同、招投标、报销、出口退税、采购三单、外贸单证等材料逐份执行 14 项一致性合规检查,输出每份材料的结论与问题明细,每条含来源文件与行号;完全本地运行,无需联网与 API Key,不写文件,材料不足时以退出码 3 结束且不作认定。

chenqg618
chenqg618
热度 20.76
最近更新 2026-09-20 20:06:10
分类:安全依赖:代码执行 / 读写文件应用场景:财务 / 法律文档 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add doc-compliance-pack-free
Metadata
slug
doc-compliance-pack-free
displayName
发票与单据合规技能包(免费版)
version
1.0.30
summary
把一堆别人交上来的发票与单据按 14 项单据合规检查逐份材料核一遍,每份材料一行结论,结论都带原文文件与行号,不需要付款、不需要注册。
tags
["发票与单据合规技能包","单据合规","发票","合同","招投标","报销","核对"]
license
Proprietary
name
doc-compliance-pack-free
display_name
发票与单据合规技能包(免费版)
display_name_en
Invoice & Document Compliance Pack (Free)
description
把发票与单据材料按 14 项单据合规检查(发票领用存与开票数据、发票作废与红冲、农产品收购发票与进项抵扣、应付暂估与发票未到、合同一致性、多份合同条款差异、中标结果与合同一致性、投标报价明细、广告文案合规、广告文案违规体检、出口退税单证一致性、报销单合规、采购三单匹配、外贸单证单单一致)逐份材料核一遍,每份材料一行结论,结论都带原文文件与行号。完全本地运行,核对过程不需要联网、不需要 API Key、没有次数上限。
description_zh
把发票与单据材料按 14 项单据合规检查(发票领用存与开票数据、发票作废与红冲、农产品收购发票与进项抵扣、应付暂估与发票未到、合同一致性、多份合同条款差异、中标结果与合同一致性、投标报价明细、广告文案合规、广告文案违规体检、出口退税单证一致性、报销单合规、采购三单匹配、外贸单证单单一致)逐份材料核一遍,每份材料一行结论,结论都带原文文件与行号。完全本地运行,核对过程不需要联网、不需要 API Key、没有次数上限。
description_en
A local checker for invoices and supporting documents. It runs 14 built-in document compliance checks per material directory and prints one conclusion line per material, each finding citing the source file and line. No payment, no registration, no API key, no network.
category
business-ops
author
WorkBuddy 开放平台开发者
allowed-tools
Read, Bash

发票与单据合规技能包(免费版)

完全本地运行:引擎已经打包在本技能里(scripts/engine/)。 核对过程不需要联网、不需要 API Key、没有调用次数上限、不写任何文件。

什么时候用

谁会在什么时候用:采购 / 应付 / 财务会计 / 内控 / 代账,在别人把材料交上来、我要签字或付款之前。

来料从来不是一张单据:发票领用存台账、作废与红冲发票、农产品收购发票与进项抵扣、应付暂估与发票未到、 合同全文、多份合同条款、中标通知书与合同、投标报价明细、广告文案、出口退税单证、报销单、 采购三单(订单/入库单/发票)、外贸单证(发票/装箱单/提单)—— 一份材料往往要同时过好几把尺子, 逐把尺子手审既慢又容易漏,而且每来一批材料都要重来一遍。

这个包做的事只有一件:--input <材料目录>(每个子目录 = 一份材料 / 一个供应商), 一次跑完所有材料,每份材料一行结论。

这个免费版查什么

下面 14 项,每份材料都跑一遍(检查项名字与引擎 CHECKS_GIVEN 逐条一致):

  1. 发票领用存与开票数据
  2. 发票作废与红冲
  3. 农产品收购发票与进项抵扣
  4. 应付暂估与发票未到
  5. 合同一致性
  6. 多份合同条款差异
  7. 中标结果与合同一致性
  8. 投标报价明细
  9. 广告文案合规
  10. 广告文案违规体检
  11. 出口退税单证一致性
  12. 报销单合规
  13. 采购三单匹配
  14. 外贸单证单单一致

引擎里的 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) / 未执行;
  • 有价值的是问题明细:每条都带 材料 + 检查项 + 来源文件:行号 + 类别 + 具体数字, 第三方可以拿同一份材料复算;
  • 本包的内置样例里,有 7 项的样例本身就是有问题的材料(合同主体不一致、条款缺条、 投标报价分项算术不平、绝对化用语、重复发票号、三单字段不一致、单单不一致), 所以 --sample 会照实报出这些结论 —— 那是这些成员样例的真实结论,不是误报; 另外 7 项在各自样例上是 0 条发现。

需要完整档时(可选)

本免费版是完整可用的核心产出,本版本不包含下面这些项:

  • 跨材料体检台账(全部材料 × 全部 14 项检查合并成一张总表)
  • 按风险排序的「能不能签 / 能不能付」处置清单(带材料名与原文文件行号)
  • 跨材料共性问题归类(同一类问题命中 2 份及以上材料时合并成一条共性项)
  • 体检报告导出(Markdown 与 CSV 文本,直接交给签字/付款复核环节)

同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。

边界(请务必知道)

  • 不判断某份发票/合同/单据是否真实、是否伪造、是否具备法律效力;
  • 不代替审计程序、函证与税务鉴证,也不出具鉴证意见或法律意见;
  • 不核验发票真伪(不查全国增值税发票查验平台、不比对税局数据),也不判断某笔支出能否税前扣除;
  • 不读取财务软件 / 票税系统 / 合同管理系统的导出文件 —— 需要你先导出成文本,一份材料一个目录;
  • 不判断合同条款是否公平、是否对我方有利,也不评价报价是否合理(只核你给的内容是否自洽)。

常见错法

  • 把 14 张单据全塞进一个 === 检查项 === 段里:每个检查项认的是自己那一段。 全部堆在一段时,只有能认出表头的那一项会跑,其余会如实标成「未执行」并报一条「材料只覆盖了一部分」, 那不是"查过了没问题"。
  • 一份材料一个目录:--input 指向的目录里,每个子目录 = 一份材料。 把所有供应商的单据放进同一个子目录,会被当成一份材料,跨材料的差异与汇总也就无从谈起。
  • 以为「未执行」=「通过」:某份材料只交了 3 张单据,那 3 项之外的 11 项是没有核, 结论里写的是「未执行」,并且会单独报一条覆盖缺口。
  • 表头行被删掉:只贴数据行不贴表头,该项直接变成「未执行」(引擎认不出列的角色)。
  • 拿 --sample 的输出当自己的结论:样例只是让你确认「跑得通、格式对」, 真正的结论必须来自你自己的材料。