🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

信用证单据核对 PerryLink/dsh-lc-doc-check

DeepSeek Harness
PerryLink27 天前有提交已提供中文文档扫描:未发现敏感能力

检查交单清单完整性与日期一致性,提示差异

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-lc-doc-check
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · tool
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 检查交单清单完整性
  • 核对日期一致性
  • 提示差异

信用证单据核对:依据《跟单信用证统一惯例》(UCP600)《表示货币的代码》。仅提示差异,不作出定性结论。

README

由 DeepSeek 最新模型翻译生成
dsh-lc-doc-check — 信用证交单清单完整性检查与内部日期一致性检查 dsh-lc-doc-check 读取一份信用证交单清单——信用证抬头,加上每个条款一行——检查这份清单自身的完整性与内部一致性:每个条款是否记录了单据类型和信用证的要求,是否记录了交单,交单日期是否不晚于到期日,最迟装运日期是否不晚于到期日,不符点标记是否来自你配置的词表,信用证号和受益人是否已声明,币种是否写成三字母代码,以及单据类型是否重复。 它能回答什么 | 你问 | 它回答什么 | | 某个条款把单据类型和信用证的要求都留空了。这会被报出来吗? | 会。LC-001 会报出这个条款,因为每个带 docType 或 requirement 列的条款,两者中至少要填一个。它只检查有没有写东西,不判断条款的含义:它不解读信用证条款,所以填了但填错的要求照样通过。 | | 要求写上了,但交单列是空的。 | LC-002 要求每个带该列的条款都有 presented,并报出该列为空的行。它只检查交单有没有记录,不检查记的是什么——它不拿这个单元格和要求单元格做比对,因为比对意味着要读懂条款和单据。 | | 它实际比对哪些日期?解析不了的日期会怎样?
展开完整文档(README 剩余 1 节)
dsh-lc-doc-check — 信用证交单清单完整性检查与内部日期一致性检查

dsh-lc-doc-check 读取一份信用证交单清单——信用证抬头,加上每个条款一行——检查这份清单自身的完整性与内部一致性:每个条款是否记录了单据类型和信用证的要求,是否记录了交单,交单日期是否不晚于到期日,最迟装运日期是否不晚于到期日,不符点标记是否来自你配置的词表,信用证号和受益人是否已声明,币种是否写成三字母代码,以及单据类型是否重复。

它能回答什么

| 你问 | 它回答什么 |
| 某个条款把单据类型和信用证的要求都留空了。这会被报出来吗? | 会。LC-001 会报出这个条款,因为每个带 docType 或 requirement 列的条款,两者中至少要填一个。它只检查有没有写东西,不判断条款的含义:它不解读信用证条款,所以填了但填错的要求照样通过。 |
| 要求写上了,但交单列是空的。 | LC-002 要求每个带该列的条款都有 presented,并报出该列为空的行。它只检查交单有没有记录,不检查记的是什么——它不拿这个单元格和要求单元格做比对,因为比对意味着要读懂条款和单据。 |
| 它实际比对哪些日期?解析不了的日期会怎样? | 两对,仅此两对:LC-003 比对 presentedAt 与 expiryAt,LC-004 比对 latestShipment 与 expiryAt;到期日可以放在抬头里,因为读取时先找行、再找抬头,同一天算作不晚于。两条规则都解析不了的日期,会连同所在行一起报出,而不是跳过不管。LC-004 不读取实际装运日期,装运后若干天内交单的要求也不检查,因为数据包说明它拿不到那段文本。 |
| LC-005 从来不报任何东西。是坏了吗? | LC-005 没坏:它的 values 列表出厂时是空的,也就是未配置,此时规则会在 skipped 里连同原因一起报出自己,而不是悄悄放过。把 values 填上你所在机构的不符点措辞,它就会报出每一行 discrepancy 值不在列表中的记录。它只检查标记是不是你认得的那个,从不判断是否真的存在不符点。 |
| 表头没有信用证号码,或者币种写成 usd。 | lcNo 或 beneficiary 未声明时,LC-006 报告表头,这样一份交单就能对应到某一笔信用证。currency 值不是三个大写字母(规则包默认模式)时,LC-007 报告,无论币种出现在表头还是行上;它只检查格式,不检查该币种是否就是这笔信用证该用的币种。 |
| 同一单据类型出现在两行。 | LC-008 把后一行报告为前一行的重复,比较时忽略值中的空格。命中需要人工确认:一笔信用证常常对同一单据类型提出多项要求,所以要在条款号列里区分这些行,而不是删掉一行——或者禁用该规则。 |

