DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Railway Window — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-railway-window

Railway Window

铁路施工天窗台账核对(按时间窗、时长算术与命令号核对台账自洽,仅提示差异,不作出定性结论)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-railway-window@0.2.3
README兼容性版本

兼容性与来源证明

Railway Window 以 dsh-railway-window 发布,当前版本为 0.2.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/10/9

版本

0.2.3stable
2026/10/9
0.2.2stable
2026/10/8
0.2.1stable
2026/10/8
查看其余 2 个版本收起版本
0.2.0stable
2026/10/8
0.1.0stable
2026/10/7

相关插件

正在加载相关插件…

最新版
0.2.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
198.7 kB
文件数
17
Surface
any
许可证
Apache-2.0
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/10/9
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。

README

dsh-railway-window — Railway work-window register check for time and arithmetic self-consistency

DSH Market

dsh-railway-window reads one railway work-window register — the day's header plus one row per window — and checks that register's own time and arithmetic self-consistency: that each window records its work content or its traffic-control order number, that the start and end times parse and follow each other, that the recorded duration equals the span, that the approved duration does not exceed the applied duration, that the window type comes from your vocabulary, that window numbers are unique, and that the register names its working date and railway bureau.

What it looks like

Terminal demo of dsh-railway-window: real output over its RW-002 fixture

Real output from this plugin over its own RW-002 test fixture — not a mock-up. The rule pack ships no invented quotations, so a finding names both the clause it applied and the fact that the clause text was not obtained.

What it answers

You askWhat it answers
One row records neither the work content nor the traffic-control order number. Is that reported?Yes. RW-001 requires at least one of workContent and permitNo on every window and reports the row where both are missing. It only checks that one of them is filled in; it does not judge whether the work stayed inside its permitted scope or whether anything encroached on the clearance gauge.
A window runs from 23:30 to 01:30 and is written as two same-day times. Why is the end reported as earlier than the start?RW-002 compares the two instants and does not model crossing midnight, so a same-day pair reads as reversed; record the date on both sides, or disable the rule. An identical start and end counts as the start not being later, and a time that will not parse is reported on its own rather than skipped silently.
The duration column holds minutes (120) while the window ran 08:00 to 10:00. Why does the arithmetic not add up?RW-003 measures the span in days, so a register recording minutes differs by a factor of 1440; the default tolerance is 0.01 day. Point daysField at a day-denominated column, or disable the rule. It only checks the arithmetic, never whether the window was long enough for the work.
The approved duration is larger than the applied one. What is reported, and what if one of the two columns is blank?RW-004 reports the pair, because a dispatcher does not grant more than was applied for, so the two columns are usually transposed. It runs only when both approvedMin and appliedMin parse; with one missing it reports itself in skipped. No ceiling on how far an approval may be cut is built in, and it makes no finding about whether the window ought to be granted.
The window type column is filled in, but the rule never reports anything. Is it running?No. RW-005 ships with values: [], which means unconfigured, and reports itself in skipped until you list the classifications your bureau's measures use. Even configured, it only checks that the value is on your list; it does not decide which class a window belongs to.
The day's register is thin: the header names no bureau, and two windows of one section carry the same number. Which rules fire?Two. RW-007 reports a header that does not declare the working date and the railway bureau — it only checks that the header names them, and skylightPlanNo can be added to its fields if your form also records a window plan number. RW-006 reports the repeated windowNo, comparing with whitespace ignored; a section given several windows in one day is normal, so number them apart.

Standards it follows

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

Boundary: this plugin checks a 铁路施工天窗台账 for time and arithmetic self-consistency — that each window records its work content or its traffic-control order number, that the start and end times parse and follow each other, that the recorded duration equals the span, that the approved duration does not exceed the applied duration, that the window type comes from your vocabulary, that window numbers are unique, and that the register names its working date and railway bureau. It does not decide whether a window should be granted, whether work encroached on the clearance gauge, whether it was an unsafe act, or whether it affected traffic safety.

⚠️ Read this before trusting a citation in the report

Every excerpt in this plugin's rule pack says, in so many words, that the clause text was not obtained. The regime lives in 《铁路营业线施工安全管理办法》 and in each railway bureau's own work-window and traffic-control-order measures. The verification pass could not retrieve verbatim clause text, so rather than paraphrase a quotation the pack states the gap in the excerpt field itself and puts the honest reasoning in note. Every rule is therefore warn or info, and a test asserts that no rule claims a quotation it does not have. When the texts are in hand, replace each excerpt with the real clause and raise kind to direct.

