workflow
>-
Works with
---
name: workflow
description: >-
license: MIT
---
# 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 --json
python <skill-dir>/scripts/workflow_run.py plan --json
python <skill-dir>/scripts/workflow_run.py build --json
python <skill-dir>/scripts/workflow_run.py build-flash --json
python <skill-dir>/scripts/workflow_run.py build-debug --json
python <skill-dir>/scripts/workflow_run.py observe --json
python <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` 和子进程调用底层 SkillMore Git Workflows skills
git-commit
github/awesome-copilot
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
git-workflow-and-versioning
addyosmani/agent-skills
Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging, or writing a changelog.
resolve-merge-conflicts
warpdotdev/common-skills
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.

