前言¶
在 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 在同類任務上少踩編碼與產物坑。