关于 arduino-workflow-router
arduino-workflow-router 是用于将完整、跨领域或需求未明的嵌入式项目分派给相关专门技能的技能,涵盖信息收集、执行顺序及各阶段的证据要求。
主要功能
- 01将任务分派给嵌入式专门技能
- 02定义开发板与工具链信息收集
- 03提供组合工作流顺序
- 04规定证据与安全要求
适用场景
- 01规划涵盖硬件与固件的嵌入式项目
- 02分派涉及多个技术领域的任务
- 03确定构建、上传或调试所需技能
- 04协调测试与部署工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wedsamuel1230/ embedded-engineering-skills --skill arduino-workflow-router安装后在 Claude Code 中输入/arduino-workflow-router确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/board-intake.mdconnected-device-security.mdfailure-recovery.mdtoolchain-selection.md详细介绍
嵌入式工作流路由器
对于完整的嵌入式工作,或涉及多个学科的工作,请使用此技能作为简洁的入口。如果任务范围明确、开发板已确认且仅涉及一个阶段,请直接加载相应的专家技能。
建议的生命周期入口
对于任何涉及实体操作或多个会话的请求,请先加载 embedded-project-loop。它会确定目标、下一步操作、证据范围、回滚路径,以及由用户负责的实体操作关卡。然后返回此处,进行开发板和工具链路由。
优先加载
- 阅读
../../docs/arduino-skill-contract.md。 - 如果工作涉及多个会话或实体操作,建议先加载
embedded-project-loop;在开始实现前创建其目标/下一步待办状态,并保持该流程开启,直到满足证据关卡。 - 填写
../../docs/board-support/board-profile-template.md,或说明为何无需填写。 - 如果需要确认指定开发板或开发板系列,请在选择引脚前加载
../board-support/SKILL.md及其索引中的配置文件。 - 阅读
references/board-intake.md,检查开发板和硬件。 - 阅读
references/toolchain-selection.md,了解 IDE、CLI、PlatformIO 或厂商版本与库的兼容性。 - 从下方的路由表中选择专家技能。
- 在进行上传、启动、供电或固件恢复操作前,阅读
references/failure-recovery.md;对于任何联网或可更新的设备,阅读references/connected-device-security.md。
这是优先加载顺序。按需加载:只有在符合触发条件时才加载参考资料,这样路由器可保持在 500 行以内,详细变体也能逐步呈现。
触发优先级
- 对于组合型、需求不明确或跨学科的请求,应由此路由器负责首次路由。先加载此路由器,再加载任何相关专家技能,包括
arduino-project-builder或board-selection。 - 对于涉及实体操作或多个会话的请求,请先加载
embedded-project-loop,再加载此路由器,然后返回此路由器选择组合型专家技能路线。 - 对于开发板和工具链均已确认的单阶段请求,请直接加载范围最窄的专家技能。
- 对于指定开发板的参考信息或能力查询,由
board-support负责确认准确型号并提供基于来源的配置文件。board-selection负责根据需求选择或更换开发板,也可以使用board-support提供的信息。 - 不涉及实现、接线或生命周期工作的开发板选择请求,可以从
board-selection开始;一旦涉及其他领域,就应返回此路由器,并遵循组合工作流顺序。 - 不要同时加载
arduino-serial-monitor和另一个串口调试技能;现有的串口监视器负责提供结构化运行时证据。
信息收集关卡
不要臆造引脚、电压、电流限制、内存大小、外设、协议、库版本或上传命令。请询问缺失信息,或采用明确标注的假设并附上验证步骤。记录准确的开发板、框架、工具链、主机、依赖版本和所需的验证阶段。
路由表
| 需求 | 接下来加载 | 证据重点 |
|---|---|---|
| Zephyr 开发 | zephyr-development | 特定目标的证据 |
| STM32 开发 | stm32-development | 特定目标的证据 |
| Pico SDK 开发 | pico-sdk-development | 特定目标的证据 |
| MicroPython 开发 | micropython-development | 特定目标的证据 |
| 调试探针 | probe-debugging | 特定目标的证据 |
| 故障取证 | fault-forensics | 特定目标的证据 |
| 总线调试 | bus-debugging | 特定目标的证据 |
| 启动和闪存恢复 | boot-flash-recovery | 特定目标的证据 |
| 内存和时序调试 | memory-timing-debugging | 特定目标的证据 |
| USB 调试 | usb-debugging | 特定目标的证据 |
| 需求或开发板选择 | board-selection,然后是 board-support,再然后是 arduino-project-builder | 决策和设计 |
| 指定开发板参考或能力查询 | board-support,然后是相关的专业工具 | 确切身份和有来源支持的限制 |
| 引脚映射或 GPIO 声明 | board-support,然后是 pin-assignment,再然后是 wiring-safety-check | 开发板限制和硬件 |
| 接线、电压、电流或上拉电阻 | wiring-safety-check、power-budget-calculator、circuit-debugger | 硬件 |
| ADC/传感器噪声、采样、滤波或信号调理 | board-support、wiring-safety-check、sensor-signal-filtering,确认检测正常后再使用 sensor-calibration-workbench | 信号链设计和实测硬件行为 |
| 代码模式或开发板抽象 | arduino-code-generator、non-blocking-patterns、memory-budgeting | 构建和内存 |
| 库或框架依赖 | library-selection,然后是代码/项目相关技能 | 兼容性和内存 |
| 数据手册、组件或协议存在不确定性 | datasheet-interpreter、i2c-bringup-diagnostician | 硬件假设 |
| 编译、开发板发现、上传或端口 | arduino-cli-skill 加上 error-message-explainer | 构建和上传 |
| PlatformIO、原生 ESP-IDF、混合构建、CI 或 SDK 迁移 | embedded-build-workflow;仅在 Arduino CLI 分支使用 arduino-cli-skill | 明确的框架/管理器和构建矩阵 |
| 控制环路截止时间、执行器所有权、过载或动作时序 | realtime-control-design,使用基本原语时再看 freertos-patterns | 设计预算和实测时序 |
| UDP/ESP-NOW 遥测、AP+STA 共存或无线电轨迹分析 | wireless-telemetry,然后使用 arduino-serial-monitor 进行采集/桌面集成 | 新鲜度、协议和测量范围 |
| 运行时日志或现场症状 | arduino-serial-monitor、error-message-explainer、hardware-tdd | 硬件和系统 |
| 时序、阻塞或看门狗风险 | non-blocking-patterns、hardware-tdd | 构建和系统 |
| 内存或占用空间风险 | memory-budgeting、library-selection | 构建和运行时 |
| 校准或传感器漂移 | 确认检测正常后使用 sensor-calibration-workbench | 系统 |
| 完整应用 | arduino-project-builder,然后是相关领域技能 | 设计和构建 |
| 联网更新或现场部署 | ota-deployment-guardian 加上安全参考 | 部署 |
| 零部件、PCB 相关或外壳工作 | bom-generator、enclosure-designer、readme-generator | 设计和维护 |
| 主机/仿真/目标测试计划 | 待开展实体工作时使用 hardware-tdd 和 embedded-project-loop | 证据 |
| 多会话、实体或恢复工作 | 先使用 embedded-project-loop,然后再使用本路由器 | 持久化状态和用户把关 |
组合工作流
工具链优先级:当仓库选择 PlatformIO 或原生 SDK 时,构建接收由 embedded-build-workflow 负责。不要默认将原生 app_main、Zephyr、Pico SDK 或 Rust 项目交给 Arduino CLI。声称某个框架、目标平台或主机已验证之前,请参阅支持矩阵。对于混合构建、独立的闪存/PSRAM 设置、无线证据、OTA 和台架控制,请查阅当前的 BottleSumo lessons。
技能可以组合使用。每项决策只指定一个负责人,并将其产物传递给下一个技能。对于组合请求,默认采用以下简明顺序:
loop (if long-running) -> board selection/intake -> wiring safety -> library/memory -> project/code/timing -> toolchain build/upload -> serial and hardware tests -> system/calibration -> deployment/security/maintenance
组合工作流的默认顺序:arduino-workflow-router -> board-selection ->
board-support -> pin-assignment -> wiring-safety-check ->
sensor-signal-filtering -> non-blocking-patterns -> arduino-serial-monitor ->
hardware-tdd。如果工作跨越多个会话或实体关卡,请从
embedded-project-loop 开始,并在后续阶段持续维护其下一步待办事项和证据台账。
如果用户已经提供准确且受支持的开发板标识,可跳过
board-selection,从 board-support 开始;在提供引脚或电气建议之前,绝不能跳过 board-support。
- 电池供电的 Wi-Fi 传感器:开发板接收 -> 数据手册 -> 电源 -> 项目构建器 -> 代码生成器 -> 工具链 -> 串口/校准 -> OTA 安全 -> 维护 README。
- Uno R4 WiFi 上传故障:开发板系列参考 -> IDE/CLI 发现 -> 串口与错误诊断 -> USB/电源检查 -> 引导恢复 -> 上传
证明 -> 运行时/系统证明。参阅
../../docs/board-support/uno-r4-family.md。 - 机器人控制器:开发板接收 -> 项目构建器 -> 电源/BOM -> 电路 和代码 -> 串口/系统测试 -> 外壳 -> 签名更新与回滚。
- 多开发板传感器库:开发板配置 -> 数据手册/协议启动 -> 代码生成器 -> IDE/CLI/PlatformIO 分支 -> 各开发板构建证明及已记录的不支持行为。
- 四按钮 ESP32 控制器:开发板选择 -> 引脚分配 -> 布线 安全 -> 非阻塞消抖 -> 代码生成器 -> 构建证明 -> 硬件 关卡 -> 串口/系统证据。
不要将表格中的某一行视为技能已运行的证明。请说明实际使用了哪些技能、它们产出了哪些材料,以及哪些证据阶段仍未验证。
输出规范
使用 ../../docs/arduino-skill-contract.md:说明假设、所需工具及版本、实现步骤、各证明阶段的测试/证据、已知限制,以及恢复/安全说明。