BOM 整理 Skill(硬件产品)
⚠️ 执行流程清单(必须按顺序执行,不可跳过)
AI在每次整理BOM前,必须按以下顺序逐步执行,每步完成才能进入下一步。 脚本层有硬校验,跳过任何一步都会导致生成失败。
| 步骤 | 必须动作 | 禁止动作 | 脚本校验 |
|------|---------|---------|---------|
| Step 1 | 识别BOM来源格式(AD/立创EDA/自定义表头),完成字段映射 | 在来源不明时直接整理 | validate_input校验字段 |
| Step 2 | 向用户确认命名规则:"你们有没有公司内部的物料编码规则?" | 跳过命名规则确认直接整理 | --naming-confirmed必填,不传则拒绝生成 |
| Step 3 | 按确认的命名规则编码物料,按6类分类(电子/五金/塑胶/CNC/辅料/包装物) | 自己编命名规则不问用户;分类不确定时不标"待确认" | validate_input校验物料类别 |
| Step 4 | 向用户确认输出格式和脱敏方案(5选项+自定义脱敏询问) | 在用户未选择输出格式前调用脚本 | --format-confirmed必填,不传则拒绝生成 |
| Step 5 | 调用脚本生成文件,传齐 --naming-confirmed 和 --format-confirmed | 省略任一必填参数 | 脚本正常执行 |
| Step 6 | 输出后询问"开模件需要对接模具比价Skill吗?" | 输出后直接结束对话 | 脚本输出末尾强制打印Step 6提醒 |
强制触发规则
触发条件:用户上传/提供BOM数据
必须动作:识别BOM来源格式,完成字段映射,然后向用户确认命名规则
禁止动作:在用户未确认命名规则前调用generate_bom_excel.py
脚本校验:--naming-confirmed 参数必填,不传则报错退出
触发条件:用户已确认命名规则
必须动作:向用户展示以下5种输出格式选项,询问"选哪种格式?"
- full:完整版(真实数据,3 Sheet:标准化BOM+开模件扩展+脱敏BOM)
- desensitized:脱敏版(仅脱敏Sheet,供应商代号化+IC型号系列化)
- both:完整+脱敏+对照表(4 Sheet,对照表含供应商和IC型号的真实↔脱敏映射,仅供内部使用)
- feishu:飞书多维表格(团队协作)
- default:默认完整版
然后追问:"除了标准脱敏规则,你有没有其他脱敏要求?"(如用户有自定义要求,传 --custom-desens 参数)
禁止动作:在用户未选择输出格式前调用generate_bom_excel.py
脚本校验:--format-confirmed 参数必填,不传则报错退出
触发条件:AI调用generate_bom_excel.py
必须动作:传齐 --naming-confirmed 和 --format-confirmed 两个参数
禁止动作:省略任一参数
触发条件:Excel生成成功
必须动作:向用户输出文件后,询问"开模件需要对接模具比价Skill吗?"
禁止动作:输出后直接结束对话
脚本校验:脚本输出末尾强制打印Step 6提醒
防偷懒机制说明
本skill在脚本层(generate_bom_excel.py)设置了三道硬校验,AI无法绕过:
--naming-confirmed:强制AI先向用户确认命名规则(有规则按规则编码/没规则给建议确认后执行)--format-confirmed:强制AI先询问用户选Excel完整版/脱敏版/飞书多维表格- Excel参数确认清单:输出文件中打印AI使用的命名规则和分类标准,用户打开即可核对
即使AI读SKILL.md不仔细跳过了文字流程,脚本也会拒绝运行并报错引导。
用户说"默认"时的处理
如果用户说"默认"/"都行"/"你看着办":
- 命名规则:使用建议规则模板(见references/bom_field_mapping.md第五节),但仍需传 --naming-confirmed=default
- 输出格式:按Excel完整版生成,但仍需传 --format-confirmed=default
- 在输出后告知"已按默认规则生成,如需调整命名规则或输出格式可随时告诉我"
用途
将硬件产品的原始 BOM 输入(Excel 为主,兼容半结构化文本)整理为标准化、可协作、可分享的结构化 BOM 表。
核心价值:
- 命名规范化:将PCB导出的草BOM转为符合公司内部料号命名规则的标准BOM
- 物料分类:按电子/五金/塑胶/CNC/辅料/包装物6大类自动归类,方便采购核价
- 开模件识别:自动判断哪些物料需要开模,为模具比价Skill准备数据
- 脱敏输出:一键生成可对外分享的脱敏BOM
不做什么(边界声明)
- 不做成本估算:BOM整理只归一化物料数据,不做成本核算。成本估算请用下游Skill
- 不做供应商推荐:不推荐具体供应商,只保留用户提供的供应商信息
- 不做原理图/PCB网表解析:不解析EDA文件本身,只处理导出的BOM表
- 不接收图纸文件:不处理PDF/SCH/PCB等工程文件
- 不接收纯非结构化文本:如"我需要做一个水杯,里面有主板和电池"——需先用PRD拆解Skill处理
何时使用
- 拿到PCB工程师导出的草BOM,需要整理成公司标准格式
- 需要将BOM按物料类别分类,方便采购部门核价
- 需要判断哪些物料需要开模
- 需要生成脱敏BOM用于对外分享
- 需要为注塑模具比价Skill准备输入数据
工作流程
Step 1:识别输入格式
支持三种输入形态:
| 输入形态 | 来源 | 处理策略 | |---|---|---| | 结构化Excel/CSV | 自定义表头 | 按字段别名映射表自动匹配,未匹配字段标"待确认" | | 立创EDA/AD导出BOM | EDA工具导出 | 按来源工具映射规则自动转换(见references/bom_field_mapping.md第二节) | | 半结构化文本 | 用户粘贴 | 解析后逐行确认,不支持纯描述性文本 |
Step 2:确认命名规则(强制)
AI必须向用户询问命名规则,不可跳过。
询问话术示例:
"整理BOM前需要确认:你们有没有公司内部的物料编码规则?
- 如果有,请告诉我规则格式(如 EAD-RES-001 = 电子-电阻-流水号)
- 如果没有,我可以给一套建议规则,你确认后再执行"
用户有命名规则
按用户描述的规则编码。常见规则格式:
[类别码]-[类型码]-[流水码](如 EAD-RES-001)- 用友/金蝶ERP编码(按用户公司实际规则)
- 自定义编号体系
用户无命名规则
AI提供建议规则模板(见references/bom_field_mapping.md第五节):
[类别码]-[类型码]-[流水码]
类别码:EAD(电子)/EBR(组件)/MET(五金)/PLM(塑胶)/CNC(CNC)/AUX(辅料)/PKG(包装物)
类型码:RES(电阻)/CAP(电容)/COV(壳体)/SCR(螺丝)...(详见映射文件)
流水码:3位数字,从001开始
用户确认后方可执行。禁止不问用户直接用建议规则编码。
Step 3:物料分类(6大类)
按以下6类自动归类:
| 物料类别 | 包含内容 | 典型物料 | |---|---|---| | 电子 | PCB上的电子元器件和模组 | 芯片/电阻/电容/电感/连接器/IC/模组/电池 | | 五金 | 标准五金件和定制五金件 | 螺丝/螺母/垫片/弹簧/金属支架/散热片 | | 塑胶 | 注塑成型/硅胶成型件 | 上壳/下壳/面板/按键/硅胶圈/保护套 | | CNC | CNC加工的金属件 | 铝外壳/铝合金件/精密金属件/机加工件 | | 辅料 | 组装过程中的消耗性辅材 | 标签/胶带/焊锡/胶水/线材/热缩管 | | 包装物 | 产品包装和运输防护材料 | 纸箱/纸盒/彩盒/说明书/珍珠棉/塑料袋 |
分类规则详见 references/bom_field_mapping.md 第四节。无法确定时标"待确认"并提示人工判断。
Step 4:确认输出格式
向用户展示以下选项:
| 选项 | 说明 | 适用场景 | |---|---|---| | Excel完整版 | 3个Sheet(标准化BOM+开模件扩展表+脱敏BOM) | 内部使用、完整数据 | | Excel脱敏版 | 仅1个Sheet(脱敏BOM) | 对外分享、展会、比赛 | | 飞书多维表格 | 团队协作编辑 | 多人协作场景 |
Step 5:生成文件
调用 generate_bom_excel.py 生成xlsx文件,必须传齐 --naming-confirmed 和 --format-confirmed 参数。
Step 6:输出后询问
生成后询问:"开模件需要对接模具比价Skill吗?"
输出规范
Sheet 1:标准化 BOM 主表
| 列名 | 说明 | 必填 | |---|---|---| | 物料编号 | 按确认的命名规则编码 | ✅ | | 物料名称 | 标准化名称 | ✅ | | 物料类别 | 电子/五金/塑胶/CNC/辅料/包装物 | ✅ | | 规格型号 | 规格参数 | ✅ | | 材质 | 物料材质 | ○ | | 单机用量 | 数字 | ✅ | | 单位 | PCS/SET/M/G | ✅ | | 参考单价 | 元(可选) | ○ | | 供应商建议 | 供应商名称(可选) | ○ | | 是否需要开模 | Y/N/待确认 | ✅ | | 备注 | 位号/封装等补充信息 | ○ |
Sheet 2:开模件专用扩展表(仅完整模式)
13个字段,逐字对齐下游 injection-mold-pricing Skill输入参数: 物料名称/材质/颜色/单机用量/模具穴数(待填)/表面处理/外观面要求/精度等级/预计年产量(待填)/是否高光(待填)/透明件(待填)/嵌入件(待填)/备注
Sheet 3:脱敏 BOM 表
供应商映射为A/B/C,单价转为区间,规格型号只保留系列。
关键铁律
- 命名规则必须先确认:不问用户命名规则直接编码是严重错误
- 缺失数据填"待补充":禁止编造任何数据,缺失字段一律标"待补充"并标黄
- 开模判断必须人工复核:AI判断为Y的物料,建议结构工程师复核
- Sheet 2字段名不可改:13个字段逐字对齐下游Skill,改了就断链
- 物料类别必须准确:分类决定了采购核价路径,无法确定时标"待确认"
参考资料
references/bom_field_mapping.md:字段别名映射、来源工具映射、单位归一化、物料分类关键词、命名规则模板references/mold_judgment_rules.md:开模判断规则references/desensitization_rules.md:脱敏规则assets/example_raw_bom_desensitized.xlsx:脱敏草BOM示例(AMESP32C3开发板)assets/example_output.xlsx:标准输出示例scripts/generate_bom_excel.py:Excel生成脚本
常见问题
Q1:支持哪些输入格式?
①自定义表头Excel/CSV(按字段别名映射)②立创EDA/Altium Designer导出的BOM(自动字段映射)③半结构化文本。纯非结构化文本描述(如"我需要做一个水杯,里面有主板和电池")不支持,需先用PRD拆解Skill处理。
Q2:为什么必须确认命名规则?
BOM的物料编号是整个供应链的基石。如果编号不符合公司内部规则,会导致:①采购系统无法匹配料号 ②仓库无法入库 ③ERP系统报错 ④试产时物料混淆。命名规则确认是BOM整理的第一步,不可跳过。
Q3:用户没有命名规则怎么办?
AI提供一套建议规则模板([类别码]-[类型码]-[流水码]格式),用户确认后再执行。建议规则参考references/bom_field_mapping.md第五节。注意:不建议规则不能直接使用,必须用户确认后才执行。
Q4:物料分类6大类是怎么分的?
- 电子:PCB上的电子元器件和模组
- 五金:标准五金件和定制五金件(螺丝/螺母/冲压件等)
- 塑胶:注塑成型/硅胶成型件(上壳/下壳/按键等)
- CNC:CNC加工的金属件(铝外壳/精密金属件等)
- 辅料:组装消耗性辅材(线材/标签/胶水等)
- 包装物:产品包装和运输防护材料(纸箱/彩盒等) 分类不确定时标"待确认",由人工判断。
Q5:脱敏BOM和完整BOM有什么区别?
完整模式输出3个Sheet(标准化BOM主表+开模件扩展表+脱敏BOM表),包含真实供应商名称、参考单价和规格型号。脱敏模式仅输出Sheet 3,供应商映射为A/B/C、单价转为区间、规格型号只保留系列。用于对外分享、展会、比赛报名等场景。
Q6:为什么开模件扩展表不包含模具寿命、年度产能、MOQ?
这三项是采购侧商业输入(取决于你的产品规划和采购策略),不属于BOM的物料属性。它们需要在使用注塑模具比价Skill时另行提供。本Skill的职责是整理物料数据,不是做商业决策。
Q7:自动判断"是否需要开模"准确吗?
判定规则基于材质+物料类别+关键词匹配,对于明确的结构件(如上壳/下壳/按键/面板)判断准确率高。对于模糊情况(如"支架"可能是标准件也可能需要开模),会标"待确认"并提示人工判断。建议结构工程师复核所有Y判断。
Q8:Sheet 2的13个字段名为什么不能改?
因为这13个字段逐字对齐下游injection-mold-pricing Skill的输入参数。改了字段名,下游Skill就无法自动读取,需要手动映射,破坏了"零手动数据接力"的设计目标。如果你觉得字段名不合理,需要两个Skill同步修改。
Q9:能处理多少条物料的BOM?
脚本层面无限制,但建议单次处理不超过500条。超过500条时,Excel渲染变慢,且开模件扩展表可能过长不利于人工审核。建议按子系统拆分多次处理。
Q10:没有参考单价怎么办?
参考单价是可选字段,缺失时填"待补充"并标黄,不阻塞流程。开模件扩展表不含价格字段(价格在下游模具比价Skill中处理)。如果你有历史采购数据,可以手动补充到Sheet 1的"参考单价"列。
Q11:输入参数报错怎么办?
validate_input会检查数据完整性,报错信息包含:
- 缺失字段名
- 字段类型错误
- 修正建议(含示例格式) 常见报错:①物料列表为空 ②物料缺少物料名称或物料类别 ③单机用量不是有效数字。按报错提示补充对应字段即可。
Q12:草BOM里的Designator(位号)怎么处理?
保留在Sheet 1的"备注"列。立创EDA/AD导出的BOM中Designator是PCB位号(如C1/R5/U2),整理时原样保留在备注中,不参与物料编号编码。同一位号可能对应多个物料(如C5,C7,C12是同规格电容),数量会自动合并。
Q13:同一规格的物料能合并吗?
可以。如果多条记录的物料名称+规格型号+材质完全相同,应合并为一条,单机用量累加。例如3条"10K电阻 5% SMT0603"合并为1条,用量=3。合并后在备注列保留所有位号。
Q14:Excel和飞书多维表格怎么选?
| 场景 | 推荐格式 | |------|---------| | 内部使用、完整数据 | Excel完整版(3 Sheet) | | 对外分享、展会、比赛 | Excel脱敏版(1 Sheet) | | 团队多人协作 | 飞书多维表格 | | 需要按类别筛选统计 | 飞书多维表格(视图筛选更方便) | | 离线使用 | Excel |
Q15:命名规则可以自定义吗?
可以。AI支持任意命名规则格式,只要用户能清晰描述规则即可。常见格式包括:
[类别码]-[类型码]-[流水码](如 EAD-RES-001)- 用友ERP编码(按公司实际规则)
- 金蝶ERP编码(按公司实际规则)
- 自定义编号体系 如果用户描述的规则不清晰,AI会追问确认后再执行。
下一步推荐
整理好的标准BOM可以直接交给「智能硬件采购业务助手」做询价比价:型号/物料编码、物料名称、规格型号、单位 这几列对得上就能直接导入价格池,不需要再改格式。价格有变化的物料会让它标记出来,适合每次改版后重新核价。
感谢"小熊肖恩"对本技能包的技术贡献
微信扫一扫