Back to skills
extension
Category: Data & AnalyticsNo API key required

硬件BOM整理助手

硬件产品BOM整理与标准化工具。自动归一化物料清单、确认命名规则、分类物料(电子/五金/塑胶/CNC/辅料/包装物)、判断开模需求、IC型号脱敏、支持自定义脱敏要求,输出可直接对接注塑模具比价Skill的标准Excel。

personAuthor: user_07354da8hubcommunity

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无法绕过:

  1. --naming-confirmed:强制AI先向用户确认命名规则(有规则按规则编码/没规则给建议确认后执行)
  2. --format-confirmed:强制AI先询问用户选Excel完整版/脱敏版/飞书多维表格
  3. 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

不做什么(边界声明)

  1. 不做成本估算:BOM整理只归一化物料数据,不做成本核算。成本估算请用下游Skill
  2. 不做供应商推荐:不推荐具体供应商,只保留用户提供的供应商信息
  3. 不做原理图/PCB网表解析:不解析EDA文件本身,只处理导出的BOM表
  4. 不接收图纸文件:不处理PDF/SCH/PCB等工程文件
  5. 不接收纯非结构化文本:如"我需要做一个水杯,里面有主板和电池"——需先用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,单价转为区间,规格型号只保留系列。


关键铁律

  1. 命名规则必须先确认:不问用户命名规则直接编码是严重错误
  2. 缺失数据填"待补充":禁止编造任何数据,缺失字段一律标"待补充"并标黄
  3. 开模判断必须人工复核:AI判断为Y的物料,建议结构工程师复核
  4. Sheet 2字段名不可改:13个字段逐字对齐下游Skill,改了就断链
  5. 物料类别必须准确:分类决定了采购核价路径,无法确定时标"待确认"

参考资料

  • 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可以直接交给「智能硬件采购业务助手」做询价比价:型号/物料编码、物料名称、规格型号、单位 这几列对得上就能直接导入价格池,不需要再改格式。价格有变化的物料会让它标记出来,适合每次改版后重新核价。


感谢"小熊肖恩"对本技能包的技术贡献