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

铁路天窗登记核验 PerryLink/dsh-railway-window

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

检查天窗登记簿的时间与算术是否自洽

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-railway-window
该包不可直接 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-railway-window — 铁路天窗登记簿的时间与算术自洽性检查 dsh-railway-window 读取一份铁路天窗登记簿——当天的表头,加上每个天窗一行——检查登记簿自身在时间和算术上是否自洽:每个天窗是否记录了作业内容或行车调度命令号,起止时间能否解析、先后顺序是否成立,记录的时长是否等于时间跨度,批准时长是否不超过申请时长,天窗类型是否出自你的词表,天窗编号是否唯一,以及登记簿是否写明了作业日期和铁路局。 它能回答什么 | 你问 | 它怎么回答 | | 某一行既没记录作业内容,也没记录行车调度命令号。这会被报出来吗? | 会。RW-001 要求每个天窗至少填写 workContent 和 permitNo 之一,并报出两者都缺失的那一行。它只检查两者中是否填了一个,不判断作业是否超出许可范围,也不判断是否有任何东西侵入限界。 | | 一个天窗从 23:30 到 01:30,却写成了两个同一天的时间。为什么结束时间被报成早于开始时间? | RW-002 比较两个时刻,不处理跨零点的情况,所以同一天的一对时间读起来就是反的;把日期写在两侧,或者禁用这条规则。起止时间完全相同算作开始时间不晚于结束时间,时间解析不了会单独报出,不会悄悄跳过。 | | 时长列填的是分钟(120),而天窗实际从 08:00 跑到 10:00。为什么算术对不上?
展开完整文档(README 剩余 1 节)
dsh-railway-window — 铁路天窗登记簿的时间与算术自洽性检查

dsh-railway-window 读取一份铁路天窗登记簿——当天的表头,加上每个天窗一行——检查登记簿自身在时间和算术上是否自洽:每个天窗是否记录了作业内容或行车调度命令号,起止时间能否解析、先后顺序是否成立,记录的时长是否等于时间跨度,批准时长是否不超过申请时长,天窗类型是否出自你的词表,天窗编号是否唯一,以及登记簿是否写明了作业日期和铁路局。

它能回答什么

| 你问 | 它怎么回答 |
| 某一行既没记录作业内容,也没记录行车调度命令号。这会被报出来吗? | 会。RW-001 要求每个天窗至少填写 workContent 和 permitNo 之一,并报出两者都缺失的那一行。它只检查两者中是否填了一个,不判断作业是否超出许可范围,也不判断是否有任何东西侵入限界。 |
| 一个天窗从 23:30 到 01:30,却写成了两个同一天的时间。为什么结束时间被报成早于开始时间? | RW-002 比较两个时刻,不处理跨零点的情况,所以同一天的一对时间读起来就是反的;把日期写在两侧,或者禁用这条规则。起止时间完全相同算作开始时间不晚于结束时间,时间解析不了会单独报出,不会悄悄跳过。 |
| 时长列填的是分钟(120),而天窗实际从 08:00 跑到 10:00。为什么算术对不上? | RW-003 以天为单位衡量时间跨度,所以用分钟记录的登记簿会差 1440 倍;默认容差是 0.01 天。把 daysField 指向以天为单位的列,或者禁用这条规则。它只检查算术,从不判断天窗时长是否够用。 |
| 批准时长大于申请时长。会报出什么?如果两列中有一列是空的呢? | RW-004 会把这一对报出来,因为调度不会批准超过申请的量,所以这两列通常是写反了。只有 approvedMin 和 appliedMin 都能解析时它才运行;缺一个就会把自己记进 skipped。它没有内置批准可以被削减多少的上限,也不对天窗是否应当批准作出任何判断。 |
| 天窗类型列填了值,但规则从来不报任何东西。它在运行吗? | 没有运行。RW-005 出厂时 values: [],意思是未配置,在你列出本局措施所用的分类之前,它会把自己记进 skipped。即便配置好了,它也只检查值是否在你的清单上,不判断某个天窗属于哪一类。 |
| 当天的登记簿内容很少:表头没有写明所属铁路局,同一区段的两个窗口编号相同。会触发哪些规则? | 两条。RW-007 报告表头未声明工作日期和铁路局——它只检查表头是否写明这两项,如果你的表单还记录窗口计划编号,可以把 skylightPlanNo 加到它的 fields 里。RW-006 报告重复的 windowNo,比较时忽略空白;一个区段一天有多个窗口是正常的,把它们编号区分开即可。 |

遵循的标准

| 文件 | 编号 | 被哪些规则引用 |
| 《铁路营业线施工安全管理办法》 | 现行版本与条号本次未核实 | RW-001, RW-002, RW-003, RW-006, RW-007 |
| 各铁路局集团公司施工天窗管理办法(本机构配置) | 无统一标准(本条依据为台账的申请与批准两栏) | RW-004 |
| 各铁路局集团公司施工天窗管理办法(本机构配置) | 无统一标准(本条依据为本机构分类口径) | RW-005 |

