前言¶
在 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 在同类任务上少踩编码与产物坑。