中文EN

dwguard-dsh-hmos

workflow已测通过npmMIT

DSH 侧鸿蒙交付编排插件:冻结四维验收任务包(可量化判据带机器可校验断言)、派发前对抗预审、以 Goal 模式交给 DevEco Code,再用独立取证(截图 / 布局树 / 日志 / 带 SHA-256 的证据包)做外部审计,按实测值重算断言判定并生成返工单;含带官方引用的规则目录、用户确认状态与闸门校准账本。

下载量 / Downloads
1,248
依赖体积 / node_modules
1.51 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dwguard-dsh-hmos

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

DwGuard-Dsh-Hmos

![CI](https://github.com/Dogwind221/dwguard-dsh-hmos/actions/workflows/ci.yml)

![License: MIT](LICENSE)

![npm](https://www.npmjs.com/package/dwguard-dsh-hmos)

DSH 侧的鸿蒙双 Agent 编排与外部审计插件。 它把「DSH 编排 + DevEco Code 执行」的协作方式,从一份提示词文档变成一组有闸门的工程动作:任务包冻结、派发前对抗预审、Goal 模式派发、四维外部审计、返工单、验收报告、知识沉淀。

0.6.2–0.7.0 在此之上加入设计参考与范式包闭环:dwguard_design 先 recommend 最多 3 套方向,brief 注入品牌/原则/模式;实现经四维审计 + 用户确认后 capture-pack 冻结范式包,registry/supersedes/feedback/benchmark 让下一轮推荐持续变好。

核心主张只有一句:交付物必须自己证明自己,DSH 不采信执行者的自述结论。

English: [README.en.md](README.en.md) · 变更记录:[CHANGELOG.md](CHANGELOG.md)

为什么需要它

让一个 Agent 自己写、自己测、自己说"完成了",等于没有验收。这个插件把 DSH 的职责钉死在三件事上:

1. 先把"做完"定义清楚:功能 / 审美 / 性能 / 无障碍四维判据,每条都必须可证伪、有独立验证方式。写不出来就不许派发。

2. 派发前先自我攻击:从性能、生命周期、并发、API 兼容四个视角质询任务包,阻断项必须经历一次反驳尝试。

3. 交付后自己取证:截图、布局树、日志、测量值,一条判据一段证据。四维没覆盖、must 判据没证据,闸门就不开。


架构

flowchart TD
    U["用户需求 / 品牌色 / 模块"] --> DR["dwguard_design<br/>recommend:最多 3 套候选"]
    DR --> CH["用户选方向<br/>可要求新方向"]
    CH --> S["dwguard_spec<br/>冻结任务包(四维判据)"]
    S --> P["dwguard_prereview<br/>对抗预审(四视角 + 反驳)"]
    P -- 阻断项未清 --> S
    P -- 通过 --> D["dwguard_dispatch<br/>生成 Goal 简报"]
    S --> B["design-brief<br/>品牌 / 原则 / 模式"]
    D --> E["DevEco 执行闭环<br/>理解任务包 → 编码 → 构建 → 推设备 → 自验"]
    B --> E
    E --> C{"自评 / 澄清<br/>双方无异议?"}
    C -- "实现层分歧" --> E
    C -- "任务包层分歧" --> S
    C -- 无异议 --> A["dwguard_audit<br/>独立取证(截图/布局树/日志/数值)"]
    SH["增量② 影子审查<br/>只读中间代码与产物"] -. 结构性风险 .-> C
    A -- 未通过 --> R["tasks/rework-n.md<br/>返工单"]
    R --> E
    A -- 通过 --> ACC["artifacts/acceptance-report.md<br/>验收报告"]
    ACC --> K["dwguard_knowledge<br/>沉淀经验"]
    ACC --> CF["dwguard_confirm<br/>用户确认"]
    CF --> CP["capture-pack<br/>范式包 v2:cards + registry + evidence"]
    CP --> LIB[("design-library<br/>cards / packs / feedback")]
    LIB -. 检索 / 排序 .-> DR
    FB["pack-feedback / benchmark"] -.-> LIB
    Q["dwguard_status<br/>阶段 / 未读交付 / 下一步"] -.-> S
    Q -.-> A
    Q -.-> CP
    K --> U

主环仍是四维验收;设计参考层是旁路:recommend 给方向、brief 给规则,capture-pack 只在审计通过 + 用户确认后冻结范式包;preview 不是判据。

两个回环,不要混:

  • 实现层(Spec 没问题,是实现偏差)→ 回「编码实现」,出返工单/返工项;
  • 任务包层(Spec 歧义、判据不可达、架构方向错)→ 停线 → 改任务包、升版本 → 重跑预审 → 重新派发,执行者回到「理解任务包」;
  • 影子审查(增量②)的结论先落到「自评 / 澄清」这个闸门:双方无异议才交付,有分歧先澄清再决定回哪一层。

与原始框架文档的四个增量一一对应:

文档中的增量 · 本插件里的落点

① 派发前架构预审 · dwguard_prereview(阻断项需 rebuttal,未关闭不得派发)

② 并行影子审查者 · 编码期只读巡检 → 风险分层:任务包层停线改包重预审(回「理解任务包」),实现层记返工项(回「编码实现」);dwguard_status 汇总

③ 外部审计(不采信自验) · dwguard_audit(逐条 checks + 独立证据 + 四维覆盖闸门;四维各派一个子代理并行取证)

④ 知识沉淀 · dwguard_knowledge(按主题归档,索引去重)

0.6.2–0.7.0 新增设计参考层(不在原始四增量内):dwguard_design 先 recommend 最多 3 套方向,选定后 brief 注入品牌/原则/模式;实现经四维审计 + 用户确认后 capture-pack 冻结范式包;registry/supersedes/pack-feedback/benchmark 让下一轮推荐优先命中。它只提供方向与对照,不替代四维判据。


安装

要求:DSH 0.2.1-rc.x(engines.dsh: >=0.2.1-rc.0 <0.3.0)。插件以 bundle 形式安装,注册一个 host 行。

npm 包:dwguard-dsh-hmos(当前 0.7.1)。

0.7.1 是文档补丁:只修正 README / 注释与发布说明,不改运行逻辑;npm 最新版以 registry 为准。

从 npm 拉取(推荐)

注意:安装插件不是 npm install。 npm install 只会把包放进 node_modules,不会注册到 DSH 的 profile;正确入口是 DSH 的插件安装器,由它从 npm 拉取并注册。

入口 · 命令 / 操作

桌面版 · 侧栏 插件 → 添加插件,包名填 dwguard-dsh-hmos(固定版本 dwguard-dsh-hmos@0.7.1)

命令行 profile · dsh plugin --profile web add dwguard-dsh-hmos@0.7.1

没有 dsh 命令 · npx @deepseek-ai/dsh@0.2.1-rc.5 plugin --profile web add dwguard-dsh-hmos@0.7.1

安装器会从 npm registry 解析版本;想跟最新版就省略版本号。下文分别说明桌面版与 CLI profile 的细节。

先确认你跑的是哪种入口——desktop profile 由桌面应用独占管理,命令行改不了它(dsh plugin --profile desktop … 会被明确拒绝),所以两种入口的安装方式不同:

启动方式 · profile · 安装入口

桌面应用(DeepSeek Harness.exe,默认场景) · desktop · 侧栏 插件 → 添加插件(应用内)

命令行 dsh web / dsh tui / dsh headless · web / tui / … · dsh plugin --profile <name> add …

桌面版:应用内安装

1. 左侧栏打开 插件 → 右上 添加插件;

2. 包名填 dwguard-dsh-hmos(固定版本就填 dwguard-dsh-hmos@0.7.1)→ 安装、选配置层、确认;

3. 装完按提示重启应用(托盘里也要退出)。

同一个对话框里的 安装第三方插件 也接受 Git 仓库地址和本地目录,所以「GitHub 直装 / 本地 checkout」在桌面版也走这里。

命令行 profile:CLI 安装

# 需要在 PATH 上有 pnpm —— dsh plugin 会把参数转发给 pnpm
dsh plugin --profile web add dwguard-dsh-hmos

# 固定版本
dsh plugin --profile web add dwguard-dsh-hmos@0.7.1

# 机器上没有 dsh 命令时,用 npm 上的 CLI 包
npx @deepseek-ai/dsh@0.2.1-rc.5 plugin --profile web add dwguard-dsh-hmos

也可以从 GitHub 或本地目录装(同样只适用于命令行 profile):

# 在仓库根目录执行;把 . 换成绝对路径也可以
dsh plugin --profile web add .
dsh plugin --profile web add https://github.com/Dogwind221/dwguard-dsh-hmos

确认装好了

  • 桌面版:插件 页出现 DwGuard-Dsh-Hmos;
  • 命令行:dsh --profile web --dump-config 里能看到 # == dwguard-dsh-hmos。

装好后,新开的会话都会拿到 15 个工具、4 个 skill 和一段策略提示词。让 DSH「给鸿蒙做个 XX 页面」,它会自动加载 dwguard-hmos skill。已经打开的旧会话如果没热加载到新工具,新开一个会话即可(工具表在会话开始时就固定了)。

可选:独立的 Agent 预设

Bundle 已经全局注册,预设只是让新会话选择器里多一个「DwGuard 鸿蒙双代理」入口(工具集偏向编排与取证,不含实现类工具):

# 方式一:作为叠加层启动一次(命令行 profile;桌面版用方式二;在仓库根目录执行)
dsh --profile web --patch "preset/dwguard-hmos.cordis.yml"

# 方式二:把 preset/dwguard-hmos.cordis.yml 里 - insert: 的整段粘贴进
#        %USERPROFILE%\.dsh\profiles\<desktop 或 web>\cordis.patch.yml,然后重启

预设依赖部署里有 @deepseek-ai/dsh-agent-preset(Web 版自带)。不想用就不装,工具照常可用。

卸载

  • 桌面版:插件 → 已安装插件 → DwGuard-Dsh-Hmos → 移除;
  • 命令行 profile:dsh plugin --profile web remove dwguard-dsh-hmos(tui 等换成对应 profile 名)。

界面入口:DshHoms(右侧栏看板)

侧边栏新增一行 DshHoms,位置在 插件(order 0)与 自动化任务(order 10)之间(本插件 order 5)。

点它不会顶掉对话:看板以标签页形式开在 右侧栏(tab 标题 DshHoms),主区域保持当前会话。左侧再点一次会复用已打开的标签,不会重复开。

点击路径有两条,因为右侧栏的 openTab 依赖「对话占据主列」时的会话 surface:

1. 点图标:拦截侧栏行的点击(stopPropagation),直接 openTab,主区域完全不动;

2. 点行/文字:行会先选中本插件在主区域的启动器面板——启动器在

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:9,最后更新 2026-11-04

链接

GitHub · Homepage · npm

同类插件