遵循的标准

| 文件 | 编号 | 被哪些规则引用 |
| 《跟单信用证统一惯例》(UCP600) | 国际商会第 600 号出版物(本次未取得条文) | LC-001, LC-002, LC-003, LC-004, LC-005, LC-006, LC-008 |
| 《表示货币的代码》 | GB/T 12406—2022(表示货币的代码;2022-12-30 发布并实施;全部代替 GB/T 12406—2008(该版名称为「表示货币和资金的代码」)——注意旧版名称含"资金";修改采用 ISO 4217:2015,非等同采用;条号本次未取得) | LC-007 |

边界: 本插件检查信用证交单核对表中单据合规的机械层面——每项条款都记录了单据类型和信用证的要求,交单已记录,交单日期不晚于有效期,最迟装运日期不晚于有效期,不符点标记来自你的词表,信用证号码和受益人已声明,币种符合其格式,单据类型唯一。它不判定一份交单是否不符,不判定银行是否必须付款,也不判定单据是否满足信用证条款。

⚠️ 它读的是核对表,不是信用证,也不是单据

插件不解释信用证条款。 它检查要求列和交单列都已填写——它不比较这两列,因为比较就意味着读条款和单据,那是银行依据 UCP 600 和 ISBP 做的审核。所以,只要两列都有文字,即使单据明显不符合某项条款,也能通过本插件。

不符点列是你的声明。 插件只检查其值是否是你认可的值;它从不判定不符点是否存在。那个判断属于银行。

只包含两项日期检查,且仅此两项:交单 ≤ 有效期,最迟装运 ≤ 有效期。UCP 600 中要求在装运后若干天内交单的规则未做检查,因为规则包无法取得条文,而且登记表通常没有单独的实装日期列。该规则的注释说明了这一点,并解释了如果你的登记表有这一列,该如何添加检查。

规则包里的每处 excerpt 都明确写着,条款文本未取得—— ICC 的 UCP 600 和 ISBP 是两份出版物,校验环节无法逐字取回原文。规则包在 excerpt 字段里自己说明了这个缺口,并把每条规则都保持在 warn 或 info。拿到原文后,把每个 excerpt 换成真实条款,并把 kind 提升为 direct。

兼容性

| 层面 | 状态 |
| Harness | 对等范围 >=0.1.2-rc.1 <0.2.0 \|\| >=0.2.0-0 <0.3.0 —— 已验证同时接受 0.2.0-rc.2 和 0.2.1-alpha.1。故意不声明 engines.dsh:它没有读取方,也无法拒绝宿主 |
| Node | ^22.19.0 || >=24.0.0 |
| 平台 | 全部(纯 ESM;无原生代码,无网络,不调用模型) |
| 工具模式 | 在 native、ptc 和 both 下都能用;要完整呈现请用 ptc |

做什么

注册 lc_doc_check 工具。它读取一份交单清单——信用证抬头加每条条款一行——套用带版本的规则包,返回报告。

| 规则 | 检查 | 严重级别 | 依据类型 |
| LC-001 | 每条条款都记录单据类型和要求 | warn | principle |
| LC-002 | 每条条款都记录交单 | warn | principle |
| LC-003 | 交单不晚于到期日 | warn | principle |
| LC-004 | 最迟装运不晚于到期日 | warn | principle |
| LC-005 | 不符点标记来自你的词表(默认关闭) | info | local |
| LC-006 | 声明了信用证号和受益人 | warn | principle |
| LC-007 | 币种是三位字母代码 | warn | principle |
| LC-008 | 单据类型唯一 | warn | principle |

安装

dsh plugin --profile <name> add dsh-lc-doc-check
dsh --profile <name> --dump-config | grep 'dsh-lc-doc-check'

配置

| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/lc-doc-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 附加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |

几个值得了解的规则级参数:

- LC-003 / LC-004 的 field / notAfterField —— 要比较的日期对。到期日可能放在抬头;读取器先找行内,再找抬头,所以信用证级的到期日也能找到。
- LC-005 的 values —— 你的不符点词表,例如 [无不符点, 有不符点, 已接受, 已拒付]。留空表示不检查。
- LC-007 的 pattern —— 币种形态,默认三位大写字母。
- LC-008 —— 单据类型必须唯一。如果你的信用证对同一单据类型提出多项要求,就在条款号列里区分各行,或者禁用这条规则。

材料格式

工具接受 JSON 或 YAML:

lcNo: LC2026-0018
lcType: 不可撤销即期信用证 applicant: 某某进口商 beneficiary: 某某出口有限公司 issuingBank: 某某银行 currency: USD expiryAt: 2026-04-10 rows:
- { 序号: '1', 单据种类: 商业发票,
信用证要求: 商业发票一式三份,注明信用证号与合同号, 提交情况: 已提交一式三份,已注明信用证号与合同号, 份数: '3', 交单日期: 2026-03-20, 最迟装运日: 2026-03-15, 有效期: 2026-04-10, 不符点: 无不符点, 处理状态: 已审单 }

列名匹配不区分大小写,空格、下划线和连字符一律忽略;清单自己的列名会保留下来,所以一条发现会指出它读的是哪一列。日期可以写成 2026-03-20,也可以写成 2026-03-20 14:00。

规则来源

规则数据放在 rules/lc-doc-check.yaml。规则包的头部说明插件检查什么、哪些留给银行,每条规则的 note 再重复一遍对该规则要紧的那部分。加载时的守卫仍然要求每条规则都有 document、clause、excerpt 和 source,也仍然禁止把本地配置的检查设为 error。

疑难排查

- 明明有不符点的交单,它却放过了。 这是有意为之:它只记录「要求」和「提交情况」都写下来了,从不比较两者。审单是银行的事。
- LC-005 从不运行。 它的词表是空的。填上你所在银行的说法,或者干脆让它保持禁用。
- LC-004 抓不到迟装运。 这条规则拿最迟装运日和有效期比较,而不是拿实际装运日比较。如果你的登记表里有实际装运日这一列,就加一条规则,用 field: <实际装运日那一列> 和 notAfterField: latestShipment。
- LC-008 对同一单据种类的两条要求都报警。 很多信用证里这很正常;把行号错开,或者禁用这条规则。
- 插件装上了,工具却一直不出现。 检查 main 是否指向 lib/index.mjs,以及 pnpm run build 是否生成了它;main 写错会让加载器静默跳过入口。
- dsh plugin add 以不兼容为由拒绝这个包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时不在这个范围内,就显式授予豁免: dsh plugin --profile <name> allow-version dsh-lc-doc-check@0.1.0 --dsh-version <runtime> --accept-risk
- check 报告 manifest-peers 失败。 静态检查器比对的是一个硬编码的 peer 范围,它早于 0.2 系列。运行时会在安装时强制校验 peer 兼容性,所以声明的范围才是正确的;这是 dsh-plugin-dev 里已知的上游问题。

开发

pnpm install
pnpm run typecheck # tsc --noEmit
pnpm test # vitest, the shared table-plugin suite plus paired fixtures
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-lc-doc-check # refresh src/shared from ../_shared

这个插件是纯数据的:src/model.ts 声明表格形状,共享工具包提供读取器和检查引擎,规则包声明每一项检查。

许可证

Apache License 2.0 © 2026 dsh-lc-doc-check contributors。
预览分享卡片长什么样 ↓PerryLink/dsh-lc-doc-check
分享 · DeepSeek Harness Hub
PerryLink/dsh-lc-doc-check

检查交单清单完整性与日期一致性,提示差异

这是你的仓库?认领条目

回到顶部