# skills **Repository Path**: Cooper0/skills ## Basic Information - **Project Name**: skills - **Description**: AI skill - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cooper Skills OpenHarmony DFX 领域开发的 OpenCode Skills 集合。把"命令 + 约束 + 踩坑经验"沉淀成 AI 可自动加载的操作手册——开发者只说意图,AI 按工作流执行。 > 安装后所有 skill 在任意 OH 仓库通用,听到关键词自动加载对应 SKILL.md,命令细节由 AI 内部消化,开发者无需记。 ## 安装 - **自动安装**:在 opencode 中说「安装 https://gitee.com/Cooper0/skills.git 中的 skill 和插件」,自动克隆并安装 skills 到 `~/.config/opencode/skills/`、插件到 `~/.config/opencode/plugins/`。 - **手动安装**:`git clone https://gitee.com/Cooper0/skills.git`,在 opencode 中打开该仓库,说「安装 skills」触发 install-project skill 自动安装全部 skills 和插件。 ## Skills 功能矩阵 | # | Skill | 级别 | 类别 | 触发关键词 | 触发示例(对 AI 助手说) | 核心能力 | |---|-------|------|------|-----------|-------------------------|----------| | 1 | install-project | 项目级 | 安装 | 安装 skills、配置 OpenCode | 「安装 skills」 | 一键安装本仓库全部 skills + 同步插件到全局 | | 2 | config-agents | 全局 | 环境初始化 | 配置 AGENTS、项目配置 | 「给当前项目配置一下 AGENTS.md」 | 为项目按模板生成/增量更新 AGENTS.md | | 3 | install-review | 项目级+全局 | 代码检视 | 安装代码检视、DFX 检视 | 「安装 DFX 代码检视 skills」 | 从 gitcode 拉取 DFX_AI_AGENT_SKILLS 检视技能 | | 4 | ohos-build | 全局 | 编译构建 | ohos 编译、repo sync、构建镜像 | 「全编 rk3568 镜像,用 tee 存到 build_20260911.log」 | 全量源码编译:下载/同步/预编译/全编/单仓/增量 | | 5 | ohos-indep-build | 全局 | 编译构建 | 独立编译、hb build、独立编译部件 | 「独立编译 faultloggerd 部件源码」 | 部件独立编译:秒级出产物,支持多仓联合编译 | | 6 | dayu200-flash | 全局 | 烧录 | 烧录 dayu200、flash dayu200 | 「烧录 /home/cooper/workspace/out/rk3568 目录下的完整镜像到 dayu200」 | 烧录镜像到 RK3568,支持完整/分区烧录 | | 7 | hdc | 全局 | 设备交互 | hdc、设备连接、hdc shell | 「hdc shell 进设备,看 faultloggerd 的 hilog」 | 设备连接/文件传输/应用安装/日志/端口转发 | | 8 | hdc-replace | 全局 | 产物验证 | 替换产物、hdc 替换、更新库文件 | 「把 out/default/src 下的 faultloggerd 替换到设备验证,先备份原文件」 | 替换 .so/可执行文件,处理真实路径/权限/SELinux | | 9 | oh-test | 全局 | 测试验证 | 执行测试、UT 测试、Fuzz 测试 | 「跑 faultloggerd 的 UT,用 tee 缓存日志,失败的用例 --retry 重跑」 | 配置测试框架、执行 UT/Fuzz、缓存日志、分析结果 | | 10 | oh-rom-analysis(实验阶段,效果待完善) | 全局 | 二进制分析 | 二进制分析、so 分析、符号表、体积优化 | 「分析 out/rk3568/libhiview.z.so 的体积构成和符号表」 | 分析 .so/可执行文件体积、符号表、段分布、依赖、优化建议 | > **级别说明**:项目级 = 仅在本仓库 `.opencode/skills/` 内可用;全局 = 安装后任意仓库可用。`install-review` 两者兼具:项目级版本用于在本仓库内触发安装,全局版本从 `skills/` 安装后随处可用。 > `install-review` 装好后还会带来 `gitcode-pr-review` / `gitcode-pr-review-repair` 两个检视 skill(来自 DFX_AI_AGENT_SKILLS 仓库)。 > > `skill-creator` 为 opencode 内置(不在本仓库),用于把重复流程封装成新 skill,详见「如何扩展」。 ## 各 Skill 说明 ### install-project —— 一键安装(项目级) - **价值**:在本仓库内说「安装 skills」,自动完成全部安装——同步 AGENTS.md、安装 config-agents 和 install-review skill、安装 skills 自动同步插件,一步到位。 - **触发示例**:克隆仓库后在 opencode 中说「安装 skills」。 - **为何是项目级**:这个 skill 只存在于本仓库的 `.opencode/skills/`,不安装到全局。它的职责就是把仓库里的 skills 和插件分发到全局配置。 - **安装内容**:① 全局 AGENTS.md 增量合并 → ② config-agents skill → ③ install-review skill → ④ sync-skills 同步插件 + sync-config.json 配置。 ### config-agents —— 给项目一份"开发宪法" - **价值**:把团队的命名规范、函数行数/圈复杂度/嵌套上限、资源 RAII、安全函数强制、外部路径 realpath 校验等硬约束写入 `./AGENTS.md`。 - **触发示例**:进入 faultloggerd 仓库后说「给当前项目配置一下 AGENTS.md」。 - **为何配置**:opencode 每次会话启动按"全局 → 项目"顺序加载 AGENTS.md,合并为持久指令注入 AI 上下文,写代码/跑命令时自动遵守,一次配置长期生效。 - **规则**:若 `templates/{项目名}/AGENTS.md` 存在 → 增量合并到项目根(保留项目特有内容,补齐通用规范);否则从 common/faultloggerd/hiview 选模板或生成全新的。 ### install-review —— 装 DFX 代码检视 - **价值**:从 gitcode 拉取 DFX 检视技能,装到全局 skills 目录。 - **触发示例**:「安装 DFX 代码检视 skills」。 - **后续**:装完配好 gitcode token 后,对 PR 说「审查 https://gitcode.com/openharmony/faultloggerd/pulls/123 这个 PR」「修复 https://gitcode.com/openharmony/faultloggerd/pulls/123 的检视意见」,即可自动调用 `gitcode-pr-review` / `gitcode-pr-review-repair`。 ### ohos-build —— 全量源码编译 - **价值**:一次性完成代码下载/同步/工具链预下载/全量镜像编译,产出可烧录的完整镜像。 - **触发示例**:「全编 rk3568 镜像,用 tee 存到 build_20260911.log」「repo sync openharmony master 分支并预下载工具链」。 - **决策**:首次拉代码、出整镜像、改了 BUILD.gn 等编译文件 → 用它;日常改单部件 → 转 ohos-indep-build。 - **内置约束**:改编译文件后不能增量编译;用 `tee` 存日志而非 `time`;错误日志在 `out/rk3568/error.log`。 ### ohos-indep-build —— 部件独立编译 - **价值**:秒级/分钟级出单部件产物,不必等 7 小时全编,磁盘只需单仓代码。 - **触发示例**:「独立编译 faultloggerd 部件源码」「联合编译 faultloggerd 和 hiview 的测试」。 - **决策**:日常改单部件代码验证 → 用它;出整镜像或改编译文件 → 转 ohos-build。 - **内置约束**:`-i`(源码)/`-t`(测试)必须放在部件名后;多仓联合编译放最后一个部件名后;带符号表产物在 `out/default/src/lib.unstripped/`。 ### dayu200-flash —— 烧录镜像到 RK3568 - **价值**:烧录整镜像或单分区(uboot/kernel/system/vendor 等)到开发板,支持自动进入 loader 模式。 - **触发示例**:「烧录 /home/cooper/workspace/out/rk3568 目录下的完整镜像到 dayu200」「只烧 system 分区,镜像在 /home/cooper/images 目录」。 - **决策**:整镜像更新、系统起不来要重烧 → 用它;迭代期改完代码验证 → 转 hdc-replace(2 分钟 vs 15~30 分钟)。 - **内置约束**:镜像路径没有默认值,会直接问用户要绝对/相对路径,不臆测;Linux 首次需配 USB 权限(udev 规则)。 ### hdc —— 设备交互 - **价值**:设备连接/文件传输/应用安装/日志查看/端口转发,是后续所有设备侧操作的基础设施。 - **触发示例**:「hdc shell 进设备,看 faultloggerd 的 hilog」「把 ./libfoo.so 发到设备 /system/lib」。 - **决策**:贯穿烧录、替换、测试所有设备侧操作;hdc-replace、dayu200-flash 自动进入烧录模式都依赖它。 ### hdc-replace —— 产物替换快速验证 - **价值**:改完代码出产物后直接推到设备验证,不重烧镜像,迭代效率提升 10 倍+(2 分钟 vs 重烧 15~30 分钟)。 - **触发示例**:「把 out/default/src 下的 faultloggerd 替换到设备验证,先备份原文件」。 - **决策**:日常改代码快速验证 → hdc-replace;整镜像/起不来 → dayu200-flash。 - **内置的 5 个关键坑**(AI 自动处理):挂载系统分区、找真实路径非软链、先停服务再 send、`chmod 0755` + `restorecon` 恢复 SELinux 标签、动态库替换后必须重启才生效。 - **回滚**:替换前备份 `.bak`,失败时回滚或重烧。 ### oh-test —— 测试验证 - **价值**:配置测试框架路径、执行 UT/Fuzz、`tee` 缓存日志、分析 reports、`--retry` 重试失败用例,一条命令完成。 - **触发示例**:「跑 faultloggerd 的 UT,用 tee 缓存日志,失败的用例 --retry 重跑」。 - **决策**:验证功能正确性 → oh-test;改完代码建议先 hdc-replace 验证不崩,再跑 UT 闭环。 - **内置约束**:测试用例路径必须绝对路径;未编译的典型症状是 `test file list is empty`,需先 `--build-target <部件>_test`;长测试用 `nohup` + `tail -f` 监控。 ### oh-rom-analysis —— 二进制产物分析(实验阶段,效果待完善) - **价值**:分析动态库(.so)和可执行文件的体积构成、符号表、段分布、依赖关系,给出优化建议。当前处于实验阶段,分析结果建议人工复核。 - **触发示例**:「分析 out/rk3568/libhiview.z.so 的体积构成和符号表」「看 faultloggerd 的段分布和 strip 前后对比」。 - **决策**:排查体积膨胀、定位未 strip 符号、分析依赖时用;内置 llvm-nm/llvm-readelf/llvm-objdump/llvm-size 工具链调用。 ## 场景速查(该用哪个 skill) | 场景 | 用哪个 skill | 决策依据 | |------|-------------|----------| | 首次搭环境 | install-project | 一键安装全部 skills + 同步插件 | | 日常改单部件代码 | ohos-indep-build(秒级) | 改了 BUILD.gn 就不能增量,转 ohos-build | | 出整镜像 | ohos-build | 用 `tee` 存日志 | | 换开发板系统 | dayu200-flash | 先 `-q` 确认 loader 模式 | | 快速验证产物 | hdc-replace(2 分钟) | 真实路径/restorecon/重启由 skill 自动处理 | | 跑 UT | oh-test | 路径绝对、先确认有可执行文件 | | 替换后起不来 | 回滚 `.bak` → 仍不行 → dayu200-flash | 替换前务必备份 | | 排查体积/符号 | oh-rom-analysis | 实验阶段,结果人工复核 | | 新增团队约束 | config-agents / 直接编 AGENTS.md | 一条规则用 AGENTS.md | | 新增重复流程 | skill-creator | 一类流程封装成 skill | **Skill 协作关系**: - install-project 是入口:一键安装全部 skills + 同步插件,后续 skill 才能加载。 - hdc 是 hdc-replace、dayu200-flash 自动进入烧录模式的基础。 - oh-test 的测试编译目标用 ohos-build / ohos-indep-build 编译。 - config-agents 的规范被所有 skill 写代码时遵循;install-review 装的检视 skill 是 config-agents 规范的"检查器"。 ## 典型工作流 改 faultloggerd 一个 bug 的端到端流程: 1. **改代码**:AI 按 config-agents 规范写(禁危险内存函数、用 memcpy_s)。 2. **编译**:ohos-indep-build 秒级出产物。 3. **推设备验证**:hdc-replace 自动处理 mount/真实路径/权限/SELinux/重启。 4. **跑 UT**:oh-test 执行 + tee 缓存日志 + 分析失败。 5. **提 PR 检视**:gitcode-pr-review 出评论 → gitcode-pr-review-repair 修复并推送。 6. 若改了 BUILD.gn 或要出镜像 → ohos-build 全编 → dayu200-flash 重烧。 > 闭环:改代码 → 编译 → 替换验证 → 测试 → 检视 → 修复 → 再编译。 ## 真实示例:一句话烧录整镜像 只说「烧录当前目录下的镜像」,AI 自动完成 检查镜像 → 进入烧录模式 → 烧录 → 汇总 全流程(以下为真实运行记录,精简了重复的逐分区下载日志): ```text $ opencode run "烧录当前目录下的镜像" > build · glm-5.2 → Skill "dayu200-flash" # AI 先确认当前目录是完整镜像 $ ls -la boot_linux.img system.img userdata.img uboot.img resource.img ramdisk.img vendor.img chip_prod.img MiniLoaderAll.bin ... # AI 检查设备连接 $ hdc list targets 150100424a5444345209d953be57b900 # AI 让设备重启进入烧录模式,等待 10 秒后查询 $ hdc shell reboot bootloader $ sleep 10 && python3 .../dayu200-flash/assets/dayu200/flash.py -q loader # loader = 已进入烧录模式,可烧录 # AI 执行完整烧录 $ python3 .../dayu200-flash/assets/dayu200/flash.py -a -i /home/cooper/workspace/daily/faultloggerd/2734/img Loading loader... Support Type:RK3568 Loader ver:1.01 Upgrade loader ok. Write gpt ok. Download uboot start...(0x00002000) Download image ok. Download boot_linux start...(0x0000a000) Download image ok. Download system start...(0x0003c000) Download image ok. Download vendor start...(0x0043c000) Download image ok. Download userdata start...(0x01308000) Download image ok. Download resource start...(0x00007000) Download image ok. Download ramdisk start...(0x0003a000) Download image ok. Reset Device OK. # AI 汇总结果 烧录全部完成! | loader | gpt | uboot | boot_linux | system | vendor | userdata | resource | ramdisk | → 全部 ✓ Reset Device OK,设备已自动重置,等待重启进入新系统即可。 ``` > 全程开发者只输入了一句话,设备连接判断、进入烧录模式、分区烧录、结果汇总都由 skill 自动完成。 ## 如何扩展 这套 skills 不是一成不变的,团队经验会持续产生,关键是有一条"把经验沉淀进去"的路径: ### 轻量:往 AGENTS.md 补规则 发现一条新的团队约束或踩坑经验(如"某接口返回值必须校验"),想让 AI 以后自动遵守: - 触发 config-agents「给当前项目配置一下 AGENTS.md」,增量合并模板到 `./AGENTS.md`;或直接编辑 `./AGENTS.md` 加一条规范,下次会话立即生效。 - **适用**:单条约束、命名/风格/禁项/安全规则。 ### 重量:创建新 skill 某类完整流程反复出现(命令序列 + 约束 + 踩坑经验打包),AGENTS.md 一句话约束不够用,值得封装成"AI 听到关键词就自动加载"的操作手册: - 用 opencode 内置的 `skill-creator`,触发示例:「把 OH 应用安装到设备的流程做成一个 skill」。 - 流程:理解场景 → 规划脚本/引用/资产 → `init-skill` 生成骨架 → 编辑 SKILL.md(frontmatter 的 `name`+`description` 是触发机制,body 是操作手册)→ 打包 → 迭代。 - **适用**:一类流程反复出现、命令多、坑多。 - **三层加载**(省 context):第 1 层 metadata(`name`+`description`,~100 词)常驻上下文决定何时触发;第 2 层 SKILL.md body(操作手册,<500 行)触发后才加载;第 3 层 bundled 资源(scripts/references/assets)按需加载,脚本可直接执行不占上下文。 ### 沉淀路径 | 级别 | 载体 | 触发方式 | 适用 | |------|------|----------|------| | 人脑记忆 | 无 | 靠记 | 最不可靠,应尽快沉淀 | | AGENTS.md 规则 | `./AGENTS.md` | 会话启动自动加载 | 单条约束、风格、禁项 | | skill 操作手册 | `~/.config/opencode/skills/` | 关键词命中后加载 | 一类完整流程 | > 判断标准:一条约束 → AGENTS.md;一类流程反复出现 → skill。先轻后重。 ## 目录结构 ``` . ├── AGENTS.md # 项目配置说明 ├── README.md # 本文件 ├── plugins/ # opencode 插件(安装到全局 ~/.config/opencode/plugins/) │ └── sync-skills.ts # skills 自动同步插件 ├── skills/ # 全局 skills 定义(安装到 ~/.config/opencode/skills/) │ ├── config-agents/ # 配置项目 AGENTS.md │ │ ├── SKILL.md │ │ └── templates/ # 预定义 AGENTS 模板(common/faultloggerd/hiview) │ ├── dayu200-flash/ # 烧录镜像到 RK3568 │ │ ├── SKILL.md │ │ └── assets/ │ ├── hdc/ # 设备交互 │ │ └── SKILL.md │ ├── hdc-replace/ # 产物替换验证 │ │ └── SKILL.md │ ├── install-review/ # 安装 DFX 代码检视 │ │ └── SKILL.md │ ├── ohos-build/ # 全量源码编译 │ │ └── SKILL.md │ ├── ohos-indep-build/ # 部件独立编译 │ │ └── SKILL.md │ ├── oh-rom-analysis/ # 二进制产物分析 │ │ ├── SKILL.md │ │ ├── assets/ │ │ ├── references/ │ │ └── scripts/ │ └── oh-test/ # 测试用例执行 │ └── SKILL.md └── .opencode/ # 项目级 opencode 配置(仅 skills/ 被 git 跟踪) └── skills/ # 项目级 skill(仅在本仓库内可用) ├── install-project/ # 一键安装本仓库 skills + 插件 │ └── SKILL.md └── install-review/ # 项目级代码检视安装入口 └── SKILL.md ``` ## 环境配置 ### 前置工具 | Skill | 依赖工具/环境 | |-------|--------------| | 全部 | [opencode](https://opencode.ai) | | install-review / gitcode-pr-review | git、gitcode token | | ohos-build | repo、OpenHarmony 源码与 build.sh | | ohos-indep-build | hb(developtools_hb)、prebuilts | | dayu200-flash | python3、USB 驱动 | | hdc / hdc-replace | hdc(OpenHarmony SDK) | | oh-test | 测试框架 test/testfwk/developer_test | | oh-rom-analysis | llvm-nm / llvm-readelf / llvm-objdump / llvm-size | ### gitcode token(代码检视用) `install-review` 装好的 `gitcode-pr-review` / `gitcode-pr-review-repair` 需访问 gitcode API: 1. 在 gitcode 个人设置生成 Access Token; 2. 配置到 opencode(环境变量或 opencode 配置文件),供 skill 读取; 3. 仅访问公开仓库可跳过此步。 ### Linux USB 权限(烧录用) `dayu200-flash` 首次烧录需配置 udev 规则(规则文件在 skill 的 `assets/dayu200/etc/udev/` 下): ```bash sudo cp assets/dayu200/etc/udev/85-rk3568.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger ``` ### 平台支持 - 烧录 skill(`dayu200-flash`)当前**仅在 Linux 上验证通过**。 - **Windows 用户**请自行验证,或通过 **USB 映射到 WSL** 在 WSL 内执行烧录操作。 - 其他 skill(编译/测试/检视/分析)不限平台,按对应工具链的可用性而定。 ## FAQ | 问题 | 解决 | |------|------| | hdc 连不上设备 | 先 `hdc kill` 再 `hdc start`;多设备用 `hdc -t ` 指定 | | 烧录查询返回 `maskrom` | 未进入烧录模式,按住 Reset+Update 组合键手动进入(详见 dayu200-flash 的 SKILL.md) | | 测试报 `test file list is empty` | 测试未编译,先用 ohos-build `--build-target <部件>_test` 编译,再确认用例目录下有 ELF 可执行文件 | | indep-build 编译报错 | 检查 `-i`/`-t` 是否放在部件名后;改了 BUILD.gn 等编译文件后不能增量,需转 ohos-build | | 替换后服务起不来 | 未 restorecon 或未重启:动态库替换后必须 `restorecon` 恢复 SELinux 标签 + 重启才生效 | | AGENTS.md 规则不生效 | 需重启 opencode 会话,AGENTS.md 只在会话启动时重新加载 | | oh-rom-analysis 结果不准 | 该 skill 处于实验阶段,分析结果建议人工复核 | | Windows 无法烧录 | 烧录仅 Linux 验证;将 USB 映射到 WSL 后在 WSL 内执行,或自行在 Windows 验证 | ## 版本说明 - **skill 状态**: | 状态 | Skill | |------|-------| | 稳定 | install-project、config-agents、install-review、ohos-build、ohos-indep-build、hdc、hdc-replace、oh-test | | 实验阶段 | oh-rom-analysis(效果待完善,结果建议人工复核) | | 外部依赖 | gitcode-pr-review / gitcode-pr-review-repair(由 install-review 从 [DFX_AI_AGENT_SKILLS](https://gitcode.com/Lutao98/DFX_AI_AGENT_SKILLS.git) 仓库安装) | | opencode 内置 | skill-creator(不在本仓库,无需安装) | - **平台验证**:`dayu200-flash` 仅 Linux 验证通过;Windows 自行验证或经 WSL。 - **更新方式**:sync-skills 插件在每次启动 opencode 时自动检测远端更新,`git pull --ff-only` 安全拉取(本地有修改时不覆盖),检测到已安装 skills 与仓库不一致时通知用户运行 install-project 同步。 - **更新历史**:参见 `git log`。