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

隐患条款映射核对 PerryLink/dsh-hidden-risk-map

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

把隐患台账逐行映射到判定标准候选条款,列出未匹配与缺字段线索供复核

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-hidden-risk-map
该包不可直接 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
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 隐患台账逐行映射
  • 列出未匹配与缺字段线索
  • 仅提示差异

隐患风险图谱核对:依据《工贸企业重大事故隐患判定标准》(应急管理部令第10号)。仅提示差异,不作出定性结论。

README

由 DeepSeek 最新模型翻译生成
dsh-hidden-risk-map — 把隐患台账条目映射到重大事故隐患判定标准的候选条款 dsh-hidden-risk-map 读取一份安全隐患台账——每条记录的隐患占一行,列就是台账实际带的那些列——再按字面关键词匹配,把每一行映射到重大事故隐患判定标准的候选条款上,匹配范围是 隐患描述 这类字段的文本;它报告的是这份索引自身的缺口,而不是任何判断:完全没匹配上条款的行、匹配上了但条款属于其他行业、或涉及危险化学品、消防、燃气、特种设备而第二条已交给其他规定的行、匹配上了却缺少机构所配置的整改闭环字段的行,以及命中行数超过配置上限的条款。每条发现都写明它出自哪一条;输出的是供复核的线索,台账的关键词表是编辑辅助,不是标准正文;跑不起来的检查会在 skipped 里说明原因,而不是默不作声地算通过。 它能回答什么 | 你问 | 它答 | | 台账跑完了,没有条款被标出来——这是不是说明没有重大事故隐患? | 不是。这个工具最显眼的计数是它没能映射的行数,不是「零隐患」的结论。HR-001 会列出每一行文本没匹配上任何条款关键词的记录:可能是别的行业的条款,可能是归其他规定管的隐患类型,也可能是关键词表还没收录的措辞。它只报告找不到条款,并不判定这一行是不是重大事故隐患。 | | 导出的表里有编号、有日期,但没有名为 隐患描述 的列。
展开完整文档(README 剩余 1 节)
dsh-hidden-risk-map — 把隐患台账条目映射到重大事故隐患判定标准的候选条款

dsh-hidden-risk-map 读取一份安全隐患台账——每条记录的隐患占一行,列就是台账实际带的那些列——再按字面关键词匹配,把每一行映射到重大事故隐患判定标准的候选条款上,匹配范围是 隐患描述 这类字段的文本;它报告的是这份索引自身的缺口,而不是任何判断:完全没匹配上条款的行、匹配上了但条款属于其他行业、或涉及危险化学品、消防、燃气、特种设备而第二条已交给其他规定的行、匹配上了却缺少机构所配置的整改闭环字段的行,以及命中行数超过配置上限的条款。每条发现都写明它出自哪一条;输出的是供复核的线索,台账的关键词表是编辑辅助,不是标准正文;跑不起来的检查会在 skipped 里说明原因,而不是默不作声地算通过。

它能回答什么

