sdk-assistant-agent
SKILL.md
SDK 开发助手
系统全景图:
references/index.md修改本文件前请先阅读README.md中的开发规则
意图识别与路由
分析用户输入,匹配领域和模块,读取对应 worker 文件执行:
领域路由
| 领域 | 触发信号 | 读取并执行 |
|---|---|---|
| 驱动开发 | 新驱动、设备注册、LISA_DEVICE、API vtable、外设、lisa_xxx 使用/移植 | references/driver-dev.md |
| 构建调试 | 编译/链接错误、CMake、Kconfig、menuconfig、烧录、串口日志、内存溢出 | references/build-debug.md |
| 样例生成 | 写示例、demo、sample、怎么用 xxx、使用方法 | references/sample-gen.md |
| 代码审查 | review、审查、检查代码、这段代码有问题吗、PR | references/code-review.md |
| 文档编写 | 写文档、README、在线文档错误、toctree、文档发布、构建 warning | references/doc-writing.md |
| 知识维护 | 更新知识、优化 agent、检查知识库、SDK 更新同步、从提交提取经验 | references/evolution.md |
模块识别
识别用户输入中涉及的 SDK 模块,加载对应的 experience 文件:
| 关键词 | 模块 |
|---|---|
| gpio、引脚、按键、led、输入输出 | lisa_gpio |
| uart、串口、serial、收发、波特率 | lisa_uart |
| spi、spi master、spi slave | lisa_spi |
| i2c、i2c master、从机扫描 | lisa_i2c |
| flash、nor flash、读写擦除 | lisa_flash |
| adc、模数转换、采样 | lisa_adc |
| pwm、占空比、脉宽调制 | lisa_pwm |
| hwtimer、硬件定时器、gpt、aon timer | lisa_hwtimer |
| rtc、实时时钟、闹钟 | lisa_rtc |
| wdt、watchdog、看门狗 | lisa_wdt |
| sdmmc、sd卡、mmc、tf卡 | lisa_sdmmc |
| i2s、音频接口、pcm | lisa_i2s |
| display、显示屏、lcd、lvgl | lisa_display |
| touch、触摸、触控 | lisa_touch |
| audio、音频、录音、播放、codec、aec | lisa_audio |
| qspilcd、qspi lcd、四线 lcd | lisa_qspilcd |
| dvp、摄像头接口 | lisa_dvp |
| camera、摄像头、sensor、拍照 | lisa_camera |
| rgb、led灯带、ws2812、sk6812 | lisa_rgb |
| pinmux、引脚复用、iomux | pinmux |
| wifi、无线网络、SSID、密码、连网 | lisa_wifi |
| bluetooth、ble、蓝牙 | lisa_bluetooth |
| http、https、REST、下载、POST、GET | lisa_http |
| websocket、ws、wss、实时通信 | lisa_websocket |
| mqtt、消息队列、物联网云、发布订阅 | coreMQTT |
| sntp、ntp、时间同步、网络时间 | lisa_sntp |
| 网络设备、netdev、socket、TCP/IP、lwip | lisa_net |
| 4g、蜂窝、modem、AT指令、ML307 | lisa_modem |
| wifi管理、自动连接、AP存储 | wifi_manager |
| 日志、log、打印、调试输出 | lisa_log |
| shell、命令行、CLI、调试控制台 | lisa_shell |
| 事件、发布订阅、回调解耦 | lisa_evt_pub |
| 内存分配、堆、malloc、PSRAM、SRAM | sys_heap |
| 环形缓冲、ringbuf、FIFO | ringbuf |
| 工作队列、异步任务、延迟执行 | work_queue |
| kv、键值存储、持久化配置 | lisa_kv |
| 录音、麦克风、音频输入 | lite_adc |
| 音频播放、扬声器、DAC输出 | lite_dac |
| 播放器、音乐播放 | app_player |
| json、cjson、解析 | cjson |
| lvgl、GUI、图形界面、控件 | lvgl |
| 加密、tls、ssl、证书 | mbedtls |
| sqlite、数据库、SQL | csk_sqlite3 |
| freertos、任务、信号量、互斥锁、队列 | lisa_os |
| usb、adb | tinyusb |
| 文件系统、fatfs、lsfs | filesystem |
动态发现(静态表未命中时)
当用户输入的关键词未命中上述静态表时,按以下顺序搜索:
Glob "components/*{keyword}*/"— 搜索组件目录名Glob "drivers/*{keyword}*/"— 搜索驱动目录名Glob "modules/*{keyword}*/"— 搜索第三方模块目录名Grep "{keyword}" components/*/CMakeLists.txt— 按 CMake target 名搜索
结果处理:
- 唯一匹配 → 使用该模块
- 多个匹配 → 向用户展示候选列表,确认目标
- 无匹配 → 告知用户 SDK 中未找到相关模块
识别到模块后(无论静态匹配还是动态发现):Read references/experience/{module}.md(如存在)。多模块场景加载所有相关文件。
判断规则
- 优先匹配精确关键词;不明确时结合用户打开的文件、分支名、git diff 判断
- 多领域交叉(如"写个驱动的 sample")→ 确定主意图后按依赖顺序调用,例:driver-dev → sample-gen
- 无法判断 → 向用户确认
多模块协同
识别到多个模块时,判断模块间关系:
-
有依赖关系(如 HTTP 依赖 WiFi):
- 按依赖顺序排列:底层 → 上层
- 执行
references/dependency-resolver.md获取完整初始化链 - 生成代码时包含全链路初始化
-
无依赖关系(如 GPIO + UART 同时使用):
- 分别处理,合并到同一个 main.c
-
常见依赖链路(快速判断用,不确定时执行 dependency-resolver):
- 网络类:WiFi/4G → lisa_net → lisa_http / lisa_websocket / coreMQTT
- 音频类:lite_adc / lite_dac → app_player
- 显示类:lisa_display → lvgl
直接回答(跳过 worker)
满足以下全部条件时直接回答,不读取 worker 文件:
- 问题只需一段代码片段或一句说明即可完整回答
- 不涉及生成新文件
- 对相关 API 有足够确定性
不确定 API 用法时,先 Read 对应头文件,再作答。
执行注意事项
- 代码生成前先
Glob/Grep检索 codebase 中的现有实现作为参考 - 回答中引用具体文件路径和行号
- worker 任务完成后,评估是否有值得记录的经验 → 如有,调用
experience-captureskill - 加载 experience 文件后,若条目引用了具体文件路径,快速
Glob验证路径是否仍存在。路径不存在 → 跳过该条目,回答末尾提示:"注意:experience 中的 [条目标题] 引用的路径已变更,建议运行知识维护(evolution.md模式 B)更新。"
Weekly Installs
1
Repository
conor-yek/agent_skillsFirst Seen
10 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1