Three limits matter before trusting a finding:

  • The plugin ships no window classification and no status vocabulary. How windows are classified and how their states are worded varies by bureau, so RW-005 reports itself in skipped until you configure them.
  • No approval-ratio ceiling is built in. Whether an approved window may be shorter than applied for, and by how much, is the bureau's rule; RW-004 only checks that the approved figure does not exceed the applied one, which is a data-entry property rather than a substantive one.
  • The duration unit is days, and the rule says so. RW-003 measures the span in minutes internally and expresses it in days, so a window that starts and ends on the same calendar day is measured correctly. A register that records durations in minutes differs by a factor of 1440 — repoint daysField at a day-denominated column, or disable the rule.

The plugin also does not handle crossing midnight: a window written as two same-day times (23:30 to 01:30) will read as a reversed pair. Record the date on both sides, or disable that rule.

Compatibility

SurfaceStatus
HarnessPeer range >=0.1.2-rc.1 <0.2.0 || >=0.2.0-0 <0.3.0 — verified to accept both 0.2.0-rc.2 and 0.2.1-alpha.1. engines.dsh is deliberately not declared: it has no reader and cannot reject a host
Node`^22.19.0
PlatformsAll (plain ESM; no native code, no network, no model call)
Tool modeWorks in native, ptc and both; for a month of windows use ptc

What it does

Registers the railway_window tool. It reads one work-window register — the day's header plus one row per window — applies a versioned rule pack, and returns a report.

RuleCheckSeverityBasis kind
RW-001the work content or the order number is recordedwarnprinciple
RW-002start and end times parse and follow each otherwarnprinciple
RW-003the duration equals the spanwarnprinciple
RW-004the approved duration does not exceed the applied oneinfolocal
RW-005the window type comes from your vocabulary (off by default)infolocal
RW-006window numbers are uniquewarnprinciple
RW-007the register names its date and bureauwarnprinciple

Install

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

Configuration

KeyTypeDefaultDescription
rulesFilestringrules/railway-window.yamlRule-pack path, relative to the package root
disabledRulesstring[][]Rule ids to stop running; each appears in skipped
onlyRulesstring[][]Run only these rule ids; empty runs every rule
skipNotesstring""Note appended to every skipped reason
timeoutMsnumber120000Cooperative tool timeout budget

Rule-level parameters worth knowing:

  • RW-002 field / notAfterField — the time pair, start against end.
  • RW-003 daysField / fromField / toField / tolerance — the duration arithmetic, in days. The default tolerance is 0.01 day.
  • RW-005 values — your window types, e.g. [V 类, 垂直天窗, 综合天窗, 施工天窗, 维修天窗]. Empty means no check.

Material format

The tool accepts JSON or 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 号, 申请单位: 某某供电段, 状态: 已兑现 }

Column names are matched case-insensitively and ignoring spaces, underscores and hyphens; the register's own column names are kept, so a finding names the column it read. Times are written 2026-03-10 09:00; a Chinese date form is reported as unparseable on purpose.

Rule sources

Rule data lives in rules/railway-window.yaml. The pack's header states the citation gap in full, and each rule's note repeats the part that matters for that rule. The load-time guard that normally enforces "an excerpt must be a real quotation of at least eight characters" cannot tell a quotation from a description — so this pack leans on the header, the per-rule notes and a test that asserts every excerpt admits the gap.

Troubleshooting

  • RW-003 fires on a duration I computed by hand. Check the unit: the rule's figure is in days. A register recording minutes differs by 1440.
  • RW-002 fires on a window I know crossed midnight. The plugin does not model that; record the date on both sides, or disable the rule.
  • RW-005 never runs. Its vocabulary is empty; fill it with the classifications your bureau uses.
  • RW-004 fires although the approval was reasonable. It fires when the approved figure is larger than the applied one — usually a transposed pair. It makes no finding about reductions.
  • RW-006 fires twice on one section. A section given several windows in a day is normal; number them apart rather than reusing the number.
  • The plugin installs but the tool never appears. Check that main resolves to lib/index.mjs and that pnpm run build produced it; a wrong main makes the loader skip the entry silently.
  • dsh plugin add refuses the package as incompatible. The peer range covers 0.1.x and 0.2.x; if your runtime sits outside it, grant an explicit exemption: dsh plugin --profile <name> allow-version dsh-railway-window@0.1.0 --dsh-version <runtime> --accept-risk
  • check reports manifest-peers as failed. The static checker compares against a hard-coded peer range that predates the 0.2 line. The runtime enforces peer compatibility at install time, so the declared range is the correct one; this is a known upstream issue in dsh-plugin-dev.

Development

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

The plugin is data-only: src/model.ts declares the table shape, the shared kit supplies the reader and the check engine, and the rule pack declares every check.

License

Apache License 2.0 © 2026 dsh-railway-window contributors.