初始化嵌入式工作流缓存
工具入口
强制:本 skill 提供以下精确定义的工具,必须直接调用,禁止自行实现替代品。
$SKILL_ROOT = <本 skill 加载输出中 "Base directory for this skill:" 行的路径>
| 工具 | 路径 | 用途 |
|---|---|---|
| init_embedded_workflow_cache.py | $SKILL_ROOT/scripts/init_embedded_workflow_cache.py |
初始化 .agents/cache 下的配置文件 |
| cache-layout.md | $SKILL_ROOT/references/cache-layout.md |
缓存文件用途和字段说明 |
执行缓存初始化时,先提取 $SKILL_ROOT,再用 python "$SKILL_ROOT/scripts/init_embedded_workflow_cache.py" ... 调用。
何时使用
- 需要首次为某个项目落盘
.agents/cache/下的嵌入式工作流缓存文件。 - 需要为固件刷写流程生成一份可复用的下载配置草稿,再由后续 skill 或人工补齐事实字段。
- 用户已经给出逻辑分析仪通道映射、触发方式或测试方法,需要顺手初始化 KingstVIS 时序经验文件与映射文件。
- 需要把零散的设备识别、固件信息、协议参数先收口为项目内可维护的缓存,而不是散落在对话里。
不适用
- 已经能从仓库中确定完整刷写参数,且目标是直接探测、分包或刷写。此时优先使用
repo-firmware-flasher。 - 已经有完整的逻辑分析仪抓取命令,只差实际抓波形。此时优先使用
kingstvis-socket。 - 只做一次性说明,不需要在仓库内落盘缓存。
核心工作流
- 先读
references/cache-layout.md,确认要初始化哪些缓存文件。 - 先到仓库代码里搜索设备识别与枚举事实,至少确认 boot 和应用两套枚举信息:
VID/PID、传输类型、设备路径或 FriendlyName 线索- bootloader 模式 / 升级模式的枚举信息
- 应用态 / 正常运行态的枚举信息
- 若仓库里存在枚举代码、设备路径匹配逻辑或 USB 标识宏,优先以代码事实为准
- 再结合用户提供的信息拆分两类事实:
- 固件刷写事实:目标名、
VID/PID、传输类型、固件路径、分包和 ACK 规则 - 逻辑分析事实:测试方法、测试用例、触发方式、通道映射、建议窗口
- 固件刷写事实:目标名、
- 运行脚本初始化缓存:
python agents\skills\embedded-workflow-cache-init\scripts\init_embedded_workflow_cache.py --project-root . --target <target-name>
- 如果只有固件刷写信息,就只创建:
.agents/cache/<target-name>_download.cfg
- 如果用户还提供了逻辑分析仪相关映射或测试方法,再额外创建或补充:
.agents/cache/logic_timing_windows.csv.agents/cache/kingstvis_channel_maps.json
- 生成后快速检查文件是否已落盘,并确认 boot / 应用枚举字段和占位字段没有伪造事实。
执行要求
- 初始化下载缓存前,必须先从仓库代码中查出 boot 和应用两套设备枚举信息;不能只写其中一种状态。
- 没有事实支撑时,字段保留为空或占位值,不要猜
VID/PID、ACK、命令字。 - 查到 boot 和应用枚举信息后,应分别写入缓存;至少保证后续 skill 能区分“升级态设备”和“应用态设备”。
- 下载缓存要兼容后续刷写与 USB 工具的真实读取口径:
[firmware]中写firmware与artifact_path[firmware]中写header_size、chunk_size、crc_type[usb_comm]中补齐最小默认字段[serial]中补齐串口默认参数
- 配置文件要放在项目内
.agents/cache/,不要写到 skill 目录里。 logic_timing_windows.csv只在用户提供测试方法、测试用例或建议抓取窗口时初始化。kingstvis_channel_maps.json只在用户提供了逻辑分析仪通道/引脚映射时创建或更新。- 如果缓存已存在,优先保留现有内容;仅补齐缺失文件或新增缺失条目。
参考
references/cache-layout.md:缓存文件用途、字段说明和最小示例。scripts/init_embedded_workflow_cache.py:初始化.agents/cache文件的入口脚本。