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

演练脚本核对 PerryLink/dsh-drill-script-check

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

校验应急演练脚本的完整性与时长合计

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

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

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

功能亮点

  • 校验脚本完整性
  • 核对时长合计
  • 仅提示差异

应急演练脚本核对:依据《生产安全事故应急演练基本规范》。仅提示差异,不作出定性结论。

README

由 DeepSeek 最新模型翻译生成
dsh-drill-script-check — 应急演练脚本完整性与算术校验 dsh-drill-script-check 读取一份应急演练脚本——演练头部信息,加上每一步一行——校验脚本自身的完整性与算术:每一步是否记录了演练阶段或脚本内容,是否指定了指挥员,响应级别是否来自你配置的词表,带脚本动作的步骤是否列出了所需资源,各步骤时长是否合计为演练计划时长,关键检查点是否写明了判定条件,步骤编号是否重复,以及头部信息是否写明了演练名称与组织单位。 它能回答什么 | 你问 | 它答 | | 某一步既没填演练阶段,也没填脚本内容。这会被报出来吗? | 会。DR-001 同时要求 phase 和 script 两列,哪一步两列都没填就报哪一步——填了其中一列即可通过。它只检查列有没有填,不判断动作是否正确、是否与你的应急预案相符。 | | 我填了响应级别,可 DR-003 却把自己报进了 skipped。为什么? | DR-003 拿 level 列与 values 里的词表比对,而 values 出厂是空的,所以在你配置自己的级别之前,这条规则会报告「无法运行」,而不是悄悄放过。它只检查取值是否属于你定义的词表——从不判断某个事件该触发哪一级。 | | 某一步纯属告知性质,没列任何装备。会被标出来吗? | 不会。
展开完整文档(README 剩余 1 节)
dsh-drill-script-check — 应急演练脚本完整性与算术校验

dsh-drill-script-check 读取一份应急演练脚本——演练头部信息,加上每一步一行——校验脚本自身的完整性与算术:每一步是否记录了演练阶段或脚本内容,是否指定了指挥员,响应级别是否来自你配置的词表,带脚本动作的步骤是否列出了所需资源,各步骤时长是否合计为演练计划时长,关键检查点是否写明了判定条件,步骤编号是否重复,以及头部信息是否写明了演练名称与组织单位。

它能回答什么

| 你问 | 它答 |
| 某一步既没填演练阶段,也没填脚本内容。这会被报出来吗? | 会。DR-001 同时要求 phase 和 script 两列,哪一步两列都没填就报哪一步——填了其中一列即可通过。它只检查列有没有填,不判断动作是否正确、是否与你的应急预案相符。 |
| 我填了响应级别,可 DR-003 却把自己报进了 skipped。为什么? | DR-003 拿 level 列与 values 里的词表比对,而 values 出厂是空的,所以在你配置自己的级别之前,这条规则会报告「无法运行」,而不是悄悄放过。它只检查取值是否属于你定义的词表——从不判断某个事件该触发哪一级。 |
| 某一步纯属告知性质,没列任何装备。会被标出来吗? | 不会。DR-004 只在该步的 script 内容已填时才要求 resource 列,所以告知性质的步骤不会被要求列装备。它检查资源有没有列出,不检查资源是否充足、是否与现场实际相符。 |
| 各步骤时长加起来对不上演练计划时长。检查能抓到吗? | 能。DR-005 把各步的 durationMin 相加,再与 totalDurationMin 比对,后者取自材料的头部信息——先看行内,取不到再回退到头部。它只做加法校验:不判断时间安排是否合理、是否够用。 |
| 某一步的检查点列必须写什么? | DR-006 要求该步填上 checkpoint 列——关键节点连同它的判定条件。它检查那里写了东西,不检查条件是否可观测、是否恰当。 |
| 某个阶段拆成了三行动作,其中两行步骤编号相同。 | DR-007 会报出重复的 stepNo,因为重复会让时长合计和步骤计数都不可靠。把一个阶段拆成多行动作是正常的——给每行各自的步骤编号就行。 |

遵循的标准

| 文件 | 编号 | 引用它的规则 |
| 《生产安全事故应急演练基本规范》 | YJ/T 9007—2019(原 AQ/T 9007—2019,2025 年第 1 号公告调整代号;本次未取得条文) | DR-001, DR-002, DR-004, DR-005, DR-006, DR-007, DR-008 |
| 本单位应急预案体系(本机构配置) | 无统一标准(本条依据为本机构预案的分级口径) | DR-003 |

