← 返回列表
未验证
把鸿蒙HarmonyOS官方 Agent Skills 移植为 DeepSeek Harness 插件 —— 39 个…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档
HarmonyOS (鸿蒙) development skills for DeepSeek Harness — 39 official hmos-* skill bundles ported to the DSH skill registry: ArkTS/ArkUI, multi-device adaptation, Kit integration, and DFX crash/leak analysis.
综合分
29.5
GitHub 分
29.5
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add weikangzeng07-ops/dsh-hmos-skills该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-hmos-skills
把鸿蒙(HarmonyOS)官方 Agent Skills 移植为 DeepSeek Harness 插件 —— 39 个 hmos- 技能包,接入 DSH 技能注册表。
dsh-hmos-skills 是一个 DSH 插件 bundle。一条命令装好,从下一个会话开始,Agent
的技能目录里就会出现全部 39 个鸿蒙技能,可以像使用任何 DSH 技能一样用 skill
工具加载它们 —— 覆盖 ArkTS / ArkUI 开发、多设备适配、元服务 / ASCF、Kit 接入、
Local / Instrument 测试,以及 DFX 崩溃与泄漏分析。
上游技能包是写给 Claude Code 的。本包让它们真正以 DSH 技能的方式运行:
frontmatter 规范化到注册表能校验的形态,Claude Code 的工具名映射为 DSH 对应工具,
${SKILL_DIR} 在加载时解析为真实绝对路径,整个语料由一个零依赖的 ctx.skills
provider 提供。
安装
dsh plugin --profile add github:weikangzeng07-ops/dsh-hmos-skills
重启一次该 profile,让 Host 注册新的 bundle。然后开一个会话看技能目录,应该能看到
39 个 hmos- 条目:
hmos-arkts-syntax-checker: 检查并修复 HarmonyOS 项目的 ArkTS 语法错误…
hmos-arkui-develop-skill: ArkUI 代码开发助手…
hmos-jsleak-analysis: DFX Skills,分析 HarmonyOS/ArkTS rawheap…
…
卸载:
dsh plugin --profile remove dsh-hmos-skills
手动挂载(任意 profile)
不用 bundle 通道,自己加一行:
/cordis.patch.yml
- insert:
- id: hmos-skills
name: 'dsh-hmos-skills'
包必须能从 profile 目录解析到。不要两种方式同时用 —— bundle patch 和手动行会挂载
两次 provider。
使用
不需要额外操作,它们就是普通的 DSH 技能:请求命中描述时 Agent 会自动加载,也可以用
/ 直接调用。
帮我给 entry 模块加一个折叠屏悬停态的分栏布局
Agent 会加载 hmos-multidevice-fold-state(场景不明确时先走
hmos-multidevice-scenario-entry 路由),然后按移植后的指令执行。
/hmos-jsleak-analysis 分析这个 rawheap 快照
DFX 类技能接受日志与快照文件,并驱动包内的分析脚本:
分析 leak.rawheap,输出泄漏嫌疑对象和引用链
分析这份 cppcrash 日志,定位崩溃根因
运行 entry 模块的 Local Test 并给出覆盖率
技能目录
39 个技能,分 6 组,全部 model-invocable,全部出现在会话技能目录中。
ArkTS / ArkUI 开发
| Skill | 作用 |
| --- | --- |
| hmos-arkui-develop-skill | 生成与修改 ArkUI 页面/组件,产出基于知识库、可编译的 .ets 代码。 |
| hmos-arkts-syntax-checker | 检查并修复 HarmonyOS 项目的 ArkTS 语法错误,自动化构建项目 |
| hmos-arkts-deprecated-interface-checker | 检查 HarmonyOS 项目中的废弃 SDK 接口并提供修复建议 |
| hmos-arkts-knowledge-retriever | Retrieve grounded ArkTS references for non-UI ArkTS work and ArkTS API usage. |
| hmos-arkui-knowledge-retriever | ArkUI 知识检索层,按问题语境自动路由到 ArkTS 声明式或 NDK(C-API)知识库进行精准检索,不涉及代码生成或修改 |
| hmos-arkui-mvvm-pattern | HarmonyOS ArkUI MVVM 架构技能 |
| hmos-arkui-statemgt-migration | 帮助开发者将ArkUI状态管理从V1迁移到V2 |
| hmos-arkui-longtake-transition | 为鸿蒙(HarmonyOS)应用添加一镜到底转场效果 |
| hmos-design-visual-mobile | HarmonyOS 移动端页面视觉还原技能 |
多设备适配
| Skill | 作用 |
| --- | --- |
| hmos-multidevice-scenario-entry | Entry skill for HarmonyOS multi-device adaptation. |
| hmos-multidevice-screen-window-size | HarmonyOS 多设备屏幕窗口尺寸适配 |
| hmos-multidevice-fold-state | HarmonyOS foldable-device adaptation skill for requirements, development, bug-fix, and verification phases. |
| hmos-multidevice-avoid-areas | Handle HarmonyOS avoid-area adaptation through a declarative scene and resource index. |
| hmos-multidevice-interaction-methods | HarmonyOS应用多设备交互适配开发方案skill,提供触摸、鼠标、键盘、手写笔等多输入方式的交互方案和事件归一策略 |
| hmos-multidevice-natural-orientation | 鸿蒙 HarmonyOS 屏幕方向与旋转相关的需求分析、开发实现、问题修复和功能验证 |
| hmos-multidevice-hardware-access | Handle HarmonyOS hardware-capability adaptation through a declarative scene and resource index. |
元服务 / ASCF
| Skill | 作用 |
| --- | --- |
| hmos-atomicservice-assistant | 辅助鸿蒙开发者构建元服务(Atomic Service / 免安装应用) |
| hmos-ascf-assistant | 辅助开发者使用 ASCF 工具链开发 HarmonyOS 元服务 |
| hmos-ascf-convert-taro | 辅助开发者将 Taro 项目适配(转换)为 ASCF 元服务 |
| hmos-ascf-convert-uniapp | 辅助开发者将 uni-app 项目适配(转换)为 ASCF 元服务 |
Kit 接入
| Skill | 作用 |
| --- | --- |
| hmos-push-kit | 华为 Push Kit 推送服务集成助手(Master Skill / 大路由) |
| hmos-push-kit-token | Push Token 获取助手,可作为单独接入能力使用 |
| hmos-push-kit-notification | 通知消息助手:推送通知、消息提醒、通知样式与点击动作。 |
| hmos-push-kit-voip | 应用内通话(VOIP)推送助手:语音/视频来电通知与呼叫接听界面。 |
| hmos-push-kit-background | 后台消息推送助手:数据静默更新与消息缓存。 |
| hmos-scan-kit-defaultscan | 帮助开发者快速接入华为 Scan Kit 默认界面扫码能力,在不需要完全自定义相机界面、闪光灯控制、变焦、对焦等高级功能时优先使用 |
| hmos-scan-kit-customscan | 帮助开发者快速接入华为 Scan Kit 自定义界面扫码能力,仅在需要支持完全自定义相机预览流 UI 界面、闪光灯控制、变焦、对焦等功能的场景使用 |
| hmos-account-kit-quicklogin-client | 基于 HarmonyOS Account Kit 提供华为账号一键登录客户端接入指引,实现获取匿名手机号接口与华为账号一键登录组件集成 |
| hmos-live-view-kit-build-location | HarmonyOS实况窗(LiveView)代码生成助手,支持创建、更新、停止实况窗 |
测试
| Skill | 作用 |
| --- | --- |
| hmos-local-test | 在 HarmonyOS 应用/服务开发中执行模块的 Local Test(ArkTS/JS 单元测试),支持运行、覆盖率统计等模式,并可指定测试范围(模块、测试套件、单个用例) |
| hmos-instrument-test | 在 HarmonyOS 应用/服务开发中执行模块的 Instrument Test(包括 ArkTS/JS 和 C++ 测试),支持运行、覆盖率统计、ASan 检测等模式,并可指定测试范围(模块、测试套件、单个用例) |
DFX 故障分析
| Skill | 作用 |
| --- | --- |
| hmos-apifault-analysis | 定位 API 调用失败、错误码与 crash/freeze 日志根因,输出结构化诊断报告。 |
| hmos-appfreeze-analysis | DFX Skills,自动分析 HarmonyOS / OpenHarmony Freeze(冻屏/卡死)故障日志,定位根因并输出完整证据链 |
| hmos-jscrash-analysis | 分析 JS Crash(ArkTS/JS 闪退)faultlogger 日志并定位根因。 |
| hmos-cppcrash-analysis | 分析 CppCrash(Native 层崩溃)日志:信号、寄存器、Native 调用栈与符号。 |
| hmos-fdleak-analysis | 分析 FD / 句柄泄漏日志并定位泄漏申请栈。 |
| hmos-jsleak-analysis | DFX Skills,分析 HarmonyOS/ArkTS rawheap、heapsnapshot 和 Heap Cluster 报告,识别疑似 JS 内存泄漏 |
| hmos-native-memleak-analysis | 基于 sample、smaps、profiler 火焰图分析 Native 内存泄漏。 |
| hmos-memleak-analysis | 静态分析 ArkTS、JS、C/C++ 源码中的内存泄漏。 |
工作原理
整个包就是一个 Cordis 插件。
cordis.patch.yml ──insert──▶ dsh-hmos-skills (lib/index.js)
│ ctx.skills.registerProvider()
▼
@deepseek-ai/dsh-skill ◀── @deepseek-ai/dsh-tool-skill
(合并后的技能注册表) (会话技能目录 + skill 工具)
▲
skills//SKILL.md (39 个技能包,在本仓库内)
单个 provider,rank 600。 lib/index.js 以 BUNDLED_SKILL_RANK 在
ctx.skills 上注册名为 hmos 的 provider。因此项目内
/.dsh/skills(rank 100)或用户目录 ~/.dsh/skills(rank 400)
的同名技能依然优先 —— 你本地的修改永远覆盖本包。
* 发现即目录扫描。 list() 读取 skills//SKILL.md、解析 frontmatter 并返回
候选;get() 每次加载都重新读文件,改技能正文下一次加载即生效,没有需要失效的缓存。
运行时零依赖。 frontmatter 由一个约 120 行的 YAML 子集解析器处理,正好覆盖本
语料用到的构造(普通标量、引号标量、| / > 块标量、嵌套 metadata 映射)。
已验证:39 个文件的解析结果与 yaml 官方实现完全一致。
* 资源按磁盘解析。 每个候选都带一个目录型 resourceBase,技能里的
references/、assets/、scripts/ 路径都相对它自己的安装目录解析。
* 不能有 export default。 Cordis loader 用 exports.default ?? exports 归一化插件
模块,所以默认导出会顶替模块命名空间、丢掉具名 inject;该行随后会以「没有服务
声明」的形态挂载,导致 DSH 启动直接失败:cannot get property "skills" without inject。
因此 lib/index.js 只用具名导出(与官方 dsh-skill-badge 一致),并且
scripts/smoke.mjs 第一项就断言这个形状。
移植过程中改了什么
上游是 Claude Code 内容,要变成真正的 DSH 技能,改了七处。
| # | 改动 | 原因 |
| --- | --- | --- |
| 1 | 39 个技能包的 frontmatter 全部规范化 | DSH 要求 name + description;上游还在顶层带 license、compatibility、version、category。这些被收进 metadata,键集按固定顺序重新输出。 |
| 2 | 9 个描述裁到目录 500 字符上限内 | dsh-tool-skill 按 catalogDescriptionMaxLength(默认 500)截断目录描述并加 ...。hmos-push-kit 原描述 994 字符,被截掉的正好是决定加载哪个子技能的路由表。裁剪后的文本保留了全部触发词与路由规则,完整原文仍在技能正文里。 |
| 3 | hmos-push-kit 子技能拍平 | 上游把 4 个子技能嵌在 hmos-push-kit/ 下,而 DSH 发现只深入一层(//SKILL.md)。子技能现在是同级目录,各自带一份 references/push-error-codes.md,相对链接可解析。 |
| 4 | ${SKILL_DIR} 在加载时解析 | 上游在 3 个技能里混用 {skill_dir} / $SKILL_DIR / ${SKILL_DIR}。移植时统一写法,provider 在正文加载时替换为真实绝对路径。 |
| 5 | Claude Code 工具名映射 | Glob/Grep/Read/Write/Edit/SearchReplace/Bash/TodoWrite/Task/WebSearch/WebFetch → glob/grep/read/write/edit/pwsh/todo_write/subagent/web_search/web_fetch。字面工具名会产生误导的地方做了文件内改写,同时在每个加载的正文前注入一段运行环境说明。 |
| 6 | 去掉 CodeGenie MCP 依赖 | hmos-arkts-syntax-checker、hmos-arkts-deprecated-interface-checker、hmos-account-kit-quicklogin-client 和 Scan Kit 系列的整个流程都建立在 DevEco Studio 的 CodeGenie MCP 工具之上(mcp_codegenie-mcp_check_ets_files、mcp_codegenie-mcp_build_project、builtin_),这些在 DevEco 之外并不存在。每个都给了明确的 DSH 替代路径 —— 用 pwsh 驱动 hvigorw,或退化为包内知识检索与 lint 工具,并明确说明未做真实编译 —— 同时同步更新了它们的流程图、决策树、检查清单与工具表。hmos-apifault-analysis/references/tool_mapping.md 整篇按 DSH 重写。 |
| 7 | .claude/skills → .dsh/skills | hmos-multidevice-scenario-entry 的远端加载文档与 remote_load.sh 描述的是 Claude Code 的工作区布局;现在 dsh 是该安装器的一等平台。评测用例中列出 allowed_tools 的夹具也改成了 DSH 工具名。 |
约 2300 个文件里其余内容未作改动:正文、references、assets、scripts 与上游
逐字节一致,差别仅限上表所列。
前置条件
技能开箱即可用于阅读、规划与代码生成。部分能力需要本机鸿蒙工具链,移植后的正文会
明确说明这一点,而不是假装可用:
| 能力 | 依赖 |
| --- | --- |
| 构建 / 编译(hmos-arkts-syntax-checker、hmos-account-kit-quicklogin-client、Scan Kit) | DevEco Studio,已配置 DEVECO_SDK_HOME,工程根目录有 hvigorw |
| Local / Instrument 测试 | hdc(真机或模拟器)、DevEco Studio |
| DFX 日志分析(-analysis 系列) | Python 3 运行包内解析脚本;heap_cluster 需要 Node 22.5+(建议 24) |
| JS 泄漏聚类 | 在 skills/hmos-jsleak-analysis/scripts/node/ 执行 pnpm install(lockfile 已包含) |
| ArkTS lint 工具 | 在 skills/hmos-arkts-knowledge-retriever/linter-cli/ 执行 npm ci |
配置
全部可选,均有可用默认值:
- insert:
- id: hmos-skills
name: 'dsh-hmos-skills'
config:
providerName: hmos # 注册到 ctx.skills 的 provider 名
environmentNote: true # 每次加载是否注入 DSH 运行环境说明
skillsDir: /abs/path # 改为提供其它技能根目录
rank: 600 # 同名技能优先级(越小越优先)
source: bundled # 提示词中可见的来源分类
设 environmentNote: false 可完全按上游原文提供技能内容。
验证
node scripts/smoke.mjs
通过本包 provider 列出全部技能,并断言注册表所强制的不变量:kebab-case 名称、
名称唯一、描述非空且不超过目录上限、model-invocable、目录型 resourceBase、正文
非空、已注入运行环境说明,以及没有未解析的 ${SKILL_DIR} —— 最后一项在关闭
运行环境说明的情况下检查,确保占位符是在技能正文里被解析的,而不是只靠注入文本。
仓库结构
dsh-hmos-skills/
├── cordis.patch.yml # dsh.bundle.patch:唯一一行插件挂载
├── package.json # dsh.bundle.patch -> ./cordis.patch.yml
├── lib/
│ ├── index.js # provider(零依赖)
│ └── types/index.d.ts
├── scripts/smoke.mjs # 独立验证脚本
└── skills/ # 39 个技能包,一目录一个
├── hmos-arkts-syntax-checker/
│ ├── SKILL.md
│ └── references/
├── hmos-jsleak-analysis/
│ ├── SKILL.md
│ ├── references/
│ └── scripts/ # rawheap 转换器、Node 版 heap-cluster 源码
└── …
仓库体积
本仓库约 267 MB,因为 DFX 与知识库类技能自带真实工具链:llvm-objdump /
llvm-addr2line 符号化工具、trace_streamer、rawheap_translator、鸿蒙设计字体,
以及 ArkTS / ArkUI 知识库。
有两处刻意未提交:
| 未提交内容 | 体积 | 获取方式 |
| --- | --- | --- |
| skills/hmos-jsleak-analysis/scripts/{windows,linux,macos}/heap_cluster | 423 MB | 这些文件每一个都超过 GitHub 单文件 100 MB 硬上限。官方文档指定的主路径是 Node 源码版 scripts/node/heap_cluster.js,已包含在本仓库中 —— 在 scripts/node/ 执行 pnpm install 即可使用。 |
| skills/hmos-arkts-knowledge-retriever/linter-cli/node_modules/ | 45 MB | 在 linter-cli/ 执行 npm ci 恢复;package-lock.json 已提交。 |
来源与许可
skills/ 下的技能内容来自鸿蒙官方 Agent Skills 集合,由华为 / OpenHarmony 社区
发布(公开镜像见 AtomGit 的 test-oh-skills/,文中也以 DFX Skills、
HarmonyOS 多设备技能集等名义出现)。版权归原作者所有;每个 SKILL.md 中的
metadata.author / metadata.version 均原样保留。
插件代码 —— lib/、scripts/、cordis.patch.yml、package.json —— 采用 MIT
许可(见 LICENSE)。
如果你是权利人并希望调整或下架本移植版本,请开 issue。扫码进群