Skill 接口参考
每个 skill 像一个"接口":有 lane(哪个角色跑)、needs(能力要求)、输入 / 输出、门(确定性 + 人工)、触发(什么时候自动用)。needs: multimodal 的步骤只在 lead/Claude lane 跑。
总览
| Skill | lane | needs | 输入 → 输出 | 门 |
|---|---|---|---|---|
elec-design | lead | — | —(编排调度) | — |
read-problem | lead | multimodal | inputs/problem/ → design/problem.yaml | — |
plan-solution | lead | — | problem.yaml → design/solution.md | 人工签字 |
setup-env | lead | — | solution → env/manifest.yaml + 三 lane setup | — |
select-parts | lead | multimodal | solution + inputs/partslist/ → design/bom.csv | 人工批 BOM |
power-design | 任何 | — | solution + bom → design/power.{yaml,md} | power_budget + 人工 |
interconnect | 任何 | — | bom + power → contracts/pinmap.yaml + design/wiring.svg + harness.md | pinmux_check + 逐网核对 |
firmware-scaffold | 控制 | — | solution + pinmap → firmware/ | 编译 + init 核对 |
vision-scaffold | 算法 | — | solution → vision/ | 语法 + 现场标阈值 |
test-checklist | 任何 | — | problem → design/test_plan.md | — |
board | 全部 | — | board/ 任务文件(领取/完成/派活) | — |
elec-design — 顶层编排
判断现在在哪一步、派发下一步、让三个 lane 并行别空等、把守人工门。不自己埋头跑完整条流水线;读 STATUS.md 与 design/ 现状,调对应子 skill。 触发:用户想"开始/推进电控设计""现在该做哪步""协调三人并行"时。
read-problem — 读题 / 审题(入口①)
needs: multimodal(解析 PDF)。解析 inputs/problem/ 当年题目 → 结构化 design/problem.yaml,尤其先抽「限制条款」(如 camera_allowed 决定 K230)。查 kb/01(章程)、kb/02(历年题型) 作背景。模糊点进 ambiguities,提请人工确认,不擅自给硬约束默认值。
plan-solution — 方案 + 需求(②)
problem.yaml + 金奖经验(kb/10 技术栈表、kb/09)→ design/solution.md:技术方案(主控/视觉/传感/执行/控制结构)+ 签字需求表(电源轨/最坏电流/接口数量/电平/连接器)。门:用户逐项签字,未确认的硬指标标 TODO 不默认。
setup-env — 环境全包(③)
据方案选定的主控/视觉,产 env/manifest.yaml(每 lane 的 SDK/IDE/包 + 版本锁定 + 下载源 + 自检命令,含烧录/调试工具)+ env/{host,control,vision}.md。MSPM0→CCS+SDK+SysConfig+XDS110;K230→CanMV。
select-parts — 选材(④)
needs: multimodal(解析配件表 PDF)。从主办方当年配件表按需求选型(查 kb/03/04/05 引脚说明 + 金奖经验),缺口用 jlc_search 现查 → design/bom.csv(含子系统映射、lib/modules 对应块)。门:人工批 BOM。
power-design — 供电(⑤)
分多路隔离轨(电机 VM 直供 / 舵机 5-6V / 逻辑 3.3V / K230 5V),电机按堵转电流算,写 design/power.yaml,跑 power_budget.py,FAIL 则换更大稳压重跑。门:power_budget PASS + 人工。
interconnect — 模块接线图(⑥,scope-A 心脏)
对 BOM 每个模块读 lib/modules/<block>.yaml 取对 MCU 引脚,从 contracts/mcu/<MCU>.yaml 分配引脚 → contracts/pinmap.yaml,跑 pinmux_check.py(撞脚/非法/超限则改),再 render_wiring.py → wiring.svg + harness.md。门:pinmux PASS + 逐网人工核对(电源/GND、K230 串口 TX↔RX 交叉、I2C 上拉、舵机独立供电、SWD 没被占)。
firmware-scaffold — 固件骨架(⑦,控制 lane)
复用 kb/08 的 4 层架构 + 时间片调度 + FSM + VOFA,引脚据 pinmap.yaml,K230 收帧用 contracts/protocol.h。产 firmware/(可主机编译的中间件 + 驱动桩 + FSM + bsp 引脚表 + host_test)。控制参数=占位待整定,外设 init 须人工核对。
vision-scaffold — K230 视觉骨架(⑧,算法 lane)
K230 CanMV:main.py 取流→处理→用 contracts/protocol.py(与 protocol.h 同源)发帧;line_follow/blob_track/digit_recog + config.py(阈值/ROI,现场标定)。
test-checklist — 现场标定/验收清单(⑨)
按 problem.yaml 的要求功能裁剪 kb/10 赛中 checklist → design/test_plan.md(分系统自检 → 标定 → 整定 → 联调 → 验收/成功率)。
board — 任务板
git pull → 看派给本 lane 的就绪任务 → 干 → done(自动按 DAG 给下游派活)→ push。本机 lane 记于 .elec-lane。详见 三人并行协同。