Workflow

zhinkgit/embeddedskills/workflow

作者 zhinkgit536c1f929e359a5c02ef8ea9f1a20691e8d764e3無授權條款收錄於 2026年10月9日更新於 2026年10月9日

embeddedskills 的薄编排层,用于在当前 workspace 中发现工程、选择 build/flash/debug/observe 后端、串联 .embeddedskills/state.json,并聚合底层 skill 的结果。 当用户明确输入以下命令之一:"一键构建烧录"、"自动诊断"、"串起 build -> flash -> debug -> observe" 或显式调用 /workflow 时触发。

包含腳本DevOps & Cloud
AI 產生的概覽

編排嵌入式建置、燒錄、除錯與觀測後端,探索專案並串接底層 skill。

功能
此 skill 是嵌入式開發工具鏈的薄編排層。它會在目前 workspace 中探索專案,選擇建置後端(Keil、GCC 或 EIDE)以及 flash/debug/observe 後端(jlink、openocd 或 probe-rs),透過 .embeddedskills/state.json 串接各階段,並彙整底層 skill 的結果。它提供 plan、build、build-flash、build-debug、observe 與 diagnose 指令;當發現多個專案或多個候選後端時,只會回傳候選清單而不自行猜測。
適用情境
適用於使用者明確要求一鍵建置燒錄、自動診斷,或要求串接 build -> flash -> debug -> observe,或直接呼叫 workflow 指令的情境。適合已設定好對應建置與除錯 skill 的嵌入式專案。
執行需求
需要 Python 執行環境來執行隨附的指令碼(workflow_plan.py、workflow_run.py、workflow_runtime.py)。它會讀取 .embeddedskills/config.json 與 .embeddedskills/state.json,以子程序方式呼叫底層 skill,並需要對應的建置與燒錄/除錯工具鏈(Keil、GCC、EIDE、jlink、openocd、probe-rs),以及用於燒錄與觀測的硬體存取。

Workflow 编排层

本 skill 不重复实现底层逻辑,只做发现、选择、串联和聚合。

支持 Keil / GCC / EIDE 三种构建后端,以及 jlink / openocd / probe-rs 三种 flash/debug/observe 后端。

observe 阶段当前会给出 jlink:rtt、jlink:swo、openocd:semihosting、openocd:itm、probe-rs:rtt 这几类候选观测后端。

命令

bash
python <skill-dir>/scripts/workflow_plan.py --jsonpython <skill-dir>/scripts/workflow_run.py plan --jsonpython <skill-dir>/scripts/workflow_run.py build --jsonpython <skill-dir>/scripts/workflow_run.py build-flash --jsonpython <skill-dir>/scripts/workflow_run.py build-debug --jsonpython <skill-dir>/scripts/workflow_run.py observe --jsonpython <skill-dir>/scripts/workflow_run.py diagnose --json

配置说明

workflow 不再维护独立的工程配置结构,所有工程参数统一从 .embeddedskills/config.json 读取。

配置结构

.embeddedskills/config.json 中的 workflow 段仅包含首选后端配置:

json
{  "workflow": {    "preferred_build": "auto",    "preferred_flash": "auto",    "preferred_debug": "auto",    "preferred_observe": "auto"  }}

workflow 通过读取 .embeddedskills/config.json 中其他 skill 的配置段来获取工程参数(如 keil.project、eide.project、eide.config、jlink.device、probe-rs.chip 等)。

参数解析顺序

按以下决策树依次判断,命中即停止:

  1. CLI 参数(优先级最高)

    • 条件:用户在命令行传入 --build-backend、--flash-backend 等参数
    • 示例:workflow_run.py build-flash --build-backend=keil --flash-backend=jlink
    • --build-backend 可选值:auto / keil / gcc / eide
    • 行为:直接使用该参数指定的后端,跳过后续步骤
  2. 配置文件(次优先)

    • 条件:CLI 未指定,且 .embeddedskills/config.json 的 workflow 段中对应 preferred_* 字段不为 "auto"
    • 示例:"preferred_build": "keil" → 使用 keil 作为构建后端
    • 行为:读取配置值并使用,跳过自动发现
  3. 自动发现(兜底)

    • 条件:CLI 未指定,且配置中 preferred_* 为 "auto" 或字段缺失
    • 示例:"preferred_flash": "auto" → 扫描 workspace 自动推断可用 flash 后端
    • 行为:枚举候选后端列表;若唯一则直接使用,若多个则返回列表请用户确认

成功执行后,实际使用的后端会自动写回 .embeddedskills/config.json 的 workflow 段。

规则

  • 发现多个工程或多个候选后端时,只返回候选列表,不自动猜测
  • 构建、烧录、调试、观测之间优先通过 .embeddedskills/state.json 串联
  • observe 只生成推荐命令,不在 workflow 内直接长时间占用观测通道
  • 失败时优先返回哪个阶段失败,以及底层脚本的结构化错误
  • workflow 与其他 Skill 的协同只通过 .embeddedskills/config.json、.embeddedskills/state.json 和子进程调用底层 Skill

來源與署名

來源:zhinkgit/embeddedskills位於workflow提交536c1f9

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架