build123d-cad — 硬件设计 Super Skill
一次安装、模块化的硬件设计技能集合。父级只做路由,详细能力在各子技能。
「像机械师思考,而不是像程序员思考。」 — Dave Cowden
AI 执行准入序列(每次会话第一件事)
- 读本父 SKILL.md 的「子技能集合」表 + 「路由规则」。
- 按需求关键词匹配子技能(命中多个 → 主子技能优先,其余走 handoff)。
Read skills/<name>/SKILL.md后再开始答题;不要凭父级触发词推测子技能内部流程。- 子技能 SKILL.md 引用的 Playbook / references 由子技能自行加载,父级不展开。
- 跨子技能流程由父级显式编排,实施落到子技能;不让子技能直接互相 import。
- 禁止:跳过对应子技能 SKILL.md 直接读其 references/ 拼流程;父级 SKILL.md 内嵌
实现细节;子技能之间
from skills.<other>.references...互引(CI 红线)。
子技能集合(25 个)
| 子 skill | 触发场景关键词(部分匹配即触发) | 路径 | 优先级 |
|---|---|---|---|
| mechanical | 建模 / 装配 / 反求 / 零件 / part / assembly / 仿真 / FK / IK / 步态 | skills/mechanical/SKILL.md | P0 根基 |
| viewer | 预览 / 网页查看 / 分享链接 / headless / 看一下模型/PCB/原理图 | skills/viewer/SKILL.md | P0 |
| urdf | URDF / 机器人描述 / robot description / link / joint / .urdf | skills/urdf/SKILL.md | P0 |
| parts-catalog | 找现成件 / 标准件 / STEP 下载 / McMaster / 608 轴承 / M3 螺丝 | skills/parts-catalog/SKILL.md | P0 |
| srdf | MoveIt / 规划组 / planning group / collision matrix | skills/srdf/SKILL.md | P1 |
| sdf | Gazebo / 仿真世界 / sim world / .sdf | skills/sdf/SKILL.md | P1 |
| simulation | 动力学仿真 / pybullet / 跌落测试 / 站得稳吗 / 步态仿真 / headless sim / 会不会翻 / 关节限位 | skills/simulation/SKILL.md | P1 ✅ |
| gcode | 切片 / FDM / G-code 预检 / 打印估时 / 支撑 / overhang | skills/gcode/SKILL.md | P1 |
| sendcutsend | 激光切割 / 钣金 / DXF 报价 / kerf / SendCutSend | skills/sendcutsend/SKILL.md | P1 |
| bambu-labs | Bambu / 打印机 / 上传打印 / AMS / send to printer | skills/bambu-labs/SKILL.md | P2 |
| pcb | PCB / 原理图 / tscircuit / 代码写PCB / TSX / Gerber / 出件 / 嘉立创 / JLCPCB / 下单打板 / PCB 3D / DFM / EDA | skills/pcb/SKILL.md | P1 ✅ tscircuit |
| electronics-bom | 电子 BOM / 元件库 / MCU / 电机驱动 / 编码器 / 电源器件 / JLCPCB / Octopart / 元件型号 | skills/electronics-bom/SKILL.md | P1 ✅ BOM |
| requirements-verification | 需求合同 / requirements.yaml / verification_matrix.yaml / 验证矩阵 / gate 阈值 / risk register | skills/requirements-verification/SKILL.md | P0 ✅ 合同 |
| actuator-sizing | 执行器选型 / 电机扭矩 / 关节扭矩裕量 / 减速器 / 速度裕量 / 热裕量 / actuator_spec / torque_margin | skills/actuator-sizing/SKILL.md | P0 ✅ 执行器 |
| pcb-mechanical-reliability | PCB 刚度 / 挠曲 / 支撑柱 / 固定孔 / 连接器受力 / 线束弯折 / PCB 装配间隙 / pcb_fit | skills/pcb-mechanical-reliability/SKILL.md | P0 ✅ PCB 结构 |
| circuit-simulation | 电路合理性 / 电源预算 / 电流峰值 / 保护电路 / 急停 / 欠压 / TVS / 热风险 / circuit_check / power_budget | skills/circuit-simulation/SKILL.md | P0 ✅ 电路 |
| gait-optimization | 步态优化 / 行走算法 / trot / gait_score / foot slip / body roll / body pitch / cost of transport / best_gait_params | skills/gait-optimization/SKILL.md | P0 ✅ 步态 |
| motion-control | IK / FK / 逆运动学 / gait generator / trot trajectory / controller_params / trajectory.json / 运动控制 | skills/motion-control/SKILL.md | P1 ✅ 控制 |
| firmware | 固件 / 嵌入式 / MCU / FOC / CAN / 校准 / 急停 / firmware_report / can_frames | skills/firmware/SKILL.md | P2 ✅ dry-run |
| sim2real-calibration | sim2real / 仿真实机对齐 / 真实日志 / 参数校准 / 摩擦 / 延迟 / torque scale / parameter_update | skills/sim2real-calibration/SKILL.md | P2 ✅ 校准 |
| integration | 整机集成 / bring-up / HIL / 上电检查 / 人工 gate / 实体样机 / integration_checklist | skills/integration/SKILL.md | P2 ✅ dry-run |
| fea | FEA / 有限元 / 结构强度 / 刚度 / 变形 / 安全系数 / 应力 / 模态 / 跌落冲击 / fea_report | skills/fea/SKILL.md | P1 ✅ 结构 |
| wear-fatigue | 磨损 / 疲劳 / 轴承寿命 / 齿轮寿命 / 足垫磨耗 / 线束弯折 / 连接器松脱 / maintenance_interval | skills/wear-fatigue/SKILL.md | P1 ✅ 寿命 |
| mujoco-simulation | MuJoCo / MJCF / 高保真动力学 / 接触摩擦 / slope / step obstacle / push disturbance / mujoco_result | skills/mujoco-simulation/SKILL.md | P1 ✅ MuJoCo |
| robot-dog-digital-twin | 数字孪生 / 虚拟样机 / 机械狗验证 / 设计评分 / failure report / 实体样机 gate / 多域验证 | skills/robot-dog-digital-twin/SKILL.md | P0 ✅ 编排 |
关键词权威映射在
shared/multi-skill-router.md;本表是其精简映像,改动需双向同步。
路由规则
- 收到需求 → 按上表关键词匹配子技能;命中多个 → 主子技能优先,其余走 handoff。
- 先
Read skills/<name>/SKILL.md再开始答题;不读子技能 references/ 全量(防 token 爆)。 - 子技能间数据交换走
shared/handoff-protocols.md文件接口,不做函数调用,不互引 references。 - 跨子技能流程由父级编排,实施落到子技能;父级只路由,不实现。
- 关键词模糊或冲突 → 反问消歧,不要赌。
多命中消歧示例
- 「做个外壳并预览」 → mechanical(主) + viewer(handoff:STEP → URL)
- 「把这个机器人导成 URDF 并看关节」 → urdf(主) + viewer(handoff:URDF → urdf-loader)
- 「找个 608 轴承装进去」 → parts-catalog(主) + mechanical(handoff:合并入装配)
- 「这个支架能激光切吗,多少钱」 → mechanical(出 DXF) + sendcutsend(报价)
- 「这个件 3D 打印能不能打出来」 → mechanical(已有 STEP) + gcode(FDM 切片预检)
- 「用代码写块板子并发嘉立创」 → pcb(主,tscircuit 端到端) + viewer(预览 handoff)
- 「PCB 外壳一起做」 → pcb(电气) + mechanical(外壳) + viewer(双引擎并显)
- 「这机器人站得稳吗 / 丢进物理引擎跑一下 / 跑个步态看会不会翻」 → urdf(前置 URDF) + simulation(主,headless 跑 + 判稳)
- 「给这只机械狗定需求合同 / 验证矩阵」 → requirements-verification(主,产 requirements.yaml + verification_matrix.yaml)
- 「这套机械狗电机/减速器扭矩够不够 / 热裕量够吗」 → actuator-sizing(主,产 actuator_spec.yaml + torque_margin.json)
- 「这块 PCB 在机身里硬度/刚度够吗 / 支撑柱和连接器合理吗」 → pcb-mechanical-reliability(主,产 pcb_fit.json)
- 「这套电路/电源预算/保护/热风险合理吗」 → circuit-simulation(主,产 circuit_check.json + power_budget.json)
- 「这个步态/行走算法会不会摔 / foot slip 高不高 / 下一版步态参数怎么改」 → gait-optimization(主,产 gait_score.json)
- 「生成 IK 解 / trot 轨迹 / controller_params 给仿真或固件」 → motion-control(主,产 trajectory.json + controller_params.yaml)
- 「规划 MCU 固件 / CAN 帧 / 校准 / 安全状态机 dry-run」 → firmware(主,产 firmware_report.json + can_frames.md)
- 「对比仿真和实机日志 / 校准摩擦、延迟、扭矩比例」 → sim2real-calibration(主,产 sim2real_calibration.json)
- 「实体样机 bring-up / 首次上电 / HIL / 整机集成清单」 → integration(主,产 integration_checklist.json)
- 「这个腿/机身强度够吗 / 变形大不大 / 要不要 FEA」 → fea(主,产 fea_report.json)
- 「齿轮/轴承/足垫/线束会不会很快磨坏 / 维护周期多长」 → wear-fatigue(主,产 wear_report.json + fatigue_report.json)
- 「用 MuJoCo/MJCF 跑斜坡、台阶、推扰、接触摩擦验证」 → mujoco-simulation(主,产 mujoco_result.json)
- 「这个机械狗虚拟样机能不能进实体」 → robot-dog-digital-twin(主,读各域 artifact → gate/score/failure_report)
- 关键词「仿真」按意图分:解析 FK/IK → mechanical;丢进物理引擎跑判稳 → simulation;出 Gazebo 世界 → sdf
角色规则(7 条核心,详细在子技能 SKILL.md)
- 代码优先:直接给可执行代码,不长篇解释;用户已给方向("按这个方案"/"继续")→ 立即执行,不重新评估利弊。
- 参数化:所有尺寸用变量定义在文件顶部,修改一处全局生效。
- 设计意图优先:用选择器(
sort_by/filter_by)定位特征,不硬编码坐标。 - 不编造 API:基础 API 必须在子技能 references 中收录;建模前强制巡查
references/code-sources/同领域成熟实现,标明来源 + License。 - STEP 优先:CNC / 激光 / 装配配合件一律 STEP;3D 打印再考虑 STL。
- 必须导出:每段代码末尾包含
export_step()或用户指定格式的导出。 - 跨子技能时主动 handoff:检测到产物可被下游消费(STEP→viewer/urdf/gcode)时,
主动提示并按
shared/handoff-protocols.md串接。
子技能私有的更细规则(OCP 预览强制、装配爆炸提示、subagent 模型分派等)在
skills/mechanical/SKILL.md等子技能 SKILL.md 内展开,父级不重复。
跨子技能标准 handoff(常见 4 条)
| # | 链路 | 文件接口 |
|---|---|---|
| 1 | mechanical → viewer | output/<task>/<part>.step → viewer.start(step) 返回 URL |
| 2 | mechanical → urdf | 多零件 STEP + output/<task>/joints.yaml → *.urdf + meshes/ |
| 3 | mechanical → 制造预检 | STEP → gcode(FDM)/ DXF → sendcutsend(钣金报价) |
| 4 | urdf → viewer | *.urdf → viewer cad 引擎(urdf-loader + 关节滑块) |
完整路径约定与 schema 见
shared/handoff-protocols.md与share/build123d-cad改造/08-shared跨子技能协议.md§2。
输出工作区约定
- 所有子技能产物落到项目工作区:
~/work/<project>/domains/<x>/output/<task>/ - super skill 内不放
output/(防污染 skill 目录,见 08 §6 决议) - 子技能脚本不要
Path("output/...")自拼,走shared/python/handoff/output_paths
加新子技能
见 docs/adding-new-subskill.md 9 步流程。改动 3 处共享配置:父 SKILL 路由表、
shared/multi-skill-router.md、shared/dependencies.md(必要时再加 handoff 条目)。
评审与变更流程
| 变更类型 | 流程 |
|---|---|
| 父 SKILL 路由 / 骨架原则变更 | 改 share/build123d-cad改造/00-总览与目标架构.md → Gate 1/Gate 3 评审 |
| 跨技能接口变更(handoff 路径 / schema / URL 协议) | 改 shared/<对应文件>.md → 在 shared/CHANGELOG.md 登记 → @ 受影响 Owner |
| 单子技能内实现变更 | 子技能 Owner 自决,跑 pytest skills/<name>/tests/ 通过即可 |
破坏性变更(改字段名/类型/枚举)必须 @tech_lead 评审,CHANGELOG 用 ⚠️ 标记。
不做什么
- ❌ 不在父 SKILL.md 内嵌实现 / 详细代码 / Playbook 全文
- ❌ 不让子技能之间直接 import 或读对方 references/
- ❌ 不在 super skill 内放
output/(落项目工作区) - ❌ 不用 git submodule(子技能是目录,monorepo 一次安装)
- ❌ 不改 skill 名(暂留
build123d-cad,多域成熟再议)
参考文档
- 总览与目标架构:
share/build123d-cad改造/00-总览与目标架构.md - 跨子技能协议:
shared/handoff-protocols.md/multi-skill-router.md/dependencies.md - 加新子技能:
docs/adding-new-subskill.md - 架构说明:
docs/architecture.md