Vibe-Coding 开发指南
本章介绍 Hi-AIoT-Solution 仓库内的编码智能体能力,包括 Skill、规则文件和 AGENTS.md。编码智能体依据上述文件,在 Hi3516CV610 平台上完成环境搭建、硬件适配、编译烧录、代码审查和问题排查。
目录结构
相关文件位于仓库根目录,结构如下。
hi_aiot_solution/
├── AGENTS.md # 智能体项目约束:目录结构、构建命令、强制编码规范
└── .agents/
├── skills/ # 项目 Skill
├── rules/ # 编码与审查规范,供审查类 Skill 引用
└── mcps/ # GitCode MCP 服务器与 CLI,供编码智能体接入 GitCode
多智能体兼容
不同编码智能体识别项目级配置的方式不同,本仓库通过下列布局适配各类工具:
- Skill 与规则统一放在
.agents/ 标准路径,符合 Agent Skills 约定,遵循此约定的编码智能体可直接识别,无需额外配置。
- 仅识别自身品牌目录的编码智能体(如 Claude Code 只扫描
.claude/),需要创建符号链接或在设置中指定路径。
各编码智能体的适配情况如下:
| 编码智能体 |
agent 目录 |
配置方法 |
| OpenCode |
.agents/ |
无需操作 |
| Codex |
.agents/ |
无需操作 |
| GitHub Copilot |
.github/,兼容 .agents/ |
无需操作 |
| Trae |
.trae/,兼容 .agents/ |
无需操作 |
| Claude Code |
.claude/ |
在 hi_aiot_solution 仓库根目录执行 ln -s .agents .claude |
| Cursor |
.cursor/,兼容 .agents/ |
无需操作 |
| CodeArts(华为云码道) |
.codeartsdoer/ |
在 hi_aiot_solution 仓库根目录执行 ln -s .agents .codeartsdoer |
配置完成后,须重新打开会话,编码智能体才能加载项目 Skill 和规则文件。
AGENTS.md
仓库根目录的 AGENTS.md 是编码智能体的项目约束文件,遵循 agents.md 约定:编码智能体进入本仓库工作区时自动读取,作为后续所有开发行为的前提。各编码智能体对该约定的支持情况见「多智能体兼容」。
AGENTS.md 覆盖全仓库通用的约束,主要包括:
| 内容 |
说明 |
| 项目概述 |
Hi-AIoT-Solution 的定位与能力范围 |
| 架构与目录结构 |
apps/、components/、open_source/的目录约定 |
| 构建说明 |
统一构建入口 scripts/build.sh、主要命令、产物位置和关键配置文件 |
| 开发工作流 |
新增应用、运行测试的步骤 |
| 项目规范 |
开发语言约束、模块单向依赖 |
| 编码规范 |
Linux 命名风格、安全函数使用,以及编写或修改 C/C++ 代码前必须读取 .agents/rules/ 对应规范文件并自检的强制要求 |
AGENTS.md 与 Skill 的分工:AGENTS.md 描述全仓库通用约束,各 Skill 的 SKILL.md 描述具体工作流,两者互不替代。
规则文件
.agents/rules/ 存放编码规范和审查规范。编写代码时须遵守这些文件。hi-aiot-code-review 以这些文件为审查依据。
| 规则文件 |
适用场景 |
功能 |
c-secure-coding.mdc |
编写或修改 .c、.h 文件 |
C 语言安全编码规范,覆盖整数溢出、越界、内存判空和字符串终止等。 |
cpp-secure-coding.mdc |
编写或修改 .cpp、.hpp、.cc 文件 |
C++ 安全编码规范,覆盖 RAII、智能指针和容器越界等。 |
hispark社区c语言编码规范.mdc |
所有 C 代码 |
HiSpark 社区 C 语言命名、格式和注释规范。 |
code-review-output.mdc |
代码审查 |
代码审查报告的统一输出格式。 |
编写或修改 C/C++ 代码前,须先读取对应场景的规范文件,完成后按其中的检查清单自检。
Skill 功能说明
项目 Skill 随仓库分发。下表按开发场景分类,说明各 Skill 的用途。前置依赖和示例见对应目录中的 README.md。
环境与源码获取
| Skill |
功能 |
路径 |
hi-aiot-env-setup |
按 Docker 或 NoDocker 方案,完成 Hi3516CV610 交叉编译工具链、TFTP 和串口调试环境的安装与配置。 |
.agents/skills/hi-aiot-env-setup/ |
hi-aiot-gitcode-code-pull |
按 repo-manifest 拉取并同步多仓源码。不内置固定仓库地址,支持 SSH、HTTPS 和镜像源切换。 |
.agents/skills/hi-aiot-gitcode-code-pull/ |
需求分析与模块设计
| Skill |
功能 |
路径 |
hi-aiot-requirement-analysis |
将需求描述整理为结构化《需求分析说明书》,按 IR→SR 输出可追溯需求模型。 |
.agents/skills/hi-aiot-requirement-analysis/ |
hi-aiot-module-design |
根据 SR 完成 SR→AR 细化,并按模板生成《软件设计说明书》。 |
.agents/skills/hi-aiot-module-design/ |
硬件适配
| Skill |
功能 |
路径 |
hi-aiot-cv610-flash-adapter |
将 SPI NAND 或 SPI NOR Flash 适配到 Hi3516CV610、Hi3516CV608 的 FMC 驱动,并生成可插入源码的配置代码。 |
.agents/skills/hi-aiot-cv610-flash-adapter/ |
hi-aiot-cv610-sensor-driver-adapter |
在 Hi3516CV610 上将参考 Sensor 驱动适配为目标 Sensor,支持 Linear、WDR 和 SHDR。 |
.agents/skills/hi-aiot-cv610-sensor-driver-adapter/ |
hi-aiot-cv610-lcd-adapter |
为工程适配 SPI LCD,生成可编译烧录的 panel 案例和内核驱动。 |
.agents/skills/hi-aiot-cv610-lcd-adapter/ |
hi-aiot-cv610-touch-panel-adapter |
为已适配的 SPI 显示屏增加电容触摸支持,并增量编译可烧录镜像。 |
.agents/skills/hi-aiot-cv610-touch-panel-adapter/ |
hi-aiot-cv610-board-io-cfg |
根据 xlsx 引脚表生成 dtsi 并编入系统镜像,完成板级 IOCFG 配置。 |
.agents/skills/hi-aiot-cv610-board-io-cfg/ |
hi-aiot-cross-compile |
为 ARM 嵌入式平台(Hi3516、musl)交叉编译开源软件。 |
.agents/skills/hi-aiot-cross-compile/ |
媒体通路
| Skill |
功能 |
路径 |
hi-aiot-cv610-media-pipeline-generator |
根据硬件配置和业务需求,生成可编译的媒体通路 sample 工程。 |
.agents/skills/hi-aiot-cv610-media-pipeline-generator/ |
hi-aiot-cv610-color-abnormal-debug |
定位 Hi3516CV610、Hi3516CV608 上 MPP 视频链路的颜色异常,并给出修复方案。 |
.agents/skills/hi-aiot-cv610-color-abnormal-debug/ |
hi-aiot-media-proc-analyse |
只读采集板端 /proc/umap,将无画面、丢帧、编码无流等问题定位到模块边界。 |
.agents/skills/hi-aiot-media-proc-analyse/ |
hi-aiot-cv610-ai-algorithm-apply |
在 Hi3516CV610 NPU 上集成人脸、宠物、包裹检测和人脸识别。 |
.agents/skills/hi-aiot-cv610-ai-algorithm-apply/ |
构建与烧录
| Skill |
功能 |
路径 |
hi-aiot-build |
扫描开发板与案例目录,编译 hi_aiot_solution 工程中的指定案例。 |
.agents/skills/hi-aiot-build/ |
hi-aiot-cv610-burn |
用 [burn] mode 切换 local/remote,覆盖 WSL/容器/服务器 4 场景,经串口和 TFTP 将镜像写入 NOR、NAND 或 EMMC;单板无 U-Boot 时 local 模式支持裸烧恢复。 |
.agents/skills/hi-aiot-cv610-burn/ |
板端调试
| Skill |
功能 |
路径 |
hi-aiot-ssh-connect |
通过 SSH 连接嵌入式开发板,执行命令、读写文件,并进行 SCP 双向传输。 |
.agents/skills/hi-aiot-ssh-connect/ |
hi-aiot-gdb-debug |
使用板端 GDB,或 gdbserver 与交叉 GDB,调试板端程序并分析 coredump。 |
.agents/skills/hi-aiot-gdb-debug/ |
UI 设计与开发
| Skill |
功能 |
路径 |
hi-aiot-pencil-ui-design |
使用 Pencil 创建或修改 .pen 界面设计文件。 |
.agents/skills/hi-aiot-pencil-ui-design/ |
hi-aiot-lvgl-ui-code |
根据 .pen 设计文件生成 LVGL UI 的 C 代码,并完成资源转换与触摸回调。 |
.agents/skills/hi-aiot-lvgl-ui-code/ |
代码审查与提交
| Skill |
功能 |
路径 |
hi-aiot-code-review |
依据本地规则文件审查 C、C++ 源码,输出统一格式的审查报告。 |
.agents/skills/hi-aiot-code-review/ |
hi-aiot-ut-generator |
为嵌入式 C 代码生成 gtest、FFF 单元测试和 LCOV 覆盖率报告。 |
.agents/skills/hi-aiot-ut-generator/ |
hi-aiot-gitcode-review-pr |
在 GitCode 上审查 C、C++ 嵌入式 Pull Request,并提交审查评论。 |
.agents/skills/hi-aiot-gitcode-review-pr/ |
hi-aiot-gitcode-submit-pr |
在 GitCode 上完成 Pull Request 的创建与提交。 |
.agents/skills/hi-aiot-gitcode-submit-pr/ |
GitCode 相关 Skill 可使用 .agents/mcps/gitcode-submit-server/ 中的 GitCode MCP 和 CLI。该组件为非官方实现,配置方法因环境而异。
体积与性能优化
| Skill |
功能 |
路径 |
hi-aiot-code-size-optimize |
对 ELF、.so、.a 编译产物进行体积优化,流程为测量基线、分析、确认、修改和回归。 |
.agents/skills/hi-aiot-code-size-optimize/ |
hi-aiot-cpu-perf-optimize |
对基于本 SDK 的业务应用进行 CPU 分析、优化和验证。 |
.agents/skills/hi-aiot-cpu-perf-optimize/ |
hi-aiot-cv610-mem-layout-optimize |
调整 Hi3516CV610、Hi3516CV608 的 DDR、MMZ 和 Flash 布局,并排查布局问题。 |
.agents/skills/hi-aiot-cv610-mem-layout-optimize/ |
hi-aiot-cv610-run-time-optimize |
分析 Hi3516CV610 嵌入式 Linux 的启动耗时,并给出优化建议。 |
.agents/skills/hi-aiot-cv610-run-time-optimize/ |
相关阅读