| 你问 | 它答 |
| 台账跑完了,没有条款被标出来——这是不是说明没有重大事故隐患? | 不是。这个工具最显眼的计数是它没能映射的行数,不是「零隐患」的结论。HR-001 会列出每一行文本没匹配上任何条款关键词的记录:可能是别的行业的条款,可能是归其他规定管的隐患类型,也可能是关键词表还没收录的措辞。它只报告找不到条款,并不判定这一行是不是重大事故隐患。 |
| 导出的表里有编号、有日期,但没有名为 隐患描述 的列。 | 读取器会拒绝这份材料,而不是去猜;它绝不会把最长的字段当成隐患文本。当 隐患描述、隐患内容、问题描述、检查内容、描述、text、description、content、hazard 一个都不在时,它会列出实际看到的列(或者报告一列都没有),并说明不存在可用的隐患描述文本,于是检查不运行,任何东西——连 HR-001 的未映射清单——都不会被读成通过。 |
| 这一行写的是 液氨制冷机房未设置氨气泄漏监测报警装置——为什么没映射上? | HR-001 按字面匹配关键词,因为一句话是不是讲氨泄漏,该由复核人判断,不是模糊文本判断能定的。只有当你的关键词表收录了那种措辞,关于液氨的行才会被映射;词表在 第十二条(行业 使用液氨制冷)下收录了它。关键词列表是为这个插件写的编辑辅助,不是标准正文,所以措辞不一样时,把你现场自己的说法加进 keywords。 |
| 某一行提到消防或特种设备,标准就被拿来当作依据引用。 | 这是 HR-002 在起作用,它并不对该行分类。第二条把危险化学品、消防、燃气和特种设备交给其他条款,所以规则引用那句话,把该行报告为「查对应法规」,而不是做映射。只有当本部署配置了 industry 时,它才会额外标出属于其他行业的匹配条款;如果 industry 为空,它会在 skipped 里说明行业检查没有运行,而不是悄悄放过。 |
| 台账行没有整改措施、整改责任人或整改完成时间列。 | 只有在配置了这些列名之后才是 HR-003:requiredFields 为空意味着检查不运行,规则会在 skipped 里报告自己。一旦配置好,匹配到的行缺少其中某一列就会被报告。规则只检查这些列是否存在——它不判断整改是否到位,也不判断该事项是否已闭环。 |
| 台账里很多行都命中第三条,其中几行看起来是同一个缺陷写了两遍。 | HR-004 按条款对匹配结果分组,当某一条款被命中的行数超过 maxHitsPerClause 允许值时报告,并列出这些行号。这是给人工复核用的 info 级线索:判断那是重复录入还是系统性缺陷,仍由复核人决定。maxHitsPerClause 未设置(0)意味着规则不运行,它会在 skipped 里说明。 |

遵循的标准

| 文件 | 编号 | 被哪些规则引用 |
| 《工贸企业重大事故隐患判定标准》 | 应急管理部令第10号 | HR-001, HR-002, HR-003, HR-004 |

边界: 本插件把安全隐患台账的每一行映射到重大事故隐患判定标准的候选条款上,并报告哪些行完全无法映射。它不是 dsh-emergency-plan(那个检查预案的要素完整性),也不是现场检查工具。它读取台账,产出供复核的线索——绝不判定某事项是否属于重大事故隐患,那需要现场走访和专业判断。

⚠️ 本插件最有用的地方,是承认自己没能映射什么

基于关键词的映射器,失效方式是无声的:匹配不到任何东西的行直接消失,读者便得出「未发现重大隐患」的结论。所以 HR-001 反过来做:每一行没有匹配到任何条款的,都被明确列出,并给出它可能被漏掉的原因——属于其他行业的条款、由其他规则管辖的隐患类型,或者只是关键词表还没收录的措辞。因此本插件最醒目的数字是「N 行未映射」,而不是「0 个隐患」。

标准已被替换,条款号也随之变动。 现行判定标准是 应急管理部令第10号《工贸企业重大事故隐患判定标准》(2023-03-20 通过,2023-04-14 公布,2023-05-15 施行)。其第十五条明确废止安监总管四〔2017〕129号《工贸行业重大生产安全事故隐患判定标准(2017版)》。本包只引用第10号令的条文编号,并且有测试断言:被取代的 2017 年编号绝不会出现。

这个插件有两件事刻意不做。 它不判定某一行就是重大隐患;它也不对第 2 条交给其他制度管理的隐患做分类——危险化学品、消防、燃气和特种设备由其他条款管辖,所以碰到这些内容的行会报「请改查对应法规」,而不是做映射。

兼容性

| 层面 | 状态 |
| 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 |

它做什么

注册 hidden_risk_map 工具。它读取隐患台账——每行一条已记录的隐患,列就是台账实际带的那些列——套用带版本的规则包,返回一份报告,其中每条结论都写明出自哪一条条文。