边界: 本插件检查应急演练脚本的完整性与算术——每一步是否写明所属阶段与脚本内容,是否写明指挥长,响应级别是否取自你的词表,带动作的步骤是否列出所需资源,各步骤时长合计是否等于演练计划时长,关键检查点是否写明判定条件,步骤编号是否唯一,脚本是否写明演练名称与组织单位。它不判断演练是否真实、是否有效,响应级别是否恰当,动作是否正确,演练是否达成目标。

⚠️ 相信报告里的引文之前,先读这段

本插件规则包里的每一条 excerpt 都明说了:没有取得条文原文。 制度依据在 AQ/T 9007—2019、《生产安全事故应急条例》(国务院令第708号)以及各机构的应急预案里。核验环节取不到逐字条文,所以规则包没有去改写引文,而是直接在 excerpt 字段里说明这一缺口,把诚实的推理写进 note。因此每条规则都是 warn 或 info,并有测试断言:没有任何规则声称自己拥有它其实没有的引文。拿到条文后,把每条 excerpt 换成真实条款,并把 kind 提升为 direct。

没有内置任何响应级别刻度。 级别在各预案体系之间并不一致——一般 / 较大 / 重大 / 特别重大,或者单位自己的 Ⅰ–Ⅳ——所以在你配置词表之前,DR-003 会在 skipped 里报告自己,而且它从不判断事件该触发哪一级。那是指挥长的判断。

资源规则只在脚本出现动作时才触发,所以纯信息性的步骤不会被要求列出装备。时长合计则从头部读取,演练的计划时长通常就写在那里。

兼容性

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

它做什么

注册 drill_script_check 工具。它读取一份演练脚本——演练头部加上每一步一行——套用带版本的规则包,返回报告。

| 规则 | 检查项 | 严重程度 | 依据类型 |
| DR-001 | 记录阶段与脚本内容 | warn | principle |
| DR-002 | 写明指挥长 | warn | principle |
| DR-003 | 响应级别取自你的词表(默认关闭) | info | local |
| DR-004 | 带动作的步骤要列出所需资源 | warn | principle |
| DR-005 | 各步骤时长合计等于计划时长 | warn | principle |
| DR-006 | 检查点要写明判定条件 | warn | principle |
| DR-007 | 步骤编号唯一 | warn | principle |
| DR-008 | 脚本要写明演练名称和组织者 | warn | principle |

安装

dsh plugin --profile <name> add dsh-drill-script-check
dsh --profile <name> --dump-config | grep 'dsh-drill-script-check'

配置

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

值得了解的规则级参数:

- DR-003 values —— 你的响应级别,例如 [Ⅰ级, Ⅱ级, Ⅲ级, Ⅳ级]。留空表示不检查。
- DR-005 field / headerField / tolerance —— 时长列,以及它必须匹配的表头合计。
- DR-004 conditionField / requiredFields —— 什么情况会触发资源要求。

素材格式

工具接受 JSON 或 YAML:

drillName: 某某装置泄漏事故应急演练 drillType: 综合演练 organizer: 某某公司应急管理部 plannedAt: 2026-06-10 totalDurationMin: '15' rows:
- { 序号: '1', 演练阶段: 预警与信息报告,
脚本内容: 值班员发现泄漏报警,电话报告应急指挥部, 指挥人: 张指挥, 参演人员: 值班员、调度员, 所需资源: 对讲机 4 台、气体检测仪 2 台, 计划时长: '15', 响应级别: Ⅲ级, 关键节点: 指挥部确认接报并启动响应(判定条件:指挥人下达启动指令) }

列名匹配不区分大小写,并忽略空格、下划线和连字符;脚本自己的列名会保留,所以每条发现都会指出它读的是哪一列。时长合计也可以放在表头。

规则来源

规则数据放在 rules/drill-script-check.yaml。规则包的表头完整说明了引用缺口,每条规则的 note 会重复其中与该规则相关的那部分。加载时的守卫通常会强制要求「摘录必须是至少八个字符的真实引用」,但它分不清引用和描述 —— 所以这个规则包依赖表头、每条规则的 note,以及一个测试,该测试断言每个 excerpt 都承认这个缺口。

故障排查

- DR-003 从不运行。 它的词表是空的;填入你的应急预案使用的级别。
- DR-005 报告自己被跳过。 表头没有计划时长,或者没有步骤记录时长。
- DR-005 报错,但脚本看起来没问题。 各步骤时长与表头合计不一致 —— 通常是漏了某个步骤,或者数字打错了。
- DR-004 在我认为只是说明性的步骤上报错。 该步骤有脚本内容,所以规则要求它的
- DR-007 在同一个阶段的两个步骤上触发。 给每个步骤单独编号。
- 插件装上了,工具却始终不出现。 检查 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-drill-script-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-drill-script-check # refresh src/shared from ../_shared

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

许可证

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

校验应急演练脚本的完整性与时长合计

这是你的仓库?认领条目

回到顶部