tri-hmos:HarmonyOS开发
> 层级路径:根(唯一发布根 skill)
> 全名(full-slug):tri-hmos-skill
> 职责:识别鸿蒙开发意图 → 分发到 children 对应子 skill → 汇聚结果
> 上游来源:HarmonyOS Agent Skills(https://gitcode.com/HarmonyOS_Skills/harmonyos-agent-skills )全量蒸馏,57 个原 skill 场景全覆盖(对账表见 references/source-map.json)
强制执行契约(Execution Contract · 最高优先级)
- 版本检查前置硬门(第零步):MUST 先运行
python scripts/check_update.py --slug tri-hmos-skill --json,退出码 <20 放行;脚本异常时兜底降级放行,NEVER 因版本门自身故障阻断启动。版本检查完成前 NEVER 进入路由步骤。 - 路由前置铁律:任何鸿蒙开发类请求 MUST 先完成意图识别并定位子 skill,再进入子 skill 执行;NEVER 跳过路由直接作答;本 skill 仅负责识别与分发,NEVER 越界代做子 skill 的开发/分析/修复工作。
- 确定性匹配优先:路由匹配 MUST 先运行
python scripts/route_match.py --text "<用户请求>" --json(确定性脚本,约束 18);脚本输出仅为候选证据,最终落点由模型结合上下文裁定;脚本无命中时按 §分发规则人工判定,NEVER 编造子 skill。 - children 就位检查:分发前 MUST 确认
children/<slug>/SKILL.md存在;缺失时运行python scripts/install_children.py(bootstrap,见 §children 安装),安装失败则输出缺位子 skill 名称与安装指引,NEVER 静默降级为泛泛而谈。 - 蒸馏内容边界声明:children 内 references 来自上游仓库蒸馏——DFX 预编译工具(heap_cluster / llvm-objdump / trace_streamer)、node_modules、字体均已外置(原因与获取指引写在各子 skill 内),子 skill 报告工具缺失时按其指引处置,NEVER 假装工具可用。
- 独立使用语义:本 skill 不依赖父级即可完成路由;独立安装与跨注册表寻址以 frontmatter
full-slug(全树唯一)为准;子 skill full-slug 统一为tri-hmos-skill-<child-slug>。 - MUST/NEVER 大写语义贯穿本文件;未命中请求 MUST 给出最近似候选 + 降级指引,NEVER 静默拒答。
- 结论置信标注(三要素):本 skill 与各子 skill 的结论性输出 MUST 同时附「置信度(高/中/低或百分比)+ 依据类型(事实 known / 计算 computed / 推断 inferred / 常识 common / 框架 iframe / 玩磨 guess)+ 可查证来源 URL(存在时)」,NEVER 在无标注状态下输出结论;路由判定本身以自检句置信度字段承载。本契约自 skill 激活(用户按名唤起或上层路由下发,激活判定见 §触发时机)即整体生效,NEVER 部分跳过。
版本检查与更新机制(强制技术约束 · 硬红线)
> 家族级强制技术约束:任一执行入口启动后的第零步。本 skill 未收录 skillhub 时按
> version-check-spec 四态判定为态 C(未收录 → 降级放行),收录后由脚本按四态动态判定,
> 禁止在 prompt 内联推断版本。
python scripts/check_update.py --slug tri-hmos-skill --json
- 退出码 <20 一律放行;脚本异常时兜底降级放行,NEVER 因版本门自身故障阻断启动。
触发时机
| 信号 | 示例 |
|---|---|
| 鸿蒙技术词 | ArkTS、ArkUI、HarmonyOS、鸿蒙、@kit、DevEco、hdc、hvigor |
| 开发动作 | 写页面、接 SDK、修崩溃、适配折叠屏、查 API、跑测试、提交应用市场 |
| 父级/顶层路由下发 | 上层 skill(如 tri-intent)按路由表分发至此 |
| 直接激活 | 用户按名称唤起 tri-hmos-skill / tri-hmos,或对话中出现上表信号 |
激活语义:本 skill 不设独立 slash 入口(家族仅 tri-intent / tri-translate 保留 slash 激活);激活途径 = ①用户按名唤起,②tri-intent 按 L2 路由下发,③对话信号命中触发时机表。激活后 MUST 从契约第 0 步(版本门)开始执行,NEVER 跳过。
不适用(MUST 明示转出,不做模糊路由):iOS/Android 原生开发(无鸿蒙语义)、纯前端 Web 开发(非 ArkWeb 场景)、与 HarmonyOS 无关的通用编程问题。
不触发场景(Not-Trigger)
本 skill 不接手以下情形(命中即转出,不越界产出):
- 「iOS/Android 原生开发」(无鸿蒙语义,非本 skill 覆盖)。
- 「纯前端 Web 开发」(非 ArkWeb 场景,属 tri-frontend-design / tri-html / tri-coding)。
- 「与 HarmonyOS 无关的通用编程问题」(属 tri-coding / tri-ask 等通用 L2 落点)。
- 「意图识别与路由分发」(由 tri-intent 按路由表下发,本 skill 只接手鸿蒙领域任务)。
意图识别(轻量 MECE · 借鉴 tri-intent)
> 设计取舍:不引入 snapshot 落盘与 clarify-gate 全套机制,仅保留「关键词归一 → 确定性匹配 → 消歧 → 置信度 → 兜底」五步,保证轻量可预测。
路由步骤(顺序固定):
- 第零步:§版本检查。
- 关键词归一:抽取请求中的领域词与动作词(如「折叠屏」「崩溃日志」「接推送」),中文别名归一(如「闪退」→「崩溃」语境、「小艺入口/意图」→ insight-intent 场景)。归一化为「小写化 + 删除全部空白」,因此
MapKit/PushToken等中英混排写法与词表里的map kit/push token自动对齐(真人不会照抄词表空格)。 - 确定性匹配:运行
route_match.py --text "<归一后请求>" --json,得到候选子 skill 与命中关键词/同义词。匹配层同时消费keywords(文档术语层)与synonyms(口语/自然语言说法层,同权重),因此对「白屏一下」「下拉刷新」「权限不够」「构建一直卡住」这类真人问法也能命中,不再要求用户逐字照抄词表。零命中时脚本输出match_state="none"+hint指明兜底动作,NEVER 静默返回空候选。 - 多命中消歧:命中多个子 skill 时——按「最终期望产出」取主意图,其余降为辅助标签;仍难判定 → 列出候选(≤3 个)请用户选择,NEVER 静默选第一个。固定消歧规则(按序裁决):
- 知识检索 vs 开发实现:「参数含义/是什么/默认值/文档在哪/差异对比」等检索语义 → 知识检索子 skill(hmos-arkui-knowledge / hmos-arkts-knowledge / hmos-one-sdk);「怎么写/怎么实现/怎么修」等开发语义 → 对应开发子 skill。NEVER 因组件名同现而误入开发子 skill。
- 崩溃信号词恒归故障分析:SIGILL/SIGBUS/SIGFPE/SIGSEGV/GWP-ASan/HybridStack/THREAD_BLOCK_6S/INPUT_BLOCK/LIFECYCLE_TIMEOUT 等信号词出现时恒归 hmos-fault-log,泛词(如「报告」「日志」)NEVER 单独决定落点。
- 优化 vs 泄漏:「降内存/分档/低端机」→ hmos-memory-opt;「持续增长/泄漏/快照」→ hmos-leak(与边界裁决表互为印证)。
- 工具操作 vs 故障分析:hilog/hvigor 等工具词与故障词同现时,按边界裁决表的动词语义(查看/导出 → 工具;分析/定位 → 故障)裁决。
> 消歧规则现已成为常驻路径:v1.0.x 仅用 keywords(文档术语层)时,真人问法多零命中、多命中几乎为 0,消歧规则形同空转;v1.1.0 引入 synonyms(口语层)后多命中比例上升,上述固定消歧规则与边界裁决表进入常态触发,路由争议务必逐条查表裁决,NEVER 静默取第一个候选。
5. 置信度三档(借鉴 tri-intent 置信度机制,简化为单维关键词覆盖度 + 上下文完备度自评):
- 高(≥0.85):直接分发,跳过复述。
- 中(0.60–0.85):分发前用一句话向用户复述「识别结果 + 命中依据」,供其纠偏。
- 低(<0.60):NEVER 分发;列出最近似 2–3 个候选 + 追问关键缺失信息(目标设备形态?要开发还是排查?哪个 Kit?)。
6. 边缘兜底:无法归入任何子 skill 时——若属鸿蒙但超范围(如南向设备驱动),明示能力边界并建议官方文档;若属 Expressing 类闲聊,直接自然回应不路由。
7. 自检句(强制收尾):本次意图=<命中子skill|直答|转出>,置信度=<高|中|低>,children=<已就位|已安装|缺失>。
路由表(16 children · MECE · 按上游官方类别标注)
> 类别来源:上游 README「技能总览」表【类别】列(设计/质量保障/开发框架/HMOS核心技术/测试/工具/审查/HarmonyOS SDK)。审查类(hmos-skill-reviewer)属治理层,蒸馏至 references/governance/,不参与业务路由。
>
> grep 检索指引:处理请求前可先对索引做关键词检索快速定位候选,再读对应 children SKILL.md 全文——grep -i "<关键词>" references/route-index.json(Windows 用 Select-String -Pattern "<关键词>" references\route-index.json);治理/误判案例检索用 grep -i "<关键词>" references/lessons.md。
| 子 skill | 官方类别 | 名称 | 覆盖场景 | 识别关键词(节选,全量见 route-index.json) |
|---|---|---|---|---|
| hmos-design | 设计 | 页面视觉还原 | 设计稿→高保真 HTML、Design Token、组件模板 | 设计稿、视觉还原、高保真、鸿蒙风格页面 |
| hmos-fault-log | 质量保障 | 故障日志分析 | API 报错定位、冻屏/ANR、JS/Native 崩溃、运行时修复 | 错误码、报错、崩溃、闪退、卡死、冻屏、ANR、appfreeze、jscrash、cppcrash、faultlog、GWP-ASan、HybridStack、THREAD_BLOCK_6S、OutOfMemoryError |
| hmos-leak | 质量保障 | 泄漏分析 | rawheap/堆快照、FD 泄漏、源码静态检测、Native 泄漏 | 泄漏、leak、rawheap、heapsnapshot、句柄泄漏、内存增长、smaps、PSS、htrace、fd_leak |
| hmos-memory-opt | 质量保障 | 内存分档优化 | 低端机内存降级闭环、优化前后对比 | 内存分档、低端机、内存优化、内存占用 |
| hmos-multidevice | HMOS核心技术 | 多设备适配 | 折叠屏、断点/平行视界、安全区、横竖屏、键鼠手写笔、硬件降级 | 多设备、折叠屏、悬停、折痕、安全区、避让、断点、平行视界、横竖屏、手写笔、windowSizeChange、WidthBreakpoint、GridRow |
| hmos-arkui-dev | 开发框架 | ArkUI 开发 | 页面/组件/布局、状态管理 V1→V2、MVVM、一镜到底、意图装饰器 | ArkUI、写页面、组件、布局、动画、转场、MVVM、V2 迁移、一镜到底、InsightIntent、Repeat、animateTo、AttributeModifier |
| hmos-arkui-knowledge | 开发框架 | ArkUI 知识检索 | ArkTS/NDK 双库 API 检索、组件参数验证 | ArkUI API、组件属性、参数含义、NDK、C-API、ArkUI 文档 |
| hmos-arkts-dev | 开发框架+测试¹ | ArkTS 工程检查 | 语法检查、编译错误修复循环、废弃接口清理 | ArkTS 语法、编译错误、构建失败修复、废弃接口、TS 迁移、API 版本升级 |
| hmos-arkts-knowledge | 开发框架 | ArkTS 知识检索 | 语言规范、并发 TaskPool、标准库、工具链文档 | ArkTS 语法规则、TaskPool、Worker、标准库、ArkTS 指南 |
| hmos-atomic-service | 开发框架 | 元服务/ASCF | 元服务创建上架、ASCF 工具链、Taro/uni-app 转换 | 元服务、免安装、ASCF、atomicService、小程序转换 |
| hmos-push-kit | HarmonyOS SDK | 推送服务 | Push Token、通知/后台/VOIP 消息、场景化权益 | 推送、push、Push Token、通知消息、VOIP、后台消息 |
| hmos-sdk-app-services | HarmonyOS SDK | 应用服务 Kit | 华为账号一键登录、支付、广告变现、实况窗 | 一键登录、华为账号、支付、广告、变现、实况窗、LiveView |
| hmos-sdk-media-map | HarmonyOS SDK | 媒体与地图 Kit | 默认/自定义扫码、地图创建、POI 检索、路径规划 | 扫码、Scan Kit、地图、POI、路径规划、Marker、轨迹纠偏、批量算路 |
| hmos-test | 测试 | 测试 | 本地单测、仪器测试、覆盖率、ASan | 单元测试、仪器测试、覆盖率、ASan、Local Test |
| hmos-devtools | 工具 | DevEco 工具链 | 模拟器、hilog 查看/导出、hvigor 构建、codelinter、设备验证、Bug 自动修复、三端流水线 | DevEco、模拟器、hilog 命令、日志导出、hvigor、codelinter、hdc、设备验证、PRD、端到端、代码评审 |
| hmos-one-sdk | HarmonyOS SDK | SDK 文档库 | 25 Kit API 签名/权限/错误码检索(BM25 路由) | @kit、@ohos、API 签名、权限要求、错误码大全、SDK 文档 |
> ¹ hmos-arkts-dev 双类别注记:syntax-checker 场景在上游技能总览归「测试」、废弃接口检查归「开发框架」(README 两处不一致,以技能总览为准),故双标注。
分发规则(MECE 边界裁决)
- 先归一后匹配:口语、错别字先归一;表情/语气词 NEVER 参与匹配。
- 命中唯一 → 分发;命中多个 → 按第 4 步消歧。
- 未命中 → 兜底:按最近似子 skill 降级 + 明示假设;完全无候选时按四级兜底链逐级转出并明示层级——① 本地知识库 → ② 上游仓库 → ③ 鸿蒙开发者论坛 → ④ 其他社区(顺序与出处唯一事实源:
references/fallback-chain.md)。 - 下发传递上下文:MUST 向子 skill 传递——用户原始诉求、设备形态(手机/折叠屏/平板/2in1)、阶段(开发/排查/上架)、已有关键信息(日志片段、错误码、目标 API)。
- 跨子 skill 交接:子 skill 执行中发现问题实属另一子 skill(如写页面时发现编译错误),MUST 回到本路由重新分发,NEVER 越域代做。
高频边界裁决表(路由争议必查):
| 冲突关键词 | 归属 | 裁决依据 |
|---|---|---|
| OOM 闪退 + rawheap/heapsnapshot 快照 | hmos-leak | 上游约定:确认为 OOM 且有快照 → jsleak 场景 |
| OOM 闪退(仅 faultlogger 日志) | hmos-fault-log | jscrash 场景先定位,确认 OOM 后再转 hmos-leak |
| 「hilog」查看/导出命令 | hmos-devtools | 工具操作语义 |
| 「hilog」崩溃内容分析 | hmos-fault-log | 故障分析语义 |
| 「构建失败/编译报错」 | hmos-arkts-dev | 语法检查-修复循环场景 |
| 「hvigor 命令/构建参数」 | hmos-devtools | 构建工具操作语义 |
| 「组件怎么用」(查参数) | hmos-arkui-knowledge | 检索语义,不生成代码 |
| 「帮我写一个 XX 页面」 | hmos-arkui-dev | 开发语义 |
| 「内存占用高」(优化降级) | hmos-memory-opt | 优化闭环语义 |
| 「内存持续增长/疑似泄漏」 | hmos-leak | 泄漏定位语义 |
| 「@kit.XXX / @ohos.XXX」+ 导入/报错/权限/错误码同现 | hmos-one-sdk | Kit 命名空间信号 → SDK 文档检索语义(错误码/签名/权限大全),确定性裁决由脚本置顶 |
children 安装(bootstrap)
主包发布仅含根骨架(scripts/references/tests,<20 文件,满足单包 ≤200 文件与逐文件 <10MB 约束);children 不随主包发布,经 scripts/install_children.py bootstrap:
python scripts/install_children.py --check # 检查 children 是否就位
python scripts/install_children.py # 自动选择源安装(本地目录 → tarball)
python scripts/install_children.py --source <children目录或tarball URL>
源优先级:环境变量 TRI_HMOS_CHILDREN_ROOT → USER_SOURCES tarball(发布后填入)→ 本包同级/父级目录树相对推导。完整性下限:16 个子 skill(EXPECTED_MIN_SKILLS=16)。
上游依赖检测(N 态逻辑)
分发前 MUST 判定上游依赖状态,按态处置:
| 态 | 判定条件 | 处置 |
|---|---|---|
| 态 A(就位) | children/<slug>/SKILL.md 对目标子 skill 存在且 frontmatter 齐备 |
正常分发,传递上下文 |
| 态 B(缺失可补) | 目标子 skill 缺失,但 install_children.py 可用 |
MUST 先运行 python scripts/install_children.py 补装,成功后转态 A;NEVER 跳过静默分发 |
| 态 C(缺失不可补) | 补装失败 / 无任何源可用 | 输出缺位子 skill 清单与安装指引;请求 MUST 按四级兜底链逐级转出(自第②级起:② 上游仓库 https://gitcode.com/HarmonyOS_Skills/harmonyos-agent-skills 对应 skill → ③ 鸿蒙开发者论坛 → ④ 其他社区),转出时明示层级与出处,NEVER 假装子 skill 在位、NEVER 泛泛而谈;链事实源见 references/fallback-chain.md |
上游版本对账:references/source-map.json 为 57 个上游 skill 的唯一映射事实源;上游仓库更新时走 §进化契约第 ④ 类反馈闭环。
落盘规则
- 本 skill 为路由分发型,默认零落盘;分发结果卡(templates/dispatch-card.md)为可选输出,不落盘。
- 需要持久化的仅有两类:①路由误判案例 → 追加至
references/lessons.md(见 §进化契约);②用户显式要求的会话产物 → 落盘.tribro/tri-hmos/目录,NEVER 落盘用户业务内容与日志原文。 - children 内场景产物落盘遵循各子 skill 自身规则;根路由 NEVER 代写子 skill 的产物文件。
目录结构
tri-hmos-skill/
├── SKILL.md 根入口(本文件):意图识别 + 路由表 + 分发规则
├── README.md CHANGELOG.md _meta.json
├── scripts/
│ ├── check_update.py 版本检查门(stub,态 C)
│ ├── route_match.py 确定性路由匹配(关键词 → 子 skill,JSON 输出)
│ ├── install_children.py children bootstrap 安装器
│ ├── shared-root.json 包根标记(子级 shim 向上定位)
│ └── run_all_tests.py 本层测试(T1–T7:路由闭合/关键词去重/结构达标/匹配自检/主包约束/版本一致/自然语言回归+同义词层)
├── references/
│ ├── route-index.json 机器可读路由索引(子 skill/关键词/场景/上游映射)
│ ├── source-map.json 原 57 skill → 蒸馏后子 skill 对账表(蒸馏执行依据)
│ ├── lessons.md 路由误判案例台账(进化契约闭环载体)
│ └── governance/
│ ├── 00-rules-arkts-codegen.md ArkTS/ArkUI 代码生成规则(上游 00-rules 蒸馏)
│ └── hmos-skill-reviewer.md Skill 审查规范(上游 hmos-skill-reviewer 蒸馏)
├── templates/
│ └── dispatch-card.md 分发结果卡(可选轻量输出格式)
├── tests/ 路由测试用例
└── children/ 16 个子 skill(结构与本层一致,bootstrap 分发)
├── hmos-design/ hmos-fault-log/ hmos-leak/
├── hmos-memory-opt/ hmos-multidevice/ hmos-arkui-dev/
├── hmos-arkui-knowledge/ hmos-arkts-dev/ hmos-arkts-knowledge/
├── hmos-atomic-service/ hmos-push-kit/ hmos-sdk-app-services/
├── hmos-sdk-media-map/ hmos-test/ hmos-devtools/
└── hmos-one-sdk/
质量标准
| 维度 | 标准 |
|---|---|
| 路由闭合 | 路由表子 skill 数 == route-index.json 条目数 == children 实际目录数(16/16/16) |
| 场景覆盖 | source-map.json 中 57 个上游 skill 全部有归属,零遗漏 |
| 关键词互斥 | 各子 skill 关键词集合无完全重复项;冲突词以边界裁决表为准 |
| 主包达标 | 根包(不含 children/)文件数 ≤200、零二进制、单文件 <10MB |
| 版本一致 | SKILL.md == CHANGELOG == tests == _meta.json |
| 行数 | SKILL.md ≤ 500 行 |
完成判据(外化)
- 路由成功:自检句含命中子 skill slug 与置信度档位
- 分发成功:子 skill 接收完整上下文并给出其自身自检句
- 汇总成功:跨子 skill 请求逐个给出结果或失败原因
- 测试通过:
python scripts/run_all_tests.py退出码 0
终止语义区分:
- 停车(等待用户输入后可续行):低置信度列候选追问、消歧请用户选择、children 安装确认、态 C 转出指引确认——输出请求后暂停,用户响应后从对应步骤续行,NEVER 丢弃已完成的版本门/归一/匹配状态。
- 结束(本轮终态):自检句已输出(含结论置信标注)且无需用户输入,或测试退出码 0——本轮闭环,后续新请求从第零步重新开始。
进化契约
本 skill 接收四类反馈:①路由缺口(新关键词/新子 skill)→ 更新路由表 + route-index.json 并在 CHANGELOG 记账;②边界误判 → 补充边界裁决表条目;③子 skill 结构变化 → 同步 source-map.json 与 route-index.json;④上游仓库更新(GitCode main 新增/修改 skill)→ 走 tri-forge 蒸馏流程后更新对账表。蒸馏执行规范见 docs/audit-harmonyos-agent-skills-distillation-20260916.md。
lessons.md 读写闭环(强制):任何路由误判/边界误判 MUST 按 references/lessons.md 条目格式追加记录(请求/误判/正确落点/根因/修正/回归),随后的修正动作(关键词回填、裁决表补条目)完成后 MUST 重跑 route_match.py --selfcheck 与 scripts/run_all_tests.py(T2/T4)并在条目内回写回归结果;lessons.md 为追加式台账,NEVER 覆盖历史条目。
自检
自检句格式:本次意图=<命中子skill|直答|转出>,置信度=<高|中|低>,children=<已就位|已安装|缺失>,上游场景覆盖=<source-map 对账通过>