| 规则 | 检查内容 | 严重级别 | 依据类型 |
| HR-001 | 每一行都映射到某个条款,或被列为未映射 | warn | principle |
| HR-002 | 命中的条款属于本次部署的行业,或已转交其他制度 | warn | direct |
| HR-003 | 命中的行带有配置的整改字段(默认关闭) | warn | principle |
| HR-004 | 同一条款被多行命中时标记待复核(默认关闭) | info | principle |

安装

dsh plugin --profile <name> add dsh-hidden-risk-map
dsh --profile <name> --dump-config | grep 'dsh-hidden-risk-map'

配置

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

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

- HR-001 的 clauses —— 条文表:article、industry、excerpt,以及用来选中它的 keywords。这些关键词是编辑辅助,不是标准原文。 它们的作用是把台账里的一句话指向候选条文;用的时候把你单位自己的说法加进去。
- HR-002 的 industry —— 你所在企业的行业。留空表示行业检查无法运行,并会说明这一点。otherRegimes 列出第 2 条交给其他条款管理的隐患类型。
- HR-003 的 requiredFields —— 你的流程要求的整改闭环列,例如 [整改措施, 整改责任人, 整改完成时间]。留空表示该规则不运行。
- HR-004 maxHitsPerClause — 某条条款被超过这么多行命中时标记出来。0 表示禁用。

材料格式

工具接受 JSON 或 YAML。每个条目要么是隐患文本,要么是台账自身列的映射:

entries:
- { row: 1, 隐患描述: 炼钢连铸流程未设置事故钢水罐, 整改措施: 增设事故钢水罐, 整改责任人: 张工 }
- { row: 2, 隐患描述: 液氨制冷机房未设置氨气泄漏监测报警装置 }

文本按 隐患描述、隐患内容、问题描述、检查内容、描述、text、description、content、hazard 的顺序读取,取该行携带的第一个。如果这些列一个都没有,读取器会直接拒绝,而不是猜测 —— 早先的版本会把最长的字段提升为「隐患文本」,结果悄悄把一串编号变成了隐患记录。

规则来源

规则数据放在 rules/hidden-risk-map.yaml。每条规则都带有文件、文号、按来源自身编号的条款、逐字摘录,以及摘录读自的 URL。加载器强制要求摘录必须是真实引用且至少八个字符,并且仅凭一般原则或地方政策支撑的检查永远不能判定为 error。

引用的条款来自 应急管理部令第10号。条款表覆盖三类通用企业情形(第 3 条)和行业条款(第 4–14 条)。关键词列表是为本插件编写的,并在规则包中如此标注,因为标准本身没有关键词列表 —— 有测试断言规则包确实这样说明。

有两点发现塑造了这个规则包:

1. 标准已被替换(2017 版被 2023 年令第 15 条废止),因此只引用现行条款编号。
2. 第 2 条把四类隐患交给其他法规。 危险化学品、消防、燃气和特种设备按其他规定判定,所以 HR-002 把这些行报告为「请查对应法规」,而不是在这里映射。

故障排查

- 大多数行被报告为未映射。 这说明插件在正常工作:要么你台账的措辞不在关键词表内(补充这些词),要么这些行确实属于另一套制度(查看 HR-002 的输出)。
- 行业检查从不运行。 industry 为空。设置它,或者明知故犯地关掉这项检查。
- HR-003 从不运行。 requiredFields 为空,其说明记录了没有核实到关于整改闭环字段的逐字国家条款 —— 所以这条规则默认关闭,而不是凭空编造一条。
- 读取器拒绝了一份以前能接受的台账。 它没有找到任何已知的描述列。错误信息会列出它看到的列;把其中一列改成已知名称,或者改用 entries 列表形式。
- 插件安装成功,但工具始终不出现。 检查 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-hidden-risk-map@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, paired fixtures per rule
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-hidden-risk-map # refresh src/shared from ../_shared

许可证

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

把隐患台账逐行映射到判定标准候选条款,列出未匹配与缺字段线索供复核

这是你的仓库?认领条目

回到顶部