dsh-powershell-check

DSH PLUGIN开发与运行时

仓库 chaggle/dsh-powershell-check · npm @chaggle/dsh-powershell-check

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 在 pwsh 工具调用前自动拦截,依据 PowerShell 实战踩坑大全规则静态检查并阻止常见陷阱,同时捆绑 powershell-check 技能,支持中英双语与 deny/warn 模式。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 4 复刻 0 · 未关闭 issue 1
最近更新 2026-09-10 创建于 2026-08-14
README 7.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:chaggle/dsh-powershell-check#v0.5.2
兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求^22.19 || >=24来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-shell@^0.1.0-rc.6 等 4 个需要同时安装的同级依赖
npm 包名@chaggle/dsh-powershell-check可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-powershell-check:为 DeepSeek Harness 自动检查 PowerShell 命令的插件

  • 自动拦截 pwsh 调用
  • 内置 powershell-check 技能
  • 中英双语规则与输出
  • 单一规则源共享
  • 自测 60 用例

适用场景

终端命令

上游标签

cordisdeepseek-harnessdsh-pluginpluginpowershellpwshskill

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方chaggle仓库 dsh-powershell-check · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue4 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-09-10最后推送 2026-09-10
本站收录2026-08-27首次进入本站目录的时间

README 全文

7.5 KB
作者原文,中文版优先;只做安全转义,不改内容

@chaggle/dsh-powershell-check

一个原生 DeepSeek Harness 插件:通过官方 tools/pre-execute 拦截点自动拦截带 PowerShell 坑位的 pwsh 工具调用,并内置 powershell-check 技能。坑位规则来自博客《PowerShell 实战踩坑大全》(GBK 乱码、$var: 解析、PS 5.1 三元运算符、双引号变量展开、JS 转义、Start-Process 引号与沙箱坑、-FeatureName 数组、DISM 动词、RestoreHealth 源版本、CDN 下载、npm.cmd 后缀、&&/|| 链式)。

可作 profile 插件安装:dsh plugin --profile <名称> add @chaggle/dsh-powershell-check(或直接挂行,见安装)。

特性

  • 自动门禁:订阅官方 tools/pre-execute 拦截点,每次 pwsh 调用前自动静态检查;命中 R2–R11 阻断级坑位 → 返回 deny(deny reason 即修复指引);R1 建议级放行;warn 模式只记日志;
  • 内置技能:通过 ctx.skills.registerProvider(官方 dsh-skill-badge 同款写法)暴露 powershell-check,每个会话目录可见、可加载;
  • 中英双语:规则文本、CLI 输出(--lang en|zh)、deny reason 与文档均提供中英版本;
  • 单一规则源:规则引擎(src/checker.ts)被门禁与 CLI 共用,改一处全生效;
  • 自检:--selftest 内置 60 组正反例(R1–R19,聚焦 AI 生成脚本)。

安装

作为 profile 插件(推荐)

包声明了 dsh.bundle.patch 并自带 cordis.patch.yml,可随 profile 安装:

dsh plugin --profile <名称> add @chaggle/dsh-powershell-check

或在 profile 用户层 $DSH_HOME/profiles/<名称>/cordis.patch.yml 挂行:

- insert:
- id: dsh-powershell-check
name: @chaggle/dsh-powershell-check
config:
mode: deny   # deny | warn
lang: zh     # zh | en

从源码 checkout 启动的 harness,可发布包或将行指向本地克隆:

git clone https://github.com/chaggle/dsh-powershell-check.git
# 再 junction/符号链接到 $DSH_HOME/profiles/node_modules/@chaggle/dsh-powershell-check

用户补丁层会被监听:对运行中的 dsh web 实例热生效(事务性 HMR),无需重启。

仅技能(不装门禁)

仓库根目录即技能包(SKILL.md + scripts/),克隆到任意技能根目录即可:

git clone https://github.com/chaggle/dsh-powershell-check.git "$HOME/.dsh/skills/powershell-check"

配置

键 默认 说明
mode deny deny 命中阻断级坑位直接拒绝;warn 只记日志放行
lang zh deny reason 与日志语言:zh 或 en
analyzer builtin builtin:仅内置 R1–R19;psscriptanalyzer:额外用官方 PSScriptAnalyzer 对每条 pwsh 命令深检(宿主机需安装模块,缺模块自动降级内置)。Error/ParseError 拦截,Warning 记日志放行

CLI

node scripts/check-pwsh.mjs -- "命令原文" [--lang en]
Get-Content fix.ps1 -Raw | node scripts/check-pwsh.mjs - [--lang en]
node scripts/check-pwsh.mjs --selftest

退出码:0 = PASS;1 = FAIL(输出清单含修复);2 = 用法错误。

规则

规则 级别 检测内容 博客章节
R1 建议 涉及 wsl/Windows 功能查询但未见 chcp 65001 2-3
R2 阻断 $var: 被解析成驱动器限定语法 1-1
R3 阻断 ) ? ... 三元形态(PS 5.1) 1-2
R4 阻断 双引号内 $WORD 后跟 ./``(路径陷阱) 2-1
R5 阻断 Start-Process 包装外部命令 3-1
R6 阻断 -FeatureName A, B 数组形式 4-1
R7 阻断 /Dismount-Image 动词 4-2
R8 阻断 RestoreHealth 源版本比系统新 4-3
R9 阻断 curl -L 与 -C - 组合 3-4
R10 阻断 裸 npm/npx/pnpm 不带 .cmd 后缀 3-2
R11 阻断 && / || 链式(PS 5.1) 1-3
R12 建议 ConvertTo-Json 未指定 -Depth(默认 2 截断嵌套数据) 5-1
R13 建议 foreach 循环体内使用 $_ 5-2
R14 阻断 if/while 条件里用单等号 = 当比较 1-4
R15 建议 PS 7+ 专属语法(-AsHashtable/-Parallel/-AsByteStream/??/?.) 1-5
R16 建议 cmd 风格命令 / %VAR% 环境变量语法 3-3
R17 建议 Write-Host 输出不进管道 2-4
R18 建议 检查文本出现乱码特征(PS 5.1 把无 BOM 的 UTF-8 .ps1 按 ANSI/GBK 解析) 2-5
R19 建议 Remove-Item 位置参数传文件系统对象(无 -Path/-LiteralPath/.FullName) 5-3

PSScriptAnalyzer 深度检查

配置 analyzer: psscriptanalyzer 可在内置规则之上叠加官方 PowerShell 静态分析器。插件把命令文本写入临时 .ps1,经 harness hooks 桥同款的 ctx.shell 通道执行 Invoke-ScriptAnalyzer;探针先提升进程级执行策略为 Bypass(harness 默认 Restricted 启动 pwsh)。命中 Error/ParseError 级别 → 拒绝并附分析器消息;Warning → 记日志放行。

# 宿主机一次性安装(PowerShell 5.1 或 7):
Install-Module PSScriptAnalyzer -Scope CurrentUser -Force

权衡:每次深检都会起一个分析进程(模块加载约 1–3 秒),仅在需要更全覆盖时开启;模块缺失时插件记录一次日志并回落内置规则。实测备注:PSSA 在 5.1 宿主上不报 &&/||(由内置 R11 兜底),且 Severity 序列化为数字枚举(解析器两种形态都兼容)。

工作原理(官方扩展点)

Harness 的扩展面是其类型化拦截点:所谓「原生钩子」只是一个订阅规范生命周期事件、返回类型化 Decision 的普通 Cordis 插件——无外部 hooks 桥、无 hook/* 日志、无子进程边界。本插件用到两个官方入口:

  1. ctx.on(tools/pre-execute, (exec, next) => PreToolDecision) — 工具执行前的瀑布门禁;
  2. ctx.skills.registerProvider(...) — 向技能注册表贡献 bundled 技能。

Model Experience

Request context and condition

What the model sees

本插件不向提示词注入任何文本。技能通过标准会话技能目录暴露(powershell-check,见上文描述),可用 skill 工具加载;门禁拒绝 pwsh 调用时,模型在工具报错结果中看到 deny reason——即 formatHits 生成的修复指引。

Token effect

除工具报错反馈外无直接 token 影响:不新增、不改写提示词。deny reason 以有界错误载荷替换一次本应执行的工具结果。

KV Cache effect

插件不发布自己的 system-reminder 或目录文本;技能描述随技能消费方生成的会话目录走,不影响提示词前缀复用。deny reason 是逐次调用的错误结果,不改变请求前缀。

已知限制与待办

  • 静态启发式:规则基于模式匹配;R1 按设计为建议级,R4 可能标记有意的变量展开(修复文案注明了可忽略的情形);
  • 热载:代码变更需运行中的 harness 重新导入插件(用户补丁行可热载,替换行时模块缓存重载);
  • 规则扩充:新坑位先在 src/checker.ts 加规则(含 selftest 正反例),再同步进博客文章。

License

MIT — 见 LICENSE。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-powershell-check 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:chaggle/dsh-powershell-check#v0.5.2` 即可。对应的 npm 包名是 `@chaggle/dsh-powershell-check`。

dsh-powershell-check 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-powershell-check 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-powershell-check 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-powershell-check 需要什么运行环境?

Node.js ^22.19 || >=24;需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-shell@^0.1.0-rc.6、@deepseek-ai/dsh-skill@^0.1.0-rc.6、@deepseek-ai/dsh-tools@^0.1.0-rc.6。环境不满足时安装会失败,建议先确认本机版本。

dsh-powershell-check 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-powershell-check 有哪些功能?

自动拦截 pwsh 调用、内置 powershell-check 技能、中英双语规则与输出、单一规则源共享、自测 60 用例。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。