交叉核对出口管制物项登记表,提示差异缺口
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-export-ctl-check该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件samples/quickstart/run.mjs:7
const material = await readFile(join(here, 'input', "EC-001-unsafe.json"), 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 核对出口管制物项台账
- 提示差异缺口
出口管制物项台账核对:依据《中华人民共和国出口管制法》。仅提示差异,不作出定性结论。
README
由 DeepSeek 最新模型翻译生成dsh-export-ctl-check — 出口管制物项登记表与许可证闭环交叉核对
dsh-export-ctl-check 读取一份出口管制物项登记表——出口商表头,加上每个物项一行——然后交叉核对这份登记表自身的完整性与闭环,而不是对物项本身做任何判断:每个物项是否在「是否受控」列写明自己是否受控,标记为受控的物项是否带有「出口许可证号」,填了许可证号的是否同时有签发日期,最终用途或最终用户是否记录在案,目的地是否记录在案,许可证号是否在同一份登记表内重复,管制类别是否属于机构自己的「管制类别」取值之一,以及物项名称列里是否还残留着【】、XXX、待填、TBD、示例这类占位符。
它能回答什么
| 你问 | 它回答什么 |
| 标记为受控的物项没有许可证号,会报出来吗? | EC-002 会报出这个缺口:只要某行的「是否受控」取值属于规则配置为受控的那几个——出厂自带 是、Y、yes、true、受控、√——它就要求填「出口许可证号」。它只检查号码填没填,不判断许可证是否真实、是否仍然有效、是否覆盖该物项和该目的地。如果你的登记表用别的词表示受控,就把它加进规则的条件取值里,否则该行会被算作不受控,规则保持沉默——这个插件不持有管制清单,没法替你决定这个问题。 |
| 物项写明了是否受控,但「最终用途」和「最终用户」两列都空着——有东西能抓到吗?
展开完整文档(README 剩余 1 节)
dsh-export-ctl-check — 出口管制物项登记表与许可证闭环交叉核对
dsh-export-ctl-check 读取一份出口管制物项登记表——出口商表头,加上每个物项一行——然后交叉核对这份登记表自身的完整性与闭环,而不是对物项本身做任何判断:每个物项是否在「是否受控」列写明自己是否受控,标记为受控的物项是否带有「出口许可证号」,填了许可证号的是否同时有签发日期,最终用途或最终用户是否记录在案,目的地是否记录在案,许可证号是否在同一份登记表内重复,管制类别是否属于机构自己的「管制类别」取值之一,以及物项名称列里是否还残留着【】、XXX、待填、TBD、示例这类占位符。
它能回答什么
| 你问 | 它回答什么 |
| 标记为受控的物项没有许可证号,会报出来吗? | EC-002 会报出这个缺口:只要某行的「是否受控」取值属于规则配置为受控的那几个——出厂自带 是、Y、yes、true、受控、√——它就要求填「出口许可证号」。它只检查号码填没填,不判断许可证是否真实、是否仍然有效、是否覆盖该物项和该目的地。如果你的登记表用别的词表示受控,就把它加进规则的条件取值里,否则该行会被算作不受控,规则保持沉默——这个插件不持有管制清单,没法替你决定这个问题。 |
| 物项写明了是否受控,但「最终用途」和「最终用户」两列都空着——有东西能抓到吗? | EC-004 会报出该行:它要求这两列至少填一列。两列填一列就够,规则也不判断所写的用途或用户是否属实,或者该情形是否属于法律禁止或限制的情形。 |
| 许可证号写上了,但签发日期列是空的。这算问题吗? | EC-003 要求填。条件就是许可证号:没有许可证号的行根本不会被要求填日期。规则不检查许可证的有效期,也不拿签发日期和出口日期做比较——它只确认日期在那儿,不确认日期在前。 |
| 同一个许可证号出现在好几行上。检查会怎么说? | EC-006 会报出该号码在这份登记表内重复。它分不清是一份许可证覆盖多个物项——登记表这么记很正常——还是号码抄错了,所以命中之后需要人来确认;规则不会重新编号,也不规定一份许可证可以对应多少行。如果你的登记表就是有意按「一证多物项」来写,就给该许可证的各行加个序号,或者把这条规则关掉。 |
| 一行完全没有最终目的地。 | EC-005 会报告它,因为每个物项都必须填写目的地。它只检查该列是否填写,不检查目的地是否被允许:某个国家或地区是否被禁运或受限,要读主管机关公布的清单,本插件不持有自己的国家清单。 |
| 物项名称列里还写着 【示例】 或 XXX——这算缺陷还是算真实名称? | 当名称包含规则查找的某个词时,EC-008 会报告该行——【、】、{{、}}、XXX、xxx、待填、待补充、TBD、todo 或 示例。这个词表跟随你自己的模板,可以调整。规则只在这一列里查找这些词:它从不判断名称本身是否真实正确。 |
遵循的标准
| 文件 | 编号 | 被哪些规则引用 |
| 《中华人民共和国出口管制法》 | 2020 年 10 月 17 日第十三届全国人大常委会第二十二次会议通过,主席令第五十八号公布,自 2020 年 12 月 1 日起施行 | EC-001, EC-002, EC-003, EC-004, EC-005, EC-006, EC-008 |
| 《中华人民共和国出口管制法》 | 现行版本本次未核实 | EC-007 |
边界: 本插件检查出口管制物项台账能否守住一份登记册应守的闭环——每个物项都写明是否受控,受控物项带有许可证号,许可证带有签发日期,最终用途或最终用户有记录,目的地有记录,许可证号不重复,管制类别来自你的词表,且没有占位符残留。它不判定某个物项是否受控、是否需要许可证,也不判定某次出口是否会违反规定。
⚠️ 本插件刻意做不到的事
它不包含管制清单,也不试图把商品编码或技术参数映射到清单条目上。 正因如此,它找不到最严重的缺陷:本该申报为受控却没有申报的物项。 某个物项是否受控,是出口经营者依法自行判定的,要确认就得查公布的清单。这一限制写在规则包的开头、每条规则的说明里,以及下面的疑难解答一节——这是了解本插件最重要的一件事。
因此,是否受控这一列是台账自己的声明。这里的一切检查的是该声明之后发生的事:许可证有没有记录,有没有日期,目的地和最终用途有没有写明,台账是否自洽。它从不检查该声明是否正确。
规则包里的每一处 excerpt 都明确写着,条款原文未能获取。 制度依据在《中华人民共和国出口管制法》、两用物项出口许可管理办法,以及公布的管制清单里。核查环节无法取回逐字条款原文,所以规则包在 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 |
它做什么
注册 export_ctl_check 工具。它读取一份物项登记表 —— 出口商表头,加上每个物项一行 —— 套用带版本号的规则包,然后返回报告。
| 规则 | 检查内容 | 严重级别 | 依据类型 |
| EC-001 | 每个物项都说明自己是否受控 | warn | principle |
| EC-002 | 受控物项带有许可证号 | warn | direct |
| EC-003 | 已记录的许可证带有签发日期 | warn | principle |
| EC-004 | 记录了最终用途或最终用户 | warn | direct |
| EC-005 | 记录了目的地 | warn | direct |
| EC-006 | 许可证号不重复 | warn | principle |
| EC-007 | 管制类别来自你自己的词表(默认关闭) | info | principle |
| EC-008 | 物项名称里没有未替换的占位符 | warn | direct |
安装
dsh plugin --profile <name> add dsh-export-ctl-check
dsh --profile <name> --dump-config | grep 'dsh-export-ctl-check'
配置
| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/export-ctl-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 追加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |
几个值得了解的规则级参数:
- EC-002 conditionValues —— 你的是否受控列中,标记物项受控的取值,默认是 [是, Y, yes, true, 受控, √]。
- EC-007 values —— 你的管制类别,例如 [核, 导弹, 生物, 化学, 军民两用]。留空表示不检查;插件不自带任何清单。
- EC-008 terms —— 要查找的占位符。
材料格式
工具接受 JSON 或 YAML:
exporter: 某某进出口有限公司 contractNo: SC-2026-018 listVersion: 2026 年版 rows:
- { 序号: '1', 物项名称: 某型高性能传感器, 商品编号: '9031809090',
管制类别: 军民两用, 最终用途: 用于工业自动化产线的位移测量, 最终用户: 某某工业自动化有限公司, 最终目的地: 德国, 许可证号: EX2026-0018, 许可日期: 2026-02-25, 是否受控: 是 }
列名匹配不区分大小写,并忽略空格、下划线和连字符;登记表自己的列名会保留,所以每条发现都会指出它读的是哪一列。
规则来源
规则数据放在 rules/export-ctl-check.yaml。它的表头说明:插件不持有任何管制清单,它不查询清单,因此无法发现未申报的受控物项。加载时的守卫仍然要求每条规则都有 document、clause、excerpt 和 source,也仍然禁止把源自原则或本地配置的检查设为 error。
故障排查
- 它没有标记我认为受控的物项。 这是有意为之:它没有管制清单,也从不把物项映射到清单。请你自己对照公开清单确认;这个插件帮不了你。
- EC-002 在我确信不受控的物项上触发。 它的是否受控列写着受控。要么改这一列,要么记录许可证——插件读的是申报内容,不是货物本身。
- EC-006 在多个物项共用一个许可证时触发。 一个许可证覆盖多个物项很正常;把各行区分开,或者如果你的登记表就是这么写的,就关掉这条规则。
- EC-005 不知道哪些目的地受限。 它只检查目的地有没有记录。内置国家清单是没有的,这是刻意为之。
- 插件装上了,但工具一直不出现。 检查 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-export-ctl-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-export-ctl-check # refresh src/shared from ../_shared
这个插件是纯数据的:src/model.ts 声明表结构,共享套件提供读取器和检查引擎,规则包声明每一条检查。
许可证
Apache License 2.0 © 2026 dsh-export-ctl-check contributors。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-export-ctl-check
交叉核对出口管制物项登记表,提示差异缺口
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这是你的仓库?认领条目