dsh-win-env-kit:为 DSH Agent 打包 Windows 开发与产物规则

前言

在 DeepSeek Harness(DSH)里让 Agent 写 Windows 侧代码、改文本编码、打分发包或做截图时,常见问题不在「会不会写脚本」,而在环境细节:UTF-8 与 CRLF、GBK 代码页、SmartScreen 与 MOTW、临时目录与隐私截图等。单靠会话里口头叮嘱,模型容易漏检,也难和 CI 或本地自检对齐。

dsh-win-env-kit 把 九条已泛化的 Windows 环境规则 和 六份零依赖校验脚本 打进同一个可发布插件包。装一次挂在 profile 上,任意工作区加载技能 win-env-kit 后,规则和验证命令一致,路径相对技能 base directory 解析,不必把脚本拷进用户仓库。

下面按定位、能力、安装配置和典型用法说明如何使用该插件。事实以 GitHub 仓库 README 与 package.json 为准。

这是什么

  • 插件包名:dsh-win-env-kit(npm 包名同名)
  • 技能名:win-env-kit
  • 维护者:highwindmx
  • 分类:工作流(社区目录归类)
  • 许可:MIT
  • 运行要求(package.json):dsh >= 0.1.0-rc.6,node >= 20;Cordis 插件入口为 lib/index.js,注册技能 provider

README 中版本号以包内独立 VERSION 文件为准(示例为 0.2.1);发布清单上的 package.json 版本为 0.2.2。二者描述的是同一套发布物,以你安装到本地的包为准即可。

一句话定位:可发布的 DSH 技能插件包,把 Windows 构建、编码、产物与清理相关规则与校验工具捆绑分发,约束 Agent 在 Windows 环境下的开发工作流。

包里有什么

安装后,会话技能目录会出现 win-env-kit。技能正文在 skills/win-env-kit/SKILL.md(九条规则);主机实测示例在 HOST-PROFILE.md(换机器时需自行重测,勿当硬编码)。

dsh-win-env-kit/
  lib/index.js                     Cordis 插件:注册技能 provider
  lib/config.mjs                   Config 架构(每条规则一个开关)
  lib/rules.mjs                    规则目录 + 正文过滤
  scripts/verify-provider.mjs      可机器判定的自检(npm run verify)
  cordis.patch.yml                 host-plane insert 行(id: win-env-kit)
  dsh.plugin.json                  兼容性清单
  skills/win-env-kit/
    SKILL.md                       九条规则
    tools/                         六个零依赖脚本
      dsh-env-lint.mjs             BOM / EOL / U+FFFD / GBK / SCRATCH
      build-audit.mjs              MOTW / TRUST-MARK / SIGN / PE / TEMP-PATH
      dsh-privacy-gate.mjs         截图隐私门禁
      dsh-teardown.mjs             按台账清理
      dsh-doc-lock.mjs             共享文档 claim/check/release
      dsh-screenshot.ps1           只截目标窗口(ASCII + CRLF)

技能被加载时,宿主会给出 base directory(形如 <profile>/node_modules/dsh-win-env-kit/skills/win-env-kit)。SKILL.md 里所有 tools/... 路径相对该目录,不是工作区当前目录;参数里的 . 仍表示用户项目根,因此检查目标是用户仓库,无需复制脚本。

核心功能

九条可裁剪规则

默认九条规则全开。在 profile 的 cordis.patch.yml 里为本插件 id win-env-kit 配置 config 后,被关闭的规则对应 ## N. 整节会在模型看到之前删掉;描述与正文开头的 Configured subset 提示保持一致,避免「正文没有、触发词还在」。

设置界面按 lib/config.mjs 的 schema 为每条规则渲染开关,标签与 SKILL.md 小节标题一致。

六项零依赖校验

典型验证入口(路径中的 <SKILL_BASE> 替换为加载技能时给出的 base directory):

node "<SKILL_BASE>/tools/dsh-env-lint.mjs" .
node "<SKILL_BASE>/tools/build-audit.mjs" out\app.exe --strict
node "<SKILL_BASE>/tools/dsh-privacy-gate.mjs" "_scratch\*\shots\*.png" --strict

dsh-env-lint.mjs 面向文本与编码;build-audit.mjs 面向 Windows 产物与路径;dsh-privacy-gate.mjs 对截图做 ALLOW / BLOCK 门禁。其余脚本覆盖清理台账、文档锁、按窗口截图等 SKILL 中引用的流程。

与仓库索引衔接

AGENTS.md 不随包分发。可在本仓库索引中注明:在写构建脚本、打包、改编码、截图或产出分发物之前加载 win-env-kit,并写上上述 node 命令,便于 Agent 先读索引再加载技能。

安装与启用

当前 DSH profile 下,README 给出的方式是使用 plugin_manager,action: install_bundle,target 填本包的 绝对目录。不要手写 profile 的 package.json 或 cordis.patch.yml——由 install_bundle 完成;改动对该 profile 下所有会话生效,重启后保留。

启用后会话技能目录里出现 win-env-kit。若改为经 npm 发布安装(npm publish),属于单独步骤,需自行确认分发渠道与版本。

注意:插件以当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证,确认 bundle 内容与 dsh.plugin.json 兼容性清单符合你的安全策略。社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,仅为社区收录页面。

选择开启哪些规则

在 你自己 profile 的 cordis.patch.yml 里给 win-env-kit 加 config(会覆盖包内默认 patch,且为整份替换、不深合并):

- id: win-env-kit
  config:
    enabledRules: []
    rule1: true
    rule2: true
    rule3: false
    rule4: false
    rule5: true
    rule6: true
    rule7: true
    rule8: true
    rule9: true

也可用列表点名保留的规则编号,优先级高于逐条开关:

- id: win-env-kit
  config:
    enabledRules: [1, 2, 5, 7, 8]

enabledRules: [] 表示交给各 ruleN 开关决定。非公认「关闭」取值(如 false、"false"、0)一律视为开启,避免错误配置悄悄关掉全部规则。

典型用法

1、在 profile 上执行 install_bundle 安装包目录。
2、按需编辑 profile 的 cordis.patch.yml 收窄规则。
3、在 Windows 工作区让 Agent 加载 win-env-kit;写 .ps1、改编码、打包或截图前,按 SKILL 执行相对 base directory 的 tools/ 命令。
4、换主机时对照 HOST-PROFILE.md 重测代码页(chcp)、PowerShell 版本、屏幕尺寸、Defender/SmartScreen、签名证书;隐私门禁默认 1280x800 下限,可用 --screen WxH 或环境变量 DSH_SCREEN 覆盖。

维护者自测「什么叫完成」包括:

npm pack --dry-run --json
npm run verify
node tools/dsh-env-lint.mjs .

npm run verify 校验 provider 列表、资源目录、SKILL.md 结构、规则裁剪与 Config schema;退出码非零即失败。

适用场景与注意

适合:在 Windows 上用 DSH Agent 做本地构建、文本编码治理、可分发 exe/安装包审计、截图与 _scratch 类临时产物管理,并希望规则和命令在 profile 级复用。

注意:

  • 规则通用,机器专属值只在 HOST-PROFILE.md 示例中;勿把检测用正则当成机器身份配置去改删。
  • config 修改后需写全要保留的字段。
  • README 与 package.json 的版本字段可能并存(VERSION 与 npm version),以实际安装包为准。

结尾

dsh-win-env-kit 把 Windows 环境约束和可执行的零依赖检查收进一个 DSH 工作流插件:装 bundle、可选规则子集、用 SKILL base directory 解析工具路径,让 Agent 在同类任务上少踩编码与产物坑。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye