with one click
repo-firmware-flasher
当需要基于仓库代码推导刷写参数,并复用统一流程完成固件探测、分包或刷写时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
当需要基于仓库代码推导刷写参数,并复用统一流程完成固件探测、分包或刷写时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
在当前会话里按已写好的实现计划顺序执行任务时使用
在已有规格或多步骤任务需求、且在动代码之前使用。若上游 ddev-pc-test 已产出测试用例,自动走 TDD 流程:先实现测试 demo 代码(红灯),再实现被测代码(绿灯),测试覆盖不到的部分直接开发。
文档审查技能。将文档审查任务派发给独立子代理,重点审查文档基于代码改动的合理性、说明正确性、前后一致性、错漏和逻辑谬误,以及 AI 实现过程中产生的决策记录(implementation-notes.md)。当用户需要审查技术文档、spec文档、设计文档、计划文档、API文档、README 或任何与代码改动相关的文档时使用。
代码修改场景下,spec 文档确认后,需要继续以图优先方式梳理结构体定义、数据流和流程时使用
在代码修改前需要编写 spec 文档且应优先用图表达边界、入口、流程和改动关系时使用(仅限代码改动场景,非项目级架构文档初始化)
在代码实现完成后、准备结束任务或进入发布前使用,用来核对代码实现是否与 spec 文档以及 detail 文档一致,并通过代码质量审查、清理、编码规范和注释审查后给出最终验收结论
| name | repo-firmware-flasher |
| description | 当需要基于仓库代码推导刷写参数,并复用统一流程完成固件探测、分包或刷写时使用。 |
强制:本 skill 提供以下精确定义的工具,必须直接调用,禁止自行实现替代品。
$SKILL_ROOT = <本 skill 加载输出中 "Base directory for this skill:" 行的路径>
| 工具 | 路径 | 用途 |
|---|---|---|
| repo_flash.py | $SKILL_ROOT/scripts/repo_flash.py | 探测设备、检查固件、生成分包、真实刷写 |
| repo-firmware-flash-playbook.md | $SKILL_ROOT/references/repo-firmware-flash-playbook.md | 仓库信息定位方法和配置模板 |
执行固件刷写时,先提取 $SKILL_ROOT,再用 python "$SKILL_ROOT/scripts/repo_flash.py" ... 调用。
VID/PID、固件产物路径需要从代码中确认;协议参数(命令字、ACK 格式、分包规则等)直接从 playbook 配置模板取值,禁止逐段 grep 代码库搜索协议实现细节。配置文件中的参数分为两类,获取方式不同:
| 类别 | 参数 | 获取方式 |
|---|---|---|
| 项目特有 | vid、pid、firmware 产物路径、构建目标名 | 从仓库代码中搜索(搜 VID_/PID_ 宏、产物路径,搜到即停) |
| 协议内置 | command_prefix_hex、ack_prefix_hex、pack_length_command、ota_command、header_size、crc_type、chunk_size、ACK 帧长度/偏移/状态位 | 直接从 playbook 配置模板取值,playbook 中的默认值即为仓库已验证的协议参数 |
关键约束:协议内置参数的默认值已在仓库配套设备上验证通过。若当前目标使用相同协议栈,直接复用即可,不要重新 grep 代码库验证。仅当设备表现与模板默认值不匹配(如 ACK 长度不同、命令前缀变化)时,才需要针对性搜索差异点。
references/repo-firmware-flash-playbook.md,以其中的配置文件模板为起点。协议层参数(command_prefix_hex、ack_prefix_hex、pack_length_command、ota_command、header_size、crc_type、ACK 帧长度/偏移等)直接从模板取值,禁止逐段 grep/read 代码库搜索协议结构体或命令格式。vid、pid、firmware 产物路径、构建目标名,写入 .agents/cache/<目标名>_download.cfg。一次搜索定位到 VID/PID 宏定义和产物路径即停,不再搜索协议实现细节。scripts/repo_flash.py 执行统一流程:
probe:探测设备路径inspect-firmware:检查固件文件make-packets:按配置生成分包数据flash:真实下发serial-log-debug 先开串口抓取,再执行刷写。VID、PID、固件产物路径必须从仓库代码中确认,禁止凭空硬编码;协议命令字和 ACK 参数从 playbook 模板取值,不逐段搜索代码中的协议实现。.agents/cache/,文件名建议为 <目标名>_download.cfg。artifacts/。配置文件建议使用 INI 格式,至少覆盖这些信息:
vid、pid、transportfirmware、artifact_type、allow_rawchunk_sizecommand_prefix_hex、pack_length_command、ota_commandack_prefix_hex、ack_length、ack_offset_pos、ack_status_posquery_pack_length、query_response_lengthcrc_typereferences/repo-firmware-flash-playbook.md:仓库内信息定位方法、字段提取清单、配置文件模板。scripts/repo_flash.py:统一刷写脚本,从 .agents/cache/*.cfg 读取目标参数。