边界: 本插件检查铁路施工天窗台账在时间和算术上的自洽性——每个窗口是否记录了作业内容或行车调度命令号,起止时间能否解析且先后顺序正确,记录的时长是否等于时间跨度,批准时长是否不超过申请时长,窗口类型是否来自你的词表,窗口编号是否唯一,以及登记簿是否写明工作日期和铁路局。它不判断某个窗口是否应当批准、作业是否侵入限界、是否属于违章行为,也不判断是否影响行车安全。

⚠️ 信任报告中的引用之前,请先读这段

本插件规则包里的每一条 excerpt 都明确写着:未获取到条款原文。 相关制度见于《铁路营业线施工安全管理办法》以及各铁路局自己的施工天窗和行车调度命令管理办法。核查环节无法取回逐字条款原文,因此规则包没有去转述一段引文,而是在 excerpt 字段里直接说明这一缺口,并把诚实的推理写进 note。所以每条规则都是 warn 或 info,并有测试断言:没有任何规则声称拥有它实际没有的引文。拿到原文后,请把每条 excerpt 换成真实条款,并把 kind 提升为 direct。

信任某条发现之前,有三点限制需要注意:

- 插件不内置窗口分类,也不内置状态词表。 窗口如何分类、状态如何措辞,各铁路局不同,所以在配置之前 RW-005 会把自己报进 skipped。
- 没有内置批准比例上限。 批准的窗口是否可以短于申请时长、可以短多少,是铁路局自己的规则;RW-004 只检查批准数值不超过申请数值,这属于数据录入层面的性质,而非实质性判断。
- 时长单位是天,规则本身也这么写。 RW-003 内部以分钟计算时间跨度,再换算成天表示,所以同一天开始并结束的窗口也能被正确计量。
记录以分钟为单位的时长时,会差 1440 倍——把 daysField 指向以天为单位的列,或者禁用这条规则。

插件也不处理跨零点:写成两个同一天时间的窗口(23:30 到 01:30)会被读成一对反序的时间。请在两侧都写上日期,或者禁用这条规则。

兼容性

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

它做什么

注册 railway_window 工具。它读取一份作业窗口登记簿——当天的表头,加上每个窗口一行——套用带版本号的规则包,返回一份报告。

| 规则 | 检查内容 | 严重级别 | 依据类型 |
| RW-001 | 作业内容或命令号已记录 | warn | principle |
| RW-002 | 开始与结束时间能解析,且先后顺序正确 | warn | principle |
| RW-003 | 时长等于时间跨度 | warn | principle |
| RW-004 | 批准时长不超过申请时长 | info | local |
| RW-005 | 窗口类型来自你的词表(默认关闭) | info | local |
| RW-006 | 窗口编号唯一 | warn | principle |
| RW-007 | 登记簿写明日期和路局 | warn | principle |

安装

dsh plugin --profile <name> add dsh-railway-window
dsh --profile <name> --dump-config | grep 'dsh-railway-window'

配置

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

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

- RW-002 field / notAfterField——时间对,开始对结束。
- RW-003 daysField / fromField / toField / tolerance——时长运算,以天为单位。默认容差是 0.01 天。
- RW-005 values——你的窗口类型,例如 [V 类, 垂直天窗, 综合天窗, 施工天窗, 维修天窗]。留空表示不检查。

素材格式

工具接受 JSON 或 YAML:

date: 2026-03-10
bureau: 某某铁路局集团公司 rows:
- { 序号: '1', 天窗类型: V 类, 线别: 上行, 区间: K120+000 至 K125+000,
开始时间: 2026-03-10 08:00, 结束时间: 2026-03-10 20:00, 天窗时长: '0.5', 申请时长: '720', 批准时长: '720', 作业内容: 更换接触网吊弦, 施工命令号: 调令〔2026〕第 018 号, 申请单位: 某某供电段, 状态: 已兑现 } 列名匹配不区分大小写,并忽略空格、下划线和连字符;登记表自己的列名会保留,所以每条发现都会写明它读取的是哪一列。时间写成 2026-03-10 09:00;中文日期格式会被刻意报为无法解析。

规则来源

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

故障排查

- RW-003 在我手算的时长上触发了。 检查单位:规则里的数字单位是天。如果登记表记的是分钟,两者相差 1440。
- RW-002 在我明知跨了午夜的窗口上触发了。 插件不建模这种情况;把日期记在两侧,或者禁用该规则。
- RW-005 从不运行。 它的词表是空的;填入你所在部门使用的分类。
- RW-004 在审批合理的情况下触发了。 当批准的数值大于实际应用的数值时它就会触发——通常是数字写反了。它不会对缩减做出任何发现。
- RW-006 在同一区段上触发两次。 一个区段一天内给出多个窗口是正常的;把它们分开编号,不要复用同一个编号。
- 插件装上了,但工具始终不出现。 检查 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-railway-window@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-railway-window # refresh src/shared from ../_shared

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

许可证

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

检查天窗登记簿的时间与算术是否自洽

这是你的仓库?认领条目

